主题
自定义智能体
关于在 CrewAI 框架内为特定角色、任务和高级自定义定制智能体的全面指南。
可自定义属性
打造高效的 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 限制
- 详细模式:启用对智能体操作的详细日志记录,有助于调试和优化。具体而言,它提供对智能体执行过程的洞察,有助于优化性能。
- RPM 限制:设置每分钟最大请求数(
max_rpm)。此属性为可选项,可设置为None表示无限制,从而在需要时允许向外部服务发起不限量的查询。
任务执行的最大迭代次数
max_iter 属性允许用户定义智能体可为单个任务执行的最大迭代次数,防止无限循环或执行时间过长。 默认值设为 25,在彻底性与效率之间取得平衡。一旦智能体接近此数值,它将尽其所能给出良好的答案。
自定义智能体与工具
智能体通过在初始化期间定义其属性和工具来进行自定义。工具对智能体的功能至关重要,使其能够执行专门任务。 tools 属性应为智能体可使用的工具数组,默认初始化为空列表。可以在智能体初始化后添加或修改工具,以适应新的需求。
shell
pip install 'crewai[tools]'示例:为智能体分配工具
python
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 生态系统内的协作问题解决和 效率。如有需要,可以启用委派以满足特定的运营要求。
示例:为智能体禁用委派
python
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 团队,准备好应对复杂挑战。