AI 智能体框架对比:LangGraph、AutoGen、CrewAI 与 Agents SDK

"多智能体系统"是当前 AI 应用开发里最热的方向,但框架生态已经非常拥挤。LangGraph、AutoGen、CrewAI 与 OpenAI Agents SDK 是最常被拿来对比的四个选择,它们的哲学差异很大:有的强调对执行流程的精细控制,有的强调开箱即用的多智能体协作,有的强调角色化分工,有的强调极简原语。选错框架的代价是后期迁移成本高,所以先用一张地图理解各自定位,再决定。基础概念可先看 AI 智能体开发基础

一、LangGraph:以"图"为核心的精确控制

LangGraph 由 LangChain 团队维护,核心理念是把智能体执行流程建模成状态图(StateGraph):节点(node)执行逻辑,边(edge)决定流转,所有节点通过共享状态通信。

  • StateGraph 与 reducer:每个节点是"State → Partial State"的函数,reducer 定义多节点写入同一字段时的合并规则。
  • checkpointer(持久化):编译时传入 checkpointer,配合 thread_id,让图具备"暂停、恢复、回放"能力,是长任务与断点续跑的基础。
  • human-in-the-loop:通过 interrupt() 在节点内暂停图执行、向客户端索取输入,再用 Command 恢复——这是审批类流程的标配。
  • 动态并行Send 支持 map-reduce 式并行(把同一节点以不同状态并发执行后聚合)。
  • 子图与条件边:支持子图嵌套与 add_conditional_edges 动态路由。

它几乎不预设抽象,控制力最强,但学习曲线也最陡。与 LangChain 开发指南搭配使用最为顺畅。

二、AutoGen:微软的"事件驱动 + 智能体团队"

AutoGen 由微软维护,分两层:底层 autogen-core 是事件驱动的编程模型,上层 AgentChat 提供开箱即用的高级 API,内置多种多智能体协作模式:

  • 团队与协作:预置 Selector Group Chat(共享上下文 + 集中式选择器)、Swarm(局部工具式路由)、Magentic-One(通用多智能体)与 GraphFlow(有向图工作流)。
  • 事件驱动:核心层强调组件间的消息/事件流,灵活但需要理解异步模型。
  • 应用与监控:与 Microsoft Foundry 生态集成,提供日志与追踪。

适合想要"多智能体对话式协作"、且愿意接受微软生态与事件驱动学习成本的中大型项目。

三、CrewAI:角色化分工与低门槛

CrewAI 的核心抽象是"Crew(团队)":把多个 Agent(角色 + 目标 + 背景)与 Task 组合,按顺序(sequential)或层级(hierarchical,由 manager 协调)流程执行。

  • 极低上手门槛:声明式定义角色、目标、任务即可跑通,适合业务人员理解、快速出原型。
  • Flows(流程):事件驱动的轻量工作流层,用 @start@listen@router 装饰器串接方法与状态,支持条件分支、循环与状态持久化。
  • 记忆与检查点:内置记忆系统与 checkpoint,长任务可断点恢复。
  • 人机协同@human_feedback 支持审批门控与人工反馈。

适合快速验证"多角色协作"业务(如市场调研、内容生产流水线),以及更看重开发效率而非极致控制的团队。

四、OpenAI Agents SDK:极简原语 + 官方生态

OpenAI Agents SDK 是 Swarm 的生产级升级版,刻意保持很小的原语集:

  • Agent:LLM + 指令 + 工具 + 护栏(guardrails)的组合。
  • Handoff:让一个智能体把任务移交给另一个智能体,天然支持"分流/委派"式编排。
  • Guardrails:输入/输出校验,可与执行并行、快速失败。
  • Tracing 与 Sessions:内置追踪与持久化会话,调试和监控开箱即用。
  • Python-first:用原生 Python 表达编排逻辑,几乎没有新抽象,学习成本最低。

它默认使用 OpenAI 的 Responses API(相关背景见 OpenAI API 开发指南),也支持非 OpenAI 模型。适合需要快速上手、主要跑在 OpenAI 生态、看重追踪与护栏的项目。

同一个任务的四种写法

以"写一篇产品简介并总结成 3 个要点"为例,不同框架的表达差异一目了然:

