本指导文档将带你一步步完成使用CrewAI框架创建你的第一个AI代理团队的过程。通过这个简单的示例,你将学习如何构建一个研究团队,用于研究和分析指定主题,并生成一份综合报告。本教程基于CrewAI官方文档,适合初学者快速上手。
在开始之前,请确保你已完成以下准备工作:
安装Python:确保你的系统安装了Python版本在3.10到3.13之间。你可以通过以下命令检查Python版本:
python --version
安装CrewAI:使用CrewAI的CLI工具和相关依赖项。运行以下命令安装CrewAI及其工具:
pip install 'crewai[tools]'
获取Serper API密钥:你需要从Serper.dev获取API密钥,用于支持研究代理的网络搜索功能。
配置环境:在项目目录中创建一个.env
文件,将你的Serper API密钥和其他敏感信息存储其中,例如:
SERPER_API_KEY=your-serper-api-key
有关详细的安装说明,请参考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
代理是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
中的输入参数替换。
任务定义了代理需要完成的具体工作。编辑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
指定了报告的输出路径,确保在运行时生成的文件存储在正确位置。
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
),其中研究员首先完成研究任务,然后报告分析师根据研究结果生成报告。
在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
中正确配置。.env
文件中。你刚刚创建了一个基础的研究团队,但CrewAI的潜力远不止于此。你可以:
有关更多高级功能,请参考CrewAI官方文档或加入CrewAI社区论坛,与其他开发者交流经验。
通过本教程,你成功创建并运行了一个CrewAI团队,包含研究员和报告分析师,完成了从研究到报告生成的任务。这个基础示例展示了CrewAI的协作智能能力,你可以基于此构建更复杂的AI系统。继续探索CrewAI的Crews和Flows功能,解锁更多自动化可能性!