跳转到主要内容

文档索引

获取完整文档索引: https://docs.crewai.com.cn/llms.txt

在深入了解之前,请使用此文件来浏览所有可用页面。

可自定义的属性

构建高效的 CrewAI 团队,关键在于能够动态调整您的 AI 智能体,以满足任何项目的独特需求。本节将涵盖您可以自定义的基础属性。

核心自定义属性

属性描述
角色 (Role)指定智能体在团队中的职位,例如“分析师”或“客服代表”。
目标 (Goal)定义智能体的目标,需与其角色及团队的总体使命保持一致。
背景故事 (Backstory)为智能体的人设增加深度,增强其在团队中的动力与参与度。
工具 (Tools) (可选)代表智能体执行任务时使用的能力或方法,从简单的函数到复杂的集成功能均可。
缓存 (Cache) (可选)确定智能体在调用工具时是否应使用缓存。
每分钟最大请求数 (Max RPM)设置每分钟的最大请求数 (max_rpm)。可以设为 None 以允许对外部服务进行无限次请求。
详细模式 (Verbose) (可选)开启详细日志记录以辅助调试和优化,提供对执行过程的深入洞察。
允许委托 (Allow Delegation) (可选)控制任务是否可以委托给其他智能体,默认为 False
最大迭代次数 (Max Iter) (可选)限制任务的最大迭代次数 (max_iter) 以防止死循环,默认为 25 次。
最大执行时间 (Max Execution Time) (可选)设置智能体完成任务所允许的最大执行时间。
系统模板 (System Template) (可选)定义智能体的系统格式。
提示词模板 (Prompt Template) (可选)定义智能体的提示词格式。
响应模板 (Response Template) (可选)定义智能体的响应格式。
使用系统提示词 (Use System Prompt) (可选)控制智能体在任务执行过程中是否使用系统提示词。
遵循上下文窗口 (Respect Context Window)默认启用滑动上下文窗口,以维持上下文大小。
最大重试次数 (Max Retry Limit)设置智能体在遇到错误时的最大重试次数 (max_retry_limit)。

高级自定义选项

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

语言模型自定义

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

性能与调试设置

调整智能体的性能并监控其运行情况,对于实现高效的任务执行至关重要。

详细模式与 RPM 限制

  • 详细模式 (Verbose Mode):启用智能体操作的详细日志记录,有助于调试和优化。具体而言,它提供了对智能体执行过程的深入了解,有助于优化性能。
  • RPM 限制 (RPM Limit):设置每分钟的最大请求数 (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 团队,随时准备应对复杂的挑战。