可自定义属性

打造一个高效的CrewAI团队关键在于能够动态调整你的AI代理,以满足任何项目的独特需求。本节涵盖了你可以自定义的基础属性。

自定义的关键属性

属性描述
角色指定代理在团队中的工作,例如“分析师”或“客户服务代表”。
目标定义代理的目标,与其角色和团队的整体任务保持一致。
背景故事为代理的角色提供深度,增强在团队中的动机和参与度。
工具 (可选)表示代理用于任务的能力或方法,从简单功能到复杂集成。
缓存 (可选)确定代理是否应使用缓存来进行工具使用。
最大RPM设置每分钟的最大请求数(max_rpm)。可以设置为None以允许对外部服务的无限请求。
详细模式 (可选)启用详细日志记录以进行调试和优化,提供对执行过程的深入了解。
允许委派 (可选)控制任务委派给其他代理,默认是 False
最大迭代次数 (可选)限制任务的最大迭代次数(max_iter),以防止无限循环,默认值为25。
最大执行时间 (可选)设置代理完成任务所允许的最大时间。
系统模板 (可选)定义代理的系统格式。
提示模板 (可选)定义代理的提示格式。
响应模板 (可选)定义代理的响应格式。
使用系统提示 (可选)控制代理在任务执行期间是否使用系统提示。
尊重上下文窗口默认启用滑动上下文窗口,保持上下文大小。
最大重试限制设置代理在出现错误时的最大重试次数(max_retry_limit)。

高级自定义选项

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

语言模型定制

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

性能和调试设置

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

详细模式和RPM限制

  • 详细模式:启用代理操作的详细日志记录,有助于调试和优化。具体来说,它提供了对代理执行过程的深入洞察,有助于优化性能。
  • RPM限制: 设置每分钟的最大请求数(max_rpm)。此属性是可选的,可以设置为None表示无限制,允许在需要时对外部服务进行无限查询。

任务执行的最大迭代次数

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

自定义代理和工具

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

pip install 'crewai[tools]'

示例:为代理分配工具

Code
import os
from crewai import Agent
from crewai_tools import SerperDevTool

# Set API keys for tool initialization
os.environ["OPENAI_API_KEY"] = "Your Key"
os.environ["SERPER_API_KEY"] = "Your Key"

# Initialize a search tool
search_tool = SerperDevTool()

# Initialize the agent with advanced options
agent = Agent(
  role='Research Analyst',
  goal='Provide up-to-date market analysis',
  backstory='An expert analyst with a keen eye for market trends.',
  tools=[search_tool],
  memory=True, # Enable memory
  verbose=True,
  max_rpm=None, # No limit on requests per minute
  max_iter=25, # Default value for maximum iterations
)

授权与自主性

控制代理委派任务或提问的能力对于在CrewAI框架内定制其自主性和协作动态至关重要。默认情况下, allow_delegation属性现在设置为False,禁止代理根据需要寻求帮助或委派任务。可以更改此默认行为以促进CrewAI生态系统内的协作问题解决和 效率。如果需要,可以启用委派以适应特定的操作要求。

示例:禁用代理的委派

Code
agent = Agent(
  role='Content Writer',
  goal='Write engaging content on market trends',
  backstory='A seasoned writer with expertise in market analysis.',
  allow_delegation=True # Enabling delegation
)

结论

通过设置角色、目标、背景故事和工具来定制CrewAI中的代理,以及语言模型定制、记忆、性能设置和委派偏好等高级选项,可以打造一个细致且能力强大的AI团队,准备好应对复杂的挑战。

这个页面有帮助吗?