开源精选 CrewAI多Agent编排协作开源
云
云铭
进化之路 · 扫码阅读
微信 · 浏览器扫码
在手机上获得更好的阅读体验
CrewAI深度解析:多Agent角色扮演式协作框架
“一个人可以走得很快,一群人可以走得很远。“CrewAI把这个团队协作的智慧应用到了AI Agent世界。在这里,每个Agent都有自己的角色、目标和性格。
项目速览
| 维度 | 详情 |
|---|---|
| GitHub | crewAIInc/crewAI |
| Stars | ~48K |
| 语言 | Python |
| 许可证 | MIT |
| 定位 | 多Agent角色扮演式协作框架 |
核心思想:像组建团队一样构建Agent
CrewAI的团队隐喻
人类团队 CrewAI
─────────── ───────────
CEO(定方向) → 管理者Agent
研究员(搜集) → 研究员Agent
分析师(提炼) → 分析师Agent
写作者(产出) → 写作者Agent
审校(把关) → 审校Agent
每个Agent不仅有任务,还有角色背景、做事风格和个人目标——这让Agent的行为更加自然和可预测。
核心概念
Agent(智能体)
from crewai import Agent
researcher = Agent(
role="资深研究员",
goal="对指定课题进行深度调研,收集全面可靠的信息",
backstory="""你是一名有15年经验的管理咨询研究员,
曾在麦肯锡工作。你擅长在海量信息中识别关键信号,
对数据来源的可信度有敏锐的判断力。
你追求真相,不会被表面的公关语言迷惑。""",
tools=[search_tool, scrape_tool, pdf_reader],
llm="gpt-4",
verbose=True,
allow_delegation=True, # 可以委托子任务
max_iter=10
)
Role、Goal和Backstory是CrewAI最独特的设计——它们不只是参数,而是塑造Agent行为方式的核心。
Task(任务)
from crewai import Task
research_task = Task(
description="""
调研2026年Q2全球SaaS行业的并购动态。
要求:
1. 至少覆盖5笔重要交易
2. 每笔交易分析:金额、战略意图、对行业的影响
3. 识别并购趋势和背后的驱动因素
4. 标注信息来源
输出:结构化的调研报告
""",
expected_output="一份包含交易清单、趋势分析和战略洞察的研究报告",
agent=researcher, # 分配给指定Agent
async_execution=False, # 是否与其他任务并行
context=[previous_task], # 依赖的前置任务
output_file="mna_report.md" # 输出文件
)
Crew(团队)
from crewai import Crew, Process
# 组建团队
content_crew = Crew(
agents=[researcher, analyst, writer, reviewer],
tasks=[research_task, analysis_task, writing_task, review_task],
process=Process.sequential, # 顺序执行
# process=Process.hierarchical, # 层级执行(有Manager自主分配)
verbose=True,
memory=True # 启用跨任务的记忆
)
# 启动
result = content_crew.kickoff(inputs={
"topic": "AI Agent对SaaS行业的影响",
"target_audience": "企业高管",
"word_count": 3000
})
两种执行模式
Sequential(顺序模式)
Agent 1 完成任务 → Agent 2 基于1的输出继续 → Agent 3 → ...
适合任务之间有明确先后顺序的场景。
Hierarchical(层级模式)
Manager Agent
/ | \
Agent 1 Agent 2 Agent 3
(研究) (分析) (写作)
\ | /
Manager 汇总输出
Manager Agent自动分配任务、协调进度、汇总结果。这是CrewAI最具创新性的设计——用户不需要手动编排每个步骤,Manager会像真正的团队领导一样工作。
核心机制
1. 角色注入(Role Injection)
# CrewAI在每次Agent推理时会注入角色上下文
role_context = f"""
你是 {agent.role}。
你的核心目标是 {agent.goal}。
你的背景:{agent.backstory}
在当前任务中,你应该:
1. 以你角色特有的方式思考问题
2. 利用你的专业知识和经验
3. 与团队其他成员协作(如果需要)
4. 专注于你的核心职责,不越界
"""
2. 跨Agent上下文传递
研究员输出 分析师输入
───────── ─────────
结构化研究报告 → 收到研究报告
+ 数据 ↓
+ 来源 将"数据"转化为"洞察"
+ 置信度标注 标注分析的不确定性
↓
输出分析报告
↓
写作者收到
↓
将"洞察"转化为"叙事"
每次交接时,前一个Agent的输出会作为结构化的上下文传给下一个Agent。
3. 记忆机制
# CrewAI的记忆系统
crew = Crew(
agents=[...],
tasks=[...],
memory=True,
memory_config={
"provider": "mem0", # 或 chromadb, weaviate
"config": {
"user_id": "content_team",
"short_term_capacity": 20,
"long_term_store": "chromadb"
}
}
)
- 短期记忆:当前crew执行期间的任务上下文
- 长期记忆:跨crew执行的历史经验积累
- 实体记忆:关于用户/项目/领域的持久化信息
对比CrewAI vs AutoGen vs MetaGPT
| 维度 | CrewAI | AutoGen | MetaGPT |
|---|---|---|---|
| 核心理念 | 角色扮演团队 | 对话式多Agent | 模拟软件公司 |
| Agent定义 | Role+Goal+Backstory | 对话Agent+工具 | 角色类(PM/Engineer) |
| 编排方式 | 顺序+层级 | 对话图/GroupChat | 固定SOP |
| 学习曲线 | 低(1天上手) | 中 | 中 |
| 适用场景 | 内容创作、研究 | 对话密集型 | 软件开发 |
| 社区热度 | 🔥🔥🔥 | 🔥🔥 | 🔥 |
| 中文支持 | 好 | 一般 | 好 |
实战:构建行业分析团队
# 组建一个行业分析"梦之队"
# 1. 定义Agents
data_collector = Agent(
role="数据采集员",
goal="收集行业最新的数据、财报、新闻",
backstory="前彭博社数据分析师,对数字极其敏感",
tools=[serper_search, sec_filing_reader, statista_api],
llm="gpt-4-mini" # 数据收集不需要最强模型
)
strategist = Agent(
role="战略分析师",
goal="从数据中提炼战略洞察",
backstory="前BCG顾问,擅长用波特五力等框架分析行业",
tools=[excel_analyzer, chart_generator],
llm="gpt-4" # 深度分析需要强模型
)
copywriter = Agent(
role="财经撰稿人",
goal="将分析转化为打动人心的商业叙事",
backstory="前《财经》杂志主笔,擅长让复杂问题变得生动",
tools=[],
llm="claude-sonnet-4-6" # 写作场景Claude表现更好
)
# 2. 定义Tasks
tasks = [
Task(description="采集 [行业名] 的最新数据...", agent=data_collector),
Task(description="基于数据做深度战略分析...", agent=strategist),
Task(description="撰写行业分析文章...", agent=copywriter)
]
# 3. 组建Crew并执行
crew = Crew(
agents=[data_collector, strategist, copywriter],
tasks=tasks,
process=Process.sequential,
verbose=True
)
result = crew.kickoff(inputs={"industry": "新能源汽车"})
适合什么场景
✅ CrewAI的最佳场景:
├── 内容创作Pipeline(研究→分析→撰写→审校)
├── 行业研究报告自动化
├── 多视角分析(让不同角色评估同一问题)
├── 教育/培训情景模拟
└── 需要结构化输出的复杂任务
❌ CrewAI不擅长的:
├── 实时交互场景(延迟太高)
├── 单个简单任务(杀鸡用牛刀)
├── 需要高确定性输出的场景
└── Agent数量>10的超大规模协作(编排开销太大)
发展趋势
- CrewAI Enterprise — 企业版增加SSO、RBAC、审计日志
- Crew Marketplace — 预置的Agent和Task模板交易市场
- Crew Flows — 更灵活的多crew嵌套编排
- 与LangGraph集成 — 在LangGraph图结构中调用CrewAI
CrewAI的哲学是:AI协作不应该只是技术问题,还应该是”组织设计”问题。给Agent赋予角色、背景和性格,不仅让它们的输出更像人类专家,也让编排变得更加直观——毕竟,“管理一个团队”是每个管理者每天都在做的事情。