第十一章 框架选型,别被README骗了

71 阅读8分钟

AI Agent工程化实录 · 第十一章

GitHub上搜"AI Agent framework",出来几百个仓库。每个README都写着"简单、强大、生产就绪"。但README是营销材料,不是技术文档

选框架不是选"哪个最火",而是选"哪个最适合你的场景"。本章从架构师视角,拆解主流框架的真实设计取舍。

01 框架的本质:抽象层

所有Agent框架做的是同一件事:把LLM调用+工具调用+状态管理的复杂性封装起来。区别在于抽象的层次和方式。

抽象越高级,上手越快,但灵活性越低。抽象越低级,控制力越强,但开发成本越高。

fig0-abstraction-spectrum.png

02 框架格局:6大主流框架的真实对比

框架格局有了显著变化:OpenAI Agents SDK入场、LangChain拆分出LangGraph独立定位、CrewAI推出Enterprise版、MCP和A2A协议重塑了工具层和Agent间通信。同时,"自研"不再是从零开始——有了MCP、A2A、LiteLLM等基础设施组件,自研的成本大幅下降。

fig1-framework-comparison.png

维度OpenAI Agents SDKLangGraphCrewAIAutoGenGoogle ADK自研+MCP
抽象层级低(Handoff为主)中高(图节点+边)中(角色+任务)中(对话式)中(A2A原生)
编排方式LLM自主Handoff开发者定义图开发者定义流程LLM自主对话A2A Task协商全自定义
MCP支持✅ 原生⚠️ 需适配⚠️ 需适配❌ 无✅ 原生✅ 原生
A2A支持❌ 无⚠️ 规划中⚠️ 规划中❌ 无✅ 原生✅ 可实现
推理模型✅ o4/o4原生✅ 通用✅ 通用✅ 通用✅ Gemini原生✅ LiteLLM代理
可观测性✅ 内置Tracing✅ LangSmith⚠️ 基础⚠️ 基础✅ 内置⚠️ 自己搭
成本透明✅ reasoning token可见✅ LangSmith❌ 隐式❌ 隐式✅ 可追踪✅ 完全可控
学习曲线
生产就绪✅ 是✅ 是⚠️ Enterprise版是❌ 不够⚠️ 新发布✅ 自己保证
适合场景OpenAI用户、快速上线复杂流程、生产级多Agent原型研究/教学Google生态精细控制、成本敏感

⚠️ 选型的关键变化:框架的"功能"不再是主要区分维度——MCP统一了工具层,A2A正在统一Agent间通信。选框架更多看编排方式(Handoff vs 图 vs 对话)和生态绑定(OpenAI vs Google vs 独立)。

OpenAI Agents SDK

定位:OpenAI官方Agent框架,轻量级、生产就绪。

真实优势:官方支持、与OpenAI模型深度集成、内置handoff机制、支持MCP协议。代码简洁,没有过度抽象。

真实问题:只支持OpenAI模型(虽然可以扩展)。生态还在建设中,第三方集成不如LangChain丰富。

适合:使用OpenAI模型的生产环境、需要快速上线、团队规模不大。

不适合:需要多模型切换、需要大量第三方工具集成。

LangChain / LangGraph

定位:全家桶。从LLM调用到RAG到Agent到多Agent,一站式解决。

真实优势:生态最大、集成最多、LangGraph的状态机设计确实优雅。

真实问题:抽象层太多。你想调一个API,得穿过3层封装。报错信息是框架内部的堆栈,不是你代码的问题。升级经常breaking change。

适合:快速原型、需要大量第三方集成、团队里没有资深工程师。

不适合:需要精细控制、对性能敏感、讨厌"魔法代码"。

CrewAI

定位:多Agent协作框架。定义"船员"和"任务",框架负责调度。

真实优势:多Agent场景上手最快。角色定义直觉,5分钟跑起来。

真实问题:黑盒太多。Agent之间怎么通信?任务怎么分配?你控制不了。出了问题,debug非常痛苦。而且多Agent的token消耗是隐式的——你以为跑了3步,实际消耗了30K token。

适合:多Agent概念验证、不需要精细控制。

不适合:生产环境、成本敏感、需要可观测性。

AutoGen (Microsoft)

定位:多Agent对话框架。Agent之间通过"对话"协作。

真实优势:对话式协作最自然。人可以随时加入对话。微软背书,学术圈认可。

真实问题:对话式协作的效率低——Agent之间用自然语言通信,信息密度低、解析成本高。而且对话轮数不可控,可能无限聊下去。

适合:研究场景、需要人参与的多Agent协作。

不适合:高吞吐生产环境、成本敏感。

自研 / 轻量封装

定位:不用框架,自己写。或者只用最轻量的封装(如OpenAI SDK + 几个工具函数)。

真实优势:完全控制、没有黑盒、debug直接看代码、性能最优。

