# CrewAI多Agent协作框架
## 什么是CrewAI?
CrewAI是一个多智能体协作框架,允许你创建多个具有不同角色和技能的AI Agent,它们可以分工合作完成复杂任务。就像一个虚拟团队,每个成员有自己的专长。
## 安装
```bash
pip install crewai crewai-tools
```
## 核心概念
### 1. Agent(智能体)
每个Agent有特定的角色、目标和背景故事。
### 2. Task(任务)
分配给Agent的具体工作。
### 3. Crew(团队)
将多个Agent组织在一起协作。
## 代码示例
```python
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool
# 创建工具
search_tool = SerperDevTool()
# 创建研究员Agent
researcher = Agent(
role="技术研究员",
goal="研究AI编程领域的最新进展",
backstory="你是一位经验丰富的技术研究员,擅长搜集和分析技术信息",
tools=[search_tool],
verbose=True
)
# 创建写作Agent
writer = Agent(
role="技术写作者",
goal="将研究结果转化为高质量的技术文章",
backstory="你是一位专业的技术写作者,能够将复杂技术用简单的语言解释",
verbose=True
)
# 创建任务
research_task = Task(
description="研究AI编程工具的最新进展,包括Copilot、Cursor等",
expected_output="包含3-5个主要发现的研究报告",
agent=researcher
)
write_task = Task(
description="基于研究结果撰写一篇技术博客",
expected_output="一篇800字的技术文章",
agent=writer,
context=[research_task] # 依赖研究任务
)
# 创建团队
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential # 顺序执行
)
# 运行
result = crew.kickoff()
print(result)
```
## 进阶用法
### 并行执行
```python
crew = Crew(
agents=[agent1, agent2, agent3],
tasks=[task1, task2, task3],
process=Process.parallel # 并行执行
)
```
### 自定义工具
```python
from crewai_tools import BaseTool
class DatabaseTool(BaseTool):
name: str = "数据库查询"
description: str = "查询业务数据库"
def _run(self, query: str) -> str:
# 执行数据库查询
return "query_result"
```
### Agent之间通信
Agent可以通过Task的context参数获取其他Agent的输出。
## 与其他框架对比
| 特性 | CrewAI | AutoGen | LangGraph |
|------|--------|---------|------------|
| 上手难度 | 低 | 中 | 高 |
| 灵活性 | 中 | 高 | 极高 |
| 多智能体 | ✔️ | ✔️ | ✔️ |
| 工具生态 | 丰富 | 一般 | 依赖LangChain |
## 应用场景
- 内容创作流水线
- 数据分析团队
- 代码审查系统
- 研究助手
## 总结
CrewAI让构建多智能体系统变得简单。通过清晰的角色定义和任务分配,可以构建强大的AI工作流。
暂无评论。成为第一个评论的人吧!