<!-- title: 最简即最稳：四栈同题复刻税实测 -->

## 概述

把同一个多智能体任务——一条带规划、实现、测试、复核四角色的代码审查流水线——在 OpenAI Agents SDK、CrewAI、AutoGen、LangGraph 四个框架里完整复刻一遍，跑 100 轮，结果出现一个反直觉的倒挂：**最薄的封装最稳，最重的脚手架最贵，最"自主"的最慢**。OpenAI Agents SDK 用 180 行拿到 97% 的成功率和 34 秒的端到端延迟，是全场最可靠；LangGraph 写了 310 行（多出 72%），输出质量只比前者高 0.4 分；AutoGen 的对话式协调把延迟拖到 51 秒、可靠度压到 88%。这组数据戳破了一个长期被默认接受的假设——框架抽象越厚、控制流越显式，系统就越"生产级"。事实是，每多一层抽象都在引入新的失败面，而质量天花板由模型决定，不由框架决定。

## 四栈同题复刻对比（2026 实测）

| 维度 | OpenAI Agents SDK | CrewAI | AutoGen | LangGraph |
|------|------|------|------|------|
| 测试版本 | 1.0（2026.02） | 0.80（2026.02） | 0.4（2026.02） | 0.3（2026.02） |
| 核心原语 | Agent + Handoff + Guardrail | Role/Goal/Backstory + Crew | ConversableAgent + GroupChat | StateGraph + 节点/边 |
| 到 hello-world | 10 分钟 | 20 分钟 | 30 分钟 | 45 分钟 |
| 复刻代码量 | 180 行 | 220 行 | 260 行 | 310 行 |
| 可靠度（100 轮） | **97%** | 91% | 88% | 95% |
| 端到端延迟 | **34 秒** | 42 秒 | 51 秒 | 38 秒 |
| 输出质量（1-10） | 7.8 | 8.0 | 7.5 | **8.2** |
| 单次状态切换开销 | 最小 | 记忆检索 ~100ms | GroupChat 30-120s/轮 | ~200ms/切换 |
| 模型支持 | 仅 OpenAI | LiteLLM 全模型 | OpenAI/Azure/Anthropic/本地 | 任意 LangChain 模型 |
| 托管定价 | 随 OpenAI 基础设施 | AMP 企业版 $200/月 | 完全免费 OSS | Platform $50/月起 |
| 失败主因 | 复杂编排受限 | 角色间通信偶发失败 | 对话死锁/空转 | 状态迁移边界用例 |

## 深度分析

### 一、测试方法：为什么必须"同题复刻"

框架对比最容易踩的坑，是给每个框架量身定制一个它最擅长的 demo——AutoGen 用辩论、CrewAI 用角色、LangGraph 用状态机——于是结论永远各擅胜场，毫无可比性。本次复刻刻意选了一个谁都不算主场、但谁都能干的活：代码审查流水线。四个角色（规划、实现、测试、复核）必须按序流转、必须共享同一份上下文、必须有一次条件分支（实现未过测试则回退重写）。用同一份输入 PR 跑 100 轮，固定同一个模型（GPT 系同档位），只换框架。这样测出来的代码量、延迟、可靠度差值，才是真正的"框架税"，而不是"模型税"或"任务税"。结果是：四栈在质量轴上几乎贴在一起（7.5-8.2，跨度 0.7 分），但在代码量轴上拉开 130 行（72%），在延迟轴上拉开 17 秒（50%），在可靠度轴上拉开 9 个百分点。**框架的差异不在能干什么，而在为干同一件事付出多大代价。**

### 二、OpenAI Agents SDK：最薄封装为何最稳

OpenAI Agents SDK 的设计哲学是"围绕自家模型做最薄的一层"：Agent 是 instructions + tools 的组合，handoff 是显式的、由模型决定何时把球踢给下一个 Agent，guardrail 在输入输出两侧做拦截。它之所以在 100 轮里拿到 97% 的成功率和 34 秒的延迟，关键在于**失败面最小**。它不维护显式状态图，不做自主 delegation（所有转交都是 handoff，目标 Agent 写死），不跑 GroupChat 那种"谁来发言"的二次决策。每一次函数调用都直接落到 OpenAI 原生 function calling 上，这是全行业最成熟的一条调用链。代价写在表格里：模型只能用 OpenAI 的，复杂条件编排能力最弱。但如果你的任务能用线性 + 少量 handoff 表达，它就是最优解——180 行代码、10 分钟上手、97% 可靠。

```python
from agents import Agent, Runner
planner  = Agent(name="Planner",  instructions="拆解 PR 为审查子任务")
tester   = Agent(name="Tester",  instructions="为改动写并跑测试",
                 handoffs=[planner])          # 显式 handoff，非自主委派
reviewer = Agent(name="Reviewer",instructions="综合复核", handoffs=[tester])
res = Runner.run_sync(reviewer, "Review this PR: ...")   # 一次入口，链式交接
```

### 三、LangGraph：代码多七成只换 0.4 分

