CrewAI 基础 02-Agent
在 crewai 中,Agent 相当于团队中的一个成员,不同代理具有不同的角色、擅长领域及内在知识
总的来说,Agent 有以下作用:
- 绑定到任务中,让其执行特定任务
- 根据角色和目标作出决策
- 使用工具
- 与其他代理进行沟通
- 委派任务给其他代理
也就是说,在 crewai 中,Agent 有自己的知识及解决工具,当自己能力不足时,可以请求团队内其他人协助
关键参数:
属性 | 参数 | 描述 |
---|---|---|
角色 | role | 定义代理在团队中的职能和专业知识。 |
目标 | goal | 指导代理决策的单个目标。 |
背景故事 | backstory | 为代理提供上下文和个性,丰富交互。 |
LLM | llm | 为代理提供支持的语言模型。默认为 “gpt-4” 中指定的模型。OPENAI_MODEL_NAME |
工具 | tools | 代理可用的功能。默认为空列表。 |
函数调用 LLM | function_calling_llm | 用于工具调用的语言模型,如果指定,则覆盖班组的 LLM。 |
内存 | memory | 代理是否应维护交互的记忆。默认值为 True。 |
允许委派 | allow_delegation | 允许代理将任务委派给其他代理。默认值为 False。 |
缓存 | cache | 为工具使用启用缓存。默认值为 True。 |
系统模板 | system_template | 代理的自定义系统提示模板。 |
提示模板 | prompt_template | 代理的自定义提示模板。 |
响应模板 | response_template | 代理的自定义响应模板。 |
允许代码执行 | allow_code_execution | 为代理启用代码执行。默认值为 False。 |
Embedder | embedder_config | 代理使用的嵌入器的配置。 |
1 | # 设置llm |
1 | > (Agent (role=计算机视觉工程师, goal=查找并理解计算机视觉工程师的工作内容,熟悉的代码和工具, backstory=已经在计算机视觉领域工作 5 年,有丰富的计算机视觉经验,尤其是在工业缺陷检测方面), |
Agent 的初始化需要提供 role、goal、backstory,最后还会绑定到特定任务上,这些概念有重叠,应该如何设计?以下列举官方的例子
role | goal | backstory |
---|---|---|
研究分析师 | 查找并总结有关特定主题的信息 | 你是一位经验丰富的研究人员,注重细节 |
高级数据科学家 | 分析和解释复杂的数据集,提供可操作的见解 | 拥有超过 10 年的数据科学和机器学习经验,你擅长在复杂的数据集中发现模式 |
高级 Python 开发人员 | 编写和调试 Python 代码 | 拥有 10 年经验的专业 Python 开发人员 |
数据分析师 | 对大型数据集进行深入分析 | 擅长大数据分析和模式识别 |
客户服务代表 | 协助客户解决他们的问题 | 有丰富的客户支持经验,注重客户满意度 |
可以看出以下内容:
- Role:Agent 的角色定位,相当于团队中的岗位
- Goal:Agent 的目标,相当于岗位职责
- Backstory:Agent 历史,该角色的历史经验、擅长内容