深色模式
Agent 框架对比 LangGraph / AutoGen / CrewAI
摘要:LangGraph(图/状态机)、AutoGen/AG2(对话驱动)、CrewAI(角色/任务)是 2025–2026 年最主流的三套 Agent 框架,各自编码了不同的协作心智模型。本文从抽象、控制粒度、可观测性、Human-in-loop、生产成熟度与许可证维度做对比,并给出选型决策表与混合编排建议。所有 star/下载量数字来自社区统计,会随时间变化,标注
[版本相关]。
核心概念:三种心智模型
| 框架 | 核心抽象 | 设计哲学 | 许可证 |
|---|---|---|---|
| LangGraph | StateGraph(节点+边,状态为 typed dict) | 状态机 / 图计算,显式控制每一步 | MIT |
| CrewAI | Agent + Task + Crew | 角色扮演 / 任务委派 | MIT |
| AutoGen (AG2) | ConversableAgent + GroupChat | 对话驱动 / 多方协商 | Apache-2.0(原)→ CC BY 4.0(AG2) |
框架选择先看「工作流的确定性」
若流程高度结构化、需精确控制与可回退,选 LangGraph;若流程线性、要快速出原型,选 CrewAI;若任务天然是多方辩论/代码生成,选 AutoGen。不要为简单任务引入最复杂的框架。
架构与原理:抽象差异
- LangGraph:节点是函数或 LLM 调用,边是条件转移;状态贯穿图流动;内置 Checkpointer 做持久化与断点恢复;通过 LangSmith 做一流可观测。
- CrewAI:声明式定义角色/目标/背景故事与任务
expected_output,process可选sequential或hierarchical;allow_delegation=False可防止 Agent 互委派导致的无限循环。 - AutoGen/AG2:以
GroupChat消息轮次推进,由GroupChatManager决定下一个发言者;原生支持 Docker 沙盒代码执行;human_input_mode支持人工介入。
生产实践:何时用哪个
| 维度 | LangGraph | CrewAI | AutoGen |
|---|---|---|---|
| 控制粒度 | ★★★★★ | ★★★ | ★★★ |
| 易用性 | ★★★ | ★★★★★ | ★★★★ |
| 可观测性 | ★★★★★(LangSmith) | ★★★ | ★★★ |
| Human-in-loop | ★★★★★(断点/审核) | ★★★ | ★★★★ |
| 生产成熟度 | ★★★★ | ★★★ | ★★★★ |
| 代码执行 | 需自集成 | 经工具 | 原生(Docker) |
| 适用团队 | 有经验后端 | 快速原型 | 研究导向 |
选型建议(结合社区 2025 年对比与基准 [版本相关]):
- 生产级、需精细控制/可回退/合规人工审核 → LangGraph。
- 1–2 天 PoC、线性流程、非工程成员也要读懂 → CrewAI。
- 多方深度讨论、自动生成并执行代码、研究场景 → AutoGen/AG2。
OpenAI Swarm 已归档
OpenAI 早期的轻量多 Agent「Swarm」已官方归档(Deprecated),由 Agents SDK 取代。新项目不要基于 Swarm 构建,避免无持久化与无维护状态。
操作步骤 / 配置(最小示例)
LangGraph(图定义,示意 [版本相关]):
python
from langgraph.graph import StateGraph, END
from typing import TypedDict
class S(TypedDict):
input: str
steps: list
wg = StateGraph(S)
wg.add_node("planner", lambda s: s) # 替换为真实函数
wg.add_node("executor", lambda s: s)
wg.add_edge("planner", "executor")
wg.add_conditional_edges("executor", lambda s: "end", {"end": END})
app = wg.compile()1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
CrewAI(角色任务,示意):
python
from crewai import Agent, Task, Crew
a = Agent(role="研究员", goal="收集事实", backstory="数据分析师", allow_delegation=False)
t = Task(description="调研 Agent 安全", agent=a, expected_output="要点")
Crew(agents=[a], tasks=[t], process="sequential").kickoff()1
2
3
4
2
3
4
AutoGen/AG2(群聊,示意):
python
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
# [版本相关] AG2 的 API 与旧 autogen 不同,以官方文档为准1
2
3
2
3
bash
pip install langgraph crewai autogen-agentchat # 按需安装 [版本相关]1
验证
- 框架内可观测:LangGraph 配 LangSmith 看每步 token/tool;CrewAI 开
verbose;AutoGen 看对话日志。 - 回退点验证:LangGraph 用 Checkpointer 从断点恢复;确认失败可从最近稳定节点重跑。
- 功能验证:用同一端到端任务在候选框架各跑一遍,比较成功率与成本。
回滚 / 清理
- 框架选型是架构级决策,回滚成本高。建议 PoC 阶段用 CrewAI 快速验证,确认可行后再用 LangGraph 重写生产版(业界常见混合策略)。
- 框架升级(尤其 AutoGen→AG2 的大版本)属于破坏性变更,需整体回归测试。
故障排查
- LangGraph 学习曲线陡:先用官方
create_react_agent模板,再逐步自定义图。 - CrewAI 不可预测:
backstory式 prompt 在规模下不稳,关键路径补显式校验。 - AutoGen 执行顺序难预测:由 LLM 决定发言者,生产上用
RoundRobinGroupChat或显式终止条件约束。
安全与合规
- 提示注入:三框架都把工具/对话结果进上下文,需统一标记为不可信。
- 越权工具调用:LangGraph 可在节点层做权限校验;CrewAI/AutoGen 需在工具层做 RBAC。
- 数据泄露:多 Agent 上下文累积 PII,输出侧加扫描。
- 成本失控:AutoGen 群聊易发散,必须
max_rounds;LangGraph 循环需条件边兜底。
成本 / 性能
框架本身免费(MIT/Apache),成本来自 LLM 调用与 token。社区基准显示 [版本相关,数字会变动,勿作承诺]:CrewAI 在 QA 类任务上比 LangGraph 快约 5.76 倍,但 LangGraph 在可靠性/状态管理上更强;AutoGen 因对话轮次多,token 与延迟偏高。选型应优先匹配工作流特征而非微基准。性能优化通用手段:Prompt Caching、小模型跑简单节点、批处理、并发上限。