LangGraph 把 Agent 工作流显式建模成有向图：节点是 Agent 或函数，边是带条件的迁移，StateGraph 用 typed state + reducer 在节点间流动，Checkpointer 落地长任务和人审中断。这套抽象换来的是全场最强的可控性——你能精确画出每一条迁移路径，能可视化调试，能优雅处理边界用例。这也是它输出质量登顶（8.2）和可靠度第二（95%）的原因。但代价惊人地高：复刻同一流水线要 310 行，比 OpenAI SDK 多 72%，hello-world 要 45 分钟。**质量天花板被模型锁死，框架只能决定你多接近这个天花板**——多写 130 行、多花 35 分钟，只换来 0.4 分的质量提升和 -2 个百分点的可靠度（相对 OpenAI SDK）。什么时候这笔税值？当你需要条件分支、人审中断、可回放的状态检查点、跨多轮的有状态交互时——这些是 OpenAI SDK 给不了的，是 LangGraph 唯一不可替代的领地。

### 四、CrewAI：角色隐喻的速度红利与天花板

CrewAI 的组织隐喻对业务人员极其友好：每个 Agent 有 role、goal、backstory，组装成 crew，process 选 sequential 或 hierarchical。它在"原型速度"这一项上是真冠军——20 分钟上手、220 行可读性极强，role 一写，非工程师都能看懂流程。可靠度 91%、延迟 42 秒、质量 8.0，三项都在中游。它的瓶颈在"semi-autonomous delegation"：Agent 之间谁该把活交给谁，是 Agent 自己决定的，不是图上的显式边。这导致一旦任务复杂、角色多，偶尔会出现通信失败（91% 那丢失的 9 个百分点大多在这里）。内置的 short/long/entity memory 是亮点，但每次记忆检索 ~100ms 会累积。**CrewAI 的最佳定位是 POC 与业务流自动化**——当角色边界清晰、任务能干净切分给"研究员/写手/审核员"时，它的开发效率无人能及；一旦需要精细控制流的硬约束，就该迁走。

### 五、AutoGen：对话式协调的最慢代价

AutoGen 把多智能体协作建模成对话：ConversableAgent 收发消息，GroupChat 让多个 Agent 围绕一个话题发言（发言人选择经常由 LLM 驱动），还能嵌套子对话。这套范式在"涌现式协作"、研究探索、需要辩论/谈判/多轮思辨的场景里无可替代。但在同题复刻的代码审查流水线里，它是最慢（51 秒）、最不稳（88%）的那个。根因是**对话即往返**：每多一个 Agent，每多一轮发言，就多一次 LLM 往返；GroupChat 3 个以上 Agent 单轮就要 30-120 秒；发言人选择会空转、会死锁。0.4 版引入 async 执行把吞吐拉高了 3 倍，但协调开销的物理下限改不掉。**用 AutoGen 跑确定性强流程，是用大炮打蚊子**——它在结构化流水线上既慢又脆，只有在需要"涌现"和"协商"的研究型任务里才物有所值。

### 六、可靠度倒挂的根因：失败面随抽象层放大

把四栈的可靠度（97/91/88/95）和它们的核心原语并排看，规律非常清楚：**抽象层越多、自主决策点越多，失败面越大。** OpenAI SDK 只有"模型 + 显式 handoff"两个决策点，几乎不失败。LangGraph 决策点多，但全是确定性的条件边，失败被图结构兜住，所以稳。CrewAI 多了"Agent 自主决定委派给谁"这个 LLM 决策点，通信偶发失败。AutoGen 最多——谁发言、发言几次、何时收敛，全交给 LLM 协商，于是空转、死锁、跑题集中爆发。这条规律可以推广成一个选型判据：**每引入一个"让 LLM 来决定"的环节，可靠度就会掉一个台阶**。如果你的业务对可靠度敏感（金融、医疗、生产），优先选决策点显式且确定的框架（LangGraph 或薄封装 SDK），把"自主"压到最低。把"自主"当卖点，要付 9 个百分点的可靠度税。

### 七、代码量的隐藏账：310 行不只是写的问题

310 行 vs 180 行，看着只是多写 130 行，但真实的账在维护期才显形。LangGraph 那 130 行大部分是状态定义、reducer、条件路由、检查点配置——这些都是需要在版本演进、模型升级、需求变更时持续同步修改的"活代码"。每多一行框架特有 DSL，就多一处可能在框架大版本升级时断裂的耦合点。2026 年四个框架都在频繁迭代（CrewAI 半年从 0.5 到 0.80，LangGraph 到 0.3，AutoGen 重写到 0.4），每升一次都要回头改这些脚手架。**复刻同一任务，OpenAI SDK 的 180 行里有近一半是业务逻辑，LangGraph 的 310 行里有一半是框架胶水。** 业务逻辑是资产，框架胶水是负债——后者会随框架消亡而归零。选型时把"框架胶水占比"算进去，结论往往和直觉相反。

### 八、收敛趋势与迁移路径：先用快的，后用稳的

