crew.py 文件中正确引用代理、任务和其他组件。
简介
CrewAI 框架中的注解用于修饰类和方法,为您的 crew 的各种组件提供元数据和功能。这些注解有助于组织和构建您的代码,使其更具可读性和可维护性。可用注解
CrewAI 框架提供以下注解@CrewBase: 用于修饰主 crew 类。@agent: 修饰定义并返回 Agent 对象的方法。@task: 修饰定义并返回 Task 对象的方法。@crew: 修饰创建并返回 Crew 对象的方法。@llm: 修饰初始化并返回语言模型对象的方法。@tool: 修饰初始化并返回工具对象的方法。@callback: 用于定义回调方法。@output_json: 用于输出 JSON 数据的方法。@output_pydantic: 用于输出 Pydantic 模型的方法。@cache_handler: 用于定义缓存处理方法。
用法示例
让我们通过示例来了解如何使用这些注解1. Crew 基类
@CrewBase 注解用于修饰主 crew 类。此类通常包含用于创建代理、任务和 crew 本身的配置和方法。
2. 工具定义
@tool 注解用于修饰返回工具对象的方法。这些工具可供代理用于执行特定任务。
3. LLM 定义
@llm 注解用于修饰初始化并返回语言模型对象的方法。这些 LLM 被代理用于自然语言处理任务。
4. 代理定义
@agent 注解用于修饰定义并返回 Agent 对象的方法。
5. 任务定义
@task 注解用于修饰定义并返回 Task 对象的方法。这些方法指定任务配置和负责该任务的代理。
6. Crew 创建
@crew 注解用于修饰创建并返回 Crew 对象的方法。此方法将所有组件(代理和任务)组装成一个功能齐全的 crew。
YAML 配置
代理配置通常存储在 YAML 文件中。以下是研究员代理的agents.yaml 文件示例:
LinkedinProfileCrew 类中定义的研究员代理。配置指定了代理的角色、目标、背景故事以及其他属性,例如它使用的 LLM 和工具。 请注意,YAML 文件中的 llm 和 tools 如何对应于 Python 类中使用 @llm 和 @tool 修饰的方法。最佳实践
- 一致的命名:为您的方法使用清晰一致的命名约定。例如,代理方法可以根据其角色命名(例如,researcher、reporting_analyst)。
- 环境变量:将敏感信息(如 API 密钥)用于环境变量。
- 灵活性:通过允许轻松添加或删除代理和任务来设计您的 crew,使其具有灵活性。
- YAML-代码对应:确保您的 YAML 文件中的名称和结构与 Python 代码中修饰的方法正确对应。
