跳转至

编写智能体代码

简介

crewAI代理现在具备了强大的编写和执行代码的能力,显著提升了它们的问题解决能力。这一特性对于需要计算或编程解决方案的任务特别有用。

启用代码执行

要为代理启用代码执行,请在创建代理时将allow_code_execution参数设置为True。以下是一个示例:

from crewai import Agent

coding_agent = Agent(
    role="高级Python开发人员",
    goal="编写设计良好且深思熟虑的代码",
    backstory="您是一位具有丰富软件架构和最佳实践经验的高级Python开发人员。",
    allow_code_execution=True
)

注意allow_code_execution参数默认为False

重要注意事项

  1. 模型选择:强烈建议在启用代码执行时使用更强大的模型,如Claude 3.5 Sonnet和GPT-4。这些模型对编程概念有更好的理解,更有可能生成正确且高效的代码。

  2. 错误处理:代码执行功能包括错误处理。如果执行的代码引发异常,代理将收到错误消息,并可以尝试纠正代码或提供替代解决方案。max_retry_limit参数默认为2,控制任务的最多重试次数。

  3. 依赖项:要使用代码执行功能,您需要安装crewai_tools包。如果未安装,代理将记录一条信息消息:"Coding tools not available. Install crewai_tools."

代码执行过程

当具有代码执行功能的代理遇到需要编程的任务时:

  1. 代理分析任务,确定需要执行代码。
  2. 它制定解决问题的关键Python代码。
  3. 代码被发送到内部代码执行工具(CodeInterpreterTool)。
  4. 该工具在受控环境中执行代码,并返回结果。
  5. 代理解释结果,并将其纳入其响应中,或用于进一步的问题解决。

示例用法

以下是一个创建具有代码执行能力的代理并使用它在任务中的详细示例:

from crewai import Agent, Task, Crew

# 创建一个启用了代码执行的代理
coding_agent = Agent(
    role="Python数据分析师",
    goal="使用Python分析数据并提供见解",
    backstory="您是一位经验丰富的数据分析师,拥有强大的Python技能。",
    allow_code_execution=True
)

# 创建一个需要代码执行的任务
data_analysis_task = Task(
    description="分析给定数据集并计算参与者的平均年龄。",
    agent=coding_agent
)

# 创建一个团队并添加任务
analysis_crew = Crew(
    agents=[coding_agent],
    tasks=[data_analysis_task]
)

# 执行团队
result = analysis_crew.kickoff()

print(result)

在此示例中,coding_agent可以编写和执行Python代码来执行数据分析任务。