2026 年最值得关注的现象是**框架趋同**：LangGraph 长出了 crew 风格的 Agent 抽象，CrewAI 引入了更显式的工作流控制，AutoGen 吸收了图式的对话结构。三家都在抄对方的作业，差异在收窄。这给了一个稳健的工程路径——**按阶段切换，而不是一开始就赌一个**：POC 阶段用 CrewAI（20 分钟、220 行、role 直觉），验证业务可行性；进入生产、需要条件分支/人审/可观测时迁到 LangGraph（拿确定性和可部署性）；纯研究、需要涌现式协作时用 AutoGen；如果你的任务本身简单且锁定 OpenAI 生态，OpenAI Agents SDK 的薄封装就是终局，连迁移都省了。迁移成本之所以可控，恰恰因为四栈在收敛——你在 CrewAI 里写的 role/goal/backstory，迁到 LangGraph 时几乎能逐字段映射成 node 的 instructions。

## 复刻流水线与四栈差异（架构图）

```mermaid
flowchart TB
    subgraph TASK["同题任务：代码审查流水线"]
        P[规划 Agent<br/>拆解 PR] --> I[实现 Agent<br/>改代码]
        I --> T[测试 Agent<br/>写并跑测试]
        T --> R{测试通过?}
        R -- 否 --> I
        R -- 是 --> RV[复核 Agent<br/>综合评审]
        RV --> OUT[审查报告]
    end

    subgraph SDK["OpenAI Agents SDK · 180行 · 97% · 34s"]
        S1["handoff 链<br/>显式交接 无自主委派"]
    end
    subgraph CR["CrewAI · 220行 · 91% · 42s"]
        C1["crew + role<br/>Agent 自主决定委派"]
    end
    subgraph AG["AutoGen · 260行 · 88% · 51s"]
        A1["GroupChat<br/>LLM 选发言人 易空转"]
    end
    subgraph LG["LangGraph · 310行 · 95% · 38s"]
        L1["StateGraph + 条件边<br/>确定性路由 显式状态"]
    end

    TASK -. 同一输入 100 轮 .-> SDK
    TASK -.-> CR
    TASK -.-> AG
    TASK -.-> LG
```

```mermaid
xychart-beta
    title "四栈同题复刻：代码量 vs 可靠度"
    x-axis ["OpenAI SDK", "CrewAI", "AutoGen", "LangGraph"]
    y-axis "代码行数" 0 --> 350
    y-axis "可靠度(%)" 0 --> 100
    bar "代码量" [180, 220, 260, 310]
    line "可靠度" [97, 91, 88, 95]
```

## 推荐方案

**任务能用线性 + 少量转交表达，且锁定 OpenAI 生态** → OpenAI Agents SDK。最薄封装、最稳、最快上手，97% 可靠度是硬通货。别为了"将来可能复杂"而过早引入重框架，复刻税从第一行代码就开始收。

**需要条件分支、人审中断、可回放检查点、有状态多轮** → LangGraph。这是它唯一不可替代的领地，310 行和 45 分钟的税在这里物有所值。可控性和可部署性是它的真正卖点，质量那 0.4 分只是搭头。

**角色边界清晰、任务能干净切分、优先开发速度** → CrewAI。POC 与业务流自动化的效率之王，非工程师也能读懂流程。但把 91% 的可靠度记进风险账，复杂编排时备好降级方案。

**需要辩论/谈判/涌现式协作的研究型任务** → AutoGen。结构化强流程是它最差的场景（51s/88%），但在需要多轮思辨的探索性工作里无可替代。0.4 的 async 让吞吐勉强能用，但仍是最贵的协调范式。

**一句话选型判据**：把"自主决策点"数到最小——每多一个让 LLM 决定流程走向的环节，就多一层可靠度税。能确定性的，绝不自主。

## 参考来源

1. [AI Agent Framework Comparison 2026: CrewAI vs LangGraph vs AutoGen vs OpenAI SDK — ShipSquad](https://shipsquad.ai/blog/ai-agent-framework-comparison-2026) — 同题复刻代码审查流水线的四框架基准：代码量、可靠度、延迟、质量的实测数据来源
2. [AI Agent Framework Comparison 2026: LangGraph vs CrewAI vs AutoGen — Data-Gate](https://data-gate.ch/ai-agent-framework-comparison-2026-langgraph-crewai-autogen/) — 三框架架构原理、状态切换开销（~200ms）、记忆检索开销（~100ms）、GroupChat 单轮延迟与定价对比
3. [Comparing LLM Agent Frameworks: AutoGen vs CrewAI vs LangGraph — Youngju Kim](https://www.youngju.dev/blog/llm/2026-03-09-llm-agent-framework-autogen-crewai-langgraph-comparison.en) — 实战选型指南，含代码示例、记忆/状态管理、生产部署失败案例（死循环、工具幻觉、上下文溢出、委派失败、API 全局故障）与恢复策略
4. [LangGraph vs CrewAI vs AutoGen: Agent Framework Comparison — Lushbinary](https://lushbinary.com/blog/langgraph-vs-crewai-vs-autogen-ai-agent-framework-comparison/) — 含基准测试与 MCP 集成维度的多框架生产环境对比

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
