使用CrewAI创建一个研究团队

使用CrewAI创建一个研究团队_第1张图片

本指导文档将带你一步步完成使用CrewAI框架创建你的第一个AI代理团队的过程。通过这个简单的示例,你将学习如何构建一个研究团队,用于研究和分析指定主题,并生成一份综合报告。本教程基于CrewAI官方文档,适合初学者快速上手。

前提条件

在开始之前,请确保你已完成以下准备工作:

  1. 安装Python:确保你的系统安装了Python版本在3.10到3.13之间。你可以通过以下命令检查Python版本:

    python --version
    
  2. 安装CrewAI:使用CrewAI的CLI工具和相关依赖项。运行以下命令安装CrewAI及其工具:

    pip install 'crewai[tools]'
    
  3. 获取Serper API密钥:你需要从Serper.dev获取API密钥,用于支持研究代理的网络搜索功能。

  4. 配置环境:在项目目录中创建一个.env文件,将你的Serper API密钥和其他敏感信息存储其中,例如:

    SERPER_API_KEY=your-serper-api-key
    

有关详细的安装说明,请参考CrewAI安装指南。

步骤一:创建CrewAI项目

CrewAI提供了一个CLI工具,可以快速生成项目结构。打开终端,运行以下命令以创建一个名为latest-ai-development的新项目:

crewai create latest-ai-development

这将在你的当前目录下生成一个名为latest-ai-development的文件夹,包含以下结构:

latest-ai-development/
├── .gitignore
├── knowledge/
├── pyproject.toml
├── README.md
├── .env
└── src/
    └── latest_ai_development/
        ├── __init__.py
        ├── main.py
        ├── crew.py
        ├── tools/
        │   ├── custom_tool.py
        │   └── __init__.py
        └── config/
            ├── agents.yaml
            └── tasks.yaml

步骤二:配置代理(Agents)

代理是CrewAI团队的核心,每个代理都有特定的角色、目标和背景故事。编辑src/latest_ai_development/config/agents.yaml文件,定义两个代理:研究员和报告分析师。以下是一个示例配置:

researcher:
  role: "{topic} 高级数据研究员"
  goal: "发掘{topic}领域的尖端发展动态"
  backstory: "你是一位经验丰富的研究员,擅长发掘{topic}领域的最新进展,以清晰简洁的方式呈现信息。"
  tools:
    - serper_dev_tool
  verbose: true

reporting_analyst:
  role: "报告分析师"
  goal: "根据研究结果撰写全面且结构清晰的报告"
  backstory: "你是一位专业的报告撰写者,擅长将复杂信息整理成逻辑清晰、易于理解的报告。"
  verbose: true

注意{topic}是一个占位符,将在运行时由main.py中的输入参数替换。

步骤三:定义任务(Tasks)

任务定义了代理需要完成的具体工作。编辑src/latest_ai_development/config/tasks.yaml文件,添加两个任务:研究任务和报告任务。示例配置如下:

research_task:
  description: "针对{topic}进行深入研究,收集最新的信息和数据。"
  expected_output: "一份包含{topic}最新进展的详细研究笔记。"
  agent: researcher

reporting_task:
  description: "根据研究员提供的笔记,撰写一份结构清晰的综合报告。"
  expected_output: "一份格式化的Markdown报告,存储在output/report.md文件中。"
  agent: reporting_analyst
  output_file: "output/report.md"

注意output_file指定了报告的输出路径,确保在运行时生成的文件存储在正确位置。

步骤四:设置Crew

CrewAI使用crew.py文件来定义团队的结构和执行流程。编辑src/latest_ai_development/crew.py,确保以下代码正确配置了代理和任务:

from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from crewai_tools import SerperDevTool
from crewai.agents.agent_builder.base_agent import BaseAgent
from typing import List

@CrewBase
class LatestAiDevelopmentCrew():
    """LatestAiDevelopment crew"""
    agents: List[BaseAgent]
    tasks: List[Task]

    @agent
    def researcher(self) -> Agent:
        return Agent(
            config=self.agents_config['researcher'],
            verbose=True,
            tools=[SerperDevTool()]
        )

    @agent
    def reporting_analyst(self) -> Agent:
        return Agent(
            config=self.agents_config['reporting_analyst'],
            verbose=True
        )

    @task
    def research_task(self) -> Task:
        return Task(
            config=self.tasks_config['research_task']
        )

    @task
    def reporting_task(self) -> Task:
        return Task(
            config=self.tasks_config['reporting_task'],
            output_file='output/report.md'
        )

    @crew
    def crew(self) -> Crew:
        """Creates the LatestAiDevelopment crew"""
        return Crew(
            agents=self.agents,
            tasks=self.tasks,
            process=Process.sequential,
            verbose=True
        )

这段代码定义了一个顺序执行的团队(Process.sequential),其中研究员首先完成研究任务,然后报告分析师根据研究结果生成报告。

步骤五:运行Crew

src/latest_ai_development/main.py中,设置输入参数并启动团队。示例代码如下:

#!/usr/bin/env python
from latest_ai_development.crew import LatestAiDevelopmentCrew

def run():
    """Run the crew."""
    inputs = {
        'topic': 'AI Agents'
    }
    LatestAiDevelopmentCrew().crew().kickoff(inputs=inputs)

if __name__ == "__main__":
    run()

在这里,topic被设置为“AI Agents”,你可以根据需要修改为其他主题。

运行以下命令来安装项目依赖并启动团队:

cd latest-ai-development
uv sync
uv run run_crew

或者直接使用CrewAI CLI运行:

crewai run

步骤六:查看结果

运行完成后,你将在output/report.md文件中找到生成的报告。报告内容包括研究员收集的信息和分析师整理的综合分析。你可以通过终端查看代理的实时操作日志,了解每个代理的思考过程和输出。

如果report.md文件未生成,请检查以下内容:

  • 确保output_file路径在tasks.yaml中正确配置。
  • 确认Serper API密钥已正确设置在.env文件中。
  • 检查终端日志,排查可能的错误。

下一步:扩展你的Crew

你刚刚创建了一个基础的研究团队,但CrewAI的潜力远不止于此。你可以:

  • 添加更多代理:引入专门的编辑者、数据可视化代理或事实核查员。
  • 集成更多工具:使用CrewAI支持的其他工具,如浏览器工具或数据分析工具。
  • 创建复杂流程:尝试CrewAI Flows,构建事件驱动的工作流以实现更精确的控制。
  • 部署到企业平台:将你的团队部署到CrewAI Enterprise,享受可扩展的自动化功能。

有关更多高级功能,请参考CrewAI官方文档或加入CrewAI社区论坛,与其他开发者交流经验。

总结

通过本教程,你成功创建并运行了一个CrewAI团队,包含研究员和报告分析师,完成了从研究到报告生成的任务。这个基础示例展示了CrewAI的协作智能能力,你可以基于此构建更复杂的AI系统。继续探索CrewAI的Crews和Flows功能,解锁更多自动化可能性!

你可能感兴趣的:(php,开发语言,多智能体,智能体,人工智能)