# CrewAI:声明式,最快跑通
from crewai import Agent, Task, Crew
writer = Agent(role="文案", goal="写产品简介", backstory="资深文案")
summarizer = Agent(role="编辑", goal="提炼要点", backstory="严谨编辑")
crew = Crew(
    agents=[writer, summarizer],
    tasks=[
        Task(description="写 200 字产品简介", agent=writer),
        Task(description="总结为 3 个要点", agent=summarizer),
    ],
)
print(crew.kickoff())
# OpenAI Agents SDK:极简原语,两行编排
from agents import Agent, Runner
writer = Agent(name="writer", instructions="写产品简介")
result = Runner.run_sync(writer, "为 AI 客服产品写 200 字简介")
print(result.final_output)
# LangGraph:显式定义节点与边
from langgraph.graph import StateGraph
g = StateGraph(dict)
g.add_node("write", lambda s: {"draft": draft_fn(s["topic"])})
g.add_node("summary", lambda s: {"summary": sum_fn(s["draft"])})
g.set_entry_point("write"); g.add_edge("write", "summary")
app = g.compile()
print(app.invoke({"topic": "AI 客服产品"}))

可以看到:CrewAI 把"角色协作"写成配置,Agents SDK 只保留 Agent 与 Runner 两个概念,LangGraph 需要你亲手定义每一跳。AutoGen 则偏"对话式团队",用异步事件驱动,写法上更接近构建一个多角色 chat。没有绝对优劣,关键在于你愿意为哪种表达方式付费。

五、选型建议

维度 LangGraph AutoGen CrewAI OpenAI Agents SDK
核心抽象 状态图 智能体团队/事件 Crew + Flow Agent + Handoff
控制力 最高 中低
上手难度 较陡 最低
持久化/断点 checkpointer 原生 部分 checkpoint 内置 Sessions 内置
适合场景 复杂可控流程 多智能体对话协作 快速角色化原型 OpenAI 生态轻量应用

一句话总结:要精确控制每一步选 LangGraph;要多智能体自由协作选 AutoGen;要快速搭角色化团队选 CrewAI;要极简 + 官方生态选 OpenAI Agents SDK。多数项目也可混合使用——用 LangGraph 编排核心流程,用轻量 SDK 做外围任务。

一个真实选型场景

某中型电商团队要做"智能售后工单":用户描述问题 → 自动分类 → 查询订单与物流 → 必要时转人工。他们最终的选择是:

  • 路由与审批:用 LangGraph 把"分类 → 查询 → 是否转人工"画成状态图,配合 interrupt() 让人工介入时有暂停点;
  • 外围任务:用 Agents SDK 处理两个独立的小任务(工单摘要、回复草稿),代码量小、便于维护;
  • 快速验证:最初用 CrewAI 在一周内跑通了端到端原型,验证了"多角色流水线"的可行性,再逐步迁移到 LangGraph 强化控制。

复盘下来,最大的教训是"不要一上来就上最重的框架":先用轻量方案验证业务,再按控制力需求升级,迁移成本比想象中低——因为核心的提示词、工具函数与数据模型都可以复用。

常见问题(FAQ)

  1. 这四个框架能混用吗? 可以。底层只要都走 OpenAI 兼容的 API,LangGraph 编排 + Agents SDK 跑外围任务是很常见的组合;关键是保持"工具函数与提示词独立于框架"。
  2. 中文内容生成用哪个更好? 框架本身不决定生成质量,模型才决定。选型只看控制力、生态与维护成本;语言质量靠提示词与模型档位解决。
  3. 什么时候该从 CrewAI 迁到 LangGraph? 当流程开始出现复杂分支、需要严格的状态回溯与人工审批时,就是迁移的信号;在那之前,CrewAI 的开发速度优势更大。

六、16IDC 落地建议

无论选哪个框架,先把护栏与审计想清楚:智能体一旦获得工具权限,其"自主性"就是新的攻击面(可参考 AI 安全与提示注入防御)。建议先用 CrewAI 或 Agents SDK 快速验证业务价值,再按需迁移到 LangGraph 强化控制;同时为 服务器选型预留足够的并发与日志算力——多智能体系统的每一步调用、状态与追踪都会消耗真实资源。

原文来源:https://langchain-ai.github.io/langgraph/

参考:LangGraph 文档 https://langchain-ai.github.io/langgraph/;AutoGen 文档 https://microsoft.github.io/autogen/;CrewAI 文档 https://docs.crewai.com/;OpenAI Agents SDK https://openai.github.io/openai-agents-python/