真实问题:开发成本高。状态管理、重试逻辑、工具注册——这些框架帮你做的事,你得自己写。

适合:有经验的团队、需要精细控制、对成本/性能敏感。

不适合:快速验证、团队经验不足。

两个不可忽视的协议标准:MCP与A2A

框架选型之外,有两个协议标准正在重塑Agent生态,架构师必须了解:

MCP(Model Context Protocol):Anthropic推出的开放协议,解决"Agent如何连接工具和数据"的标准化问题。之前每个框架都有自己的工具注册方式——LangChain用Tool类,CrewAI用装饰器,OpenAI用function calling格式。MCP统一了这一切:任何MCP兼容的工具,可以被任何MCP兼容的Agent使用。MCP的核心价值不是技术,是生态——工具开发者只需实现一次MCP接口,就能接入所有框架。OpenAI、Google等主要厂商都已宣布支持MCP,它正在成为Agent工具层的"HTTP协议"。

A2A(Agent-to-Agent):Google推出的Agent间通信协议,解决"Agent之间如何发现彼此、协商任务、交换结果"的问题。如果说MCP是Agent与工具的协议,A2A就是Agent与Agent的协议。A2A定义了Agent Card(能力描述)、Task(任务协商)、Message(消息传递)等核心概念。A2A的意义:让不同框架、不同厂商的Agent能够互操作——一个LangGraph的Agent可以调用一个CrewAI的Agent,只要双方都支持A2A。

⚠️ 协议选型建议:如果你的Agent需要连接外部工具,MCP是首选标准;如果你的系统涉及多Agent跨框架协作,关注A2A的成熟度。但两者都还在快速演进中,架构设计要预留协议切换的空间。

03 选框架的5个维度

fig2-selection-criteria.png

1. 控制粒度:你能控制Agent的每一步吗?还是框架替你决定?

2. 可观测性:框架内置了trace/log吗?还是你得自己加?

3. 成本透明:你能看到每步的token消耗吗?还是只有总数?

4. 调试体验:出了问题,你能快速定位吗?报错信息有用吗?

5. 生态锁定:换框架的成本有多高?你的代码能脱离框架独立运行吗?

04 框架选型决策树

简单粗暴的决策指南:

· 快速验证想法 → CrewAI或LangChain,5分钟跑起来 · 单Agent生产服务 → LangGraph或自研,需要状态管理和可观测性 · 多Agent生产服务 → LangGraph或自研,CrewAI/AutoGen的可控性不够 · 研究/教学 → AutoGen,对话式协作最直观 · 成本敏感/性能敏感 → 自研,框架的抽象层有性能开销

⚠️ ⚠️ 最大的陷阱:先用框架快速验证,然后"将就"着上生产。框架的快速原型能力≠生产就绪。验证通过后,认真评估是否需要重写核心逻辑。

05 我的建议:渐进式架构

不要一开始就选框架。按阶段来:

阶段1(0-2周):用任何框架快速验证。证明Agent能完成任务。

阶段2(2-6周):评估框架是否满足生产需求。如果不满足,开始替换关键模块。

阶段3(6周+):核心逻辑自研,框架只用于非核心部分(如工具注册、LLM调用封装)。

渐进式架构的核心原则

框架是脚手架,不是地基。 脚手架可以拆,地基不能换。 核心逻辑(状态机、决策逻辑、工具编排)应该是你自己的代码。 非核心部分(LLM调用、日志、重试)可以用框架。

06 选型决策树

你要做Agent吗?
├─ 不,我要做Chatbot → 不需要框架,直接API调用
├─ 不,我要做Workflow → 用n8n/Tempora,不是Agent框架
└─ 是的
 ├─ 你的Agent需要几个角色?
 │ ├─ 1个 → 单Agent + 好工具就够了
 │ │ ├─ 用OpenAI?→ Agents SDK(最简单,MCP原生)
 │ │ ├─ 用Google?→ ADK(A2A原生)
 │ │ └─ 不绑定?→ 自研+MCP(精细控制)
 │ └─ 多个
 │ ├─ 流程确定?
 │ │ ├─ 是 → LangGraph(图定义,最可控)
 │ │ └─ 否 → Agents SDK(Handoff,LLM自主)
 │ └─ 跨框架/跨组织?
 │ ├─ 是 → A2A协议 + 任意框架
 │ └─ 否 → 单框架内协作
 ├─ 成本敏感?
 │ ├─ 是 → 自研+LiteLLM(多模型路由,reasoning模型按需)
 │ └─ 否 → 全用推理模型(最简单)
 └─ 需要推理模型?
 ├─ GPT-5.5 Thinking → Agents SDK/LangGraph
 ├─ DeepSeek R3 → 自研+LiteLLM(性价比最优)
 └─ Gemini → ADK

下一篇:第12章——下一个架构挑战,Agent的未竟之业