跳转到主要内容

可自定义属性

构建高效的 CrewAI 团队取决于动态定制 AI 智能体以满足任何项目独特需求的能力。本节涵盖了您可以自定义的基础属性。

关键自定义属性

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

高级自定义选项

除了基本属性之外,CrewAI 还允许进行更深层次的自定义,以显著增强智能体的行为和能力。

语言模型自定义

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

性能和调试设置

调整智能体的性能和监控其操作对于高效的任务执行至关重要。

详细模式和 RPM 限制

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

任务执行的最大迭代次数

max_iter 属性允许用户定义智能体执行单个任务的最大迭代次数,从而防止无限循环或过长执行。默认值设置为 25,在彻底性和效率之间取得平衡。一旦智能体接近此数字,它将尽力提供一个好的答案。

自定义智能体和工具

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

示例:为智能体分配工具

代码
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 生态系统内的协作式问题解决和效率。如果需要,可以启用委派以适应特定的操作要求。

示例:禁用智能体的委托

代码
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 团队。