crew.py 文件中的其他组件。
Introduction
CrewAI框架中的注解用于装饰类和方法,为您的智能体团队中的各个组件提供元数据和功能。这些注解有助于组织和结构化您的代码,使其更具可读性和可维护性。可用注解
CrewAI框架提供以下注解:@CrewBase: 用于装饰主智能体群组类。@agent: 装饰那些定义并返回智能体对象的方法。@task: 装饰那些定义并返回Task对象的方法。@crew: 装饰用于创建并返回Crew对象的方法。@llm: 装饰那些初始化和返回语言模型对象的方法。@tool: 装饰那些初始化并返回 Tool 对象的方法。@callback: 用于定义回调方法。@output_json: 用于输出JSON数据的方法。@output_pydantic: 用于输出Pydantic模型的方法。@cache_handler: 用于定义缓存处理方法。
使用示例
让我们通过示例来了解如何使用这些注解:1. 智能体群组基类
@CrewBase 注解用于装饰主 crew 类。该类通常包含用于创建智能体、任务以及 crew 本身的配置和方法。
2. 工具定义
@tool 注解用于装饰返回工具对象的方法。这些工具可供智能体用来执行特定任务。
3. 大语言模型定义
@llm 注解用于修饰那些初始化并返回语言模型对象的方法。这些语言模型由智能体用于自然语言处理任务。
4. 智能体定义
@agent 注解用于装饰定义并返回智能体对象的方法。
5. 任务定义
@task 注解用于装饰那些定义并返回 Task 对象的方法。这些方法指定了任务配置以及负责该任务的智能体。
6. 团队创建
@crew 注解用于装饰创建并返回 Crew 对象的方法。该方法将所有组件(智能体和任务)组装成一个功能完整的 crew。
YAML 配置
智能体配置通常存储在YAML文件中。以下是研究员智能体的agents.yaml文件示例:
LinkedinProfileCrew类中定义的研究员智能体。该配置指定了智能体的角色、目标、背景故事以及其他属性,例如其使用的LLM和工具。
注意YAML文件中的llm和tools如何对应Python类中带有@llm和@tool装饰器的方法。
Best Practices
- 命名一致性: 为你的方法使用清晰且一致的命名规范。例如,智能体方法可以按其角色命名(例如:研究员、报告分析师)。
- 环境变量: 使用环境变量来存储敏感信息,例如API密钥。
- 灵活性: 通过允许轻松添加或移除智能体和任务,设计您的crewai团队以保持灵活性。
- YAML-代码对应关系: 确保您的YAML文件中的名称和结构正确对应于Python代码中的装饰方法。
