跳到主要内容

CrewAI 中的代理定制

可定制属性

打造高效的 CrewAI 团队取决于能够动态地定制 AI 代理,以满足任何项目的独特需求。本节介绍了您可以定制的基本属性。

定制的关键属性

  • 角色:指定代理在团队中的工作,比如“分析师”或“客服代表”。
  • 目标:定义代理的目标,与其角色和团队的总体目标保持一致。
  • 背景故事:为代理的人物设定提供深度,丰富其动机和在团队中的参与。
  • 工具:代表代理用于执行任务的能力或方法,从简单功能到复杂集成。

高级定制选项

除了基本属性外,CrewAI 还允许进行更深入的定制,以显著增强代理的行为和能力。

语言模型定制

代理可以定制具体的语言模型(llm)和函数调用语言模型(function_calling_llm),从而对其处理和决策能力进行高级控制。需要注意的是,设置 function_calling_llm 允许覆盖默认的团队函数调用语言模型,提供更高程度的定制。

性能和调试设置

调整代理的性能并监视其操作对于高效执行任务至关重要。

冗长模式和 RPM 限制

  • 冗长模式:启用对代理操作的详细记录,有助于调试和优化。具体来说,它提供了关于代理执行过程的见解,有助于性能优化。
  • RPM 限制:设置每分钟请求的最大数量(max_rpm)。此属性是可选的,可以设置为 None 以取消限制,如果需要的话,允许对外部服务进行无限查询。

任务执行的最大迭代次数

max_iter 属性允许用户定义代理针对单个任务执行的最大迭代次数,防止无限循环或过长的执行时间。默认值设置为 15,平衡了彻底性和效率。一旦代理接近这个数字,它将尽力给出一个良好的答案。

定制代理和工具

通过在初始化期间定义其属性和工具,可以定制代理。工具对于代理的功能至关重要,使其能够执行专门的任务。tools 属性应该是代理可以利用的工具的数组,默认情况下初始化为空列表。工具可以在代理初始化后添加或修改,以适应新的需求。

pip install 'crewai[tools]'

示例:为代理分配工具

import os
from crewai import Agent
from crewai_tools import SerperDevTool

# 为工具初始化设置 API 密钥
os.environ["OPENAI_API_KEY"] = "Your Key"
os.environ["SERPER_API_KEY"] = "Your Key"

# 初始化搜索工具
search_tool = SerperDevTool()

# 使用高级选项初始化代理
agent = Agent(
role='研究分析师',
goal='提供最新的市场分析',
backstory='一个对市场趋势敏锐的专家分析师。',
tools=[search_tool],
memory=True, # 启用记忆功能
verbose=True,
max_rpm=None, # 每分钟请求无限制
max_iter=15, # 最大迭代次数的默认值
allow_delegation=False
)

委托和自主权

控制代理委托任务或提问的能力对于定制其自主权和在 CrewAI 框架中的协作动态至关重要。默认情况下,allow_delegation 属性设置为 True,允许代理根据需要寻求帮助或委托任务。这种默认行为促进了 CrewAI 生态系统内的协作解决问题和高效性。如果需要,可以禁用委托以满足特定的操作需求。

示例:禁用代理的委托

agent = Agent(
role='内容撰写员',
goal='撰写有关市场趋势的引人入胜的内容',
backstory='一位在市场分析方面拥有专业知识的资深作家。',
allow_delegation=False # 禁用委托
)

结论

通过设置代理的角色、目标、背景故事和工具,以及语言模型定制、记忆、性能设置和委托偏好等高级选项,可以定制 CrewAI 中的代理,为复杂挑战做好准备,使其成为一个细致而有能力的 AI 团队。