Agent
概述:
带有特定技能,专业知识和职责的专业团队成员
智能体的属性:
最基本的三个 Role,Goal,Backstory 后续全为可选,请自行查阅官网
创建智能体
两种方法: YAML配置(推荐)和直接在代码中定义
YAML配置(推荐)
在代码中使用YAML配置,需要创建一个继承自CrewBase的工作组类
直接代码定义
实例化Agent类直接在代码中创建智能体
参数详情:
关键参数
role,goal和backstory是必填项,决定了智能体的行为。llm确定使用的语言模型(默认:OpenAI 的 GPT-4)。
记忆与上下文
memory: 启用以保持对话历史。respect_context_window: 防止 Token 限制问题。knowledge_sources: 添加特定领域的知识库。
执行控制
max_iter: 给定最佳答案前的最大尝试次数。max_execution_time: 超时时间(秒)。max_rpm: API 调用速率限制。max_retry_limit: 错误重试次数。
代码执行
allow_code_execution 和 code_execution_mode 已弃用。CodeInterpreterTool 已从 crewai-tools 中移除。请使用如 E2B 或 Modal 等专用沙箱服务进行安全的代码执行。
allow_code_execution(已弃用): 此前通过CodeInterpreterTool启用内置代码执行。code_execution_mode(已弃用): 此前控制执行模式("safe"用于 Docker,"unsafe"用于直接执行)。
高级功能
multimodal: 启用多模态能力以处理文本和视觉内容。reasoning: 启用智能体在执行任务前反思并制定计划。inject_date: 自动将当前日期注入任务描述中。
模板
system_template: 定义智能体的核心行为。prompt_template: 构建输入格式。response_template: 格式化智能体响应。
智能体工具
可以使用CrewAI和LangChain工具包
智能体记忆和上下文
上下文窗口管理
上下文窗口管理的工作原理
由respect_context_window控制
when context window is too large, 1.自动摘要内容(参数为true) 2.停止执行并且报错(参数为false)
大数据量的替代方案
1.RAG工具
2.使用知识源
上下文窗口最佳实践
- 监控上下文使用: 启用
verbose=True以查看正在运行的上下文管理。 - 高效设计: 构建任务以最小化上下文积累。
- 使用合适的模型: 选择上下文窗口适合任务的 LLM。
- 测试两种设置: 尝试
True和False,看看哪种更适合你的用例。 - 结合 RAG 使用: 对于超大数据集,使用 RAG 工具而不是完全依赖上下文窗口。
使用Kickoff()进行直接智能体交互
工作原理:
kickoff()允许你直接向智能体发送消息获取回复
参数和返回值
message;response_format