「写一个能跑的 agent」和「构建一个健壮、功能完整的 agent」之间隔着整整一层栈。这份报告把这一层栈拆开:七个主层加三个常被漏掉的辅助层,每层回答三个问题——这一层解决什么问题、同一层里有哪些主流框架、它们的差异和选型判断是什么。所有对比基于 2026 年 9 月的公开状态。
结构:先看栈地图,再按层跳读。每层末尾有一个带竖线的判断块,是可以直接拿去做决定的结论;最后的参考答案给出 TS 与 Python 两个最小健壮组合。
这份报告回答一个具体的问题:构建一个健壮、功能完整的 Agent,需要哪几层技术,同一层里的框架怎么选。六个主层加三个常被漏掉的辅助层,每一层给出职责、主流玩家对比表和选型判断。
读法只有一条:先看第一节的栈地图,再按自己要补的层跳读。所有对比基于 2026 年 9 月的公开状态。
Layer 01
模型层——决定上限,不决定下限
Frontier 三家(GPT / Claude / Gemini)覆盖绝大多数 agent 任务;开源(DeepSeek、Qwen、Llama)在成本敏感、私有化、可自托管场景补位。模型决定 agent 能力的上限,但「健壮」来自下面几层——模型可以随时替换,是栈设计的第一个要求。
Layer 02
Harness / 编排层——agent 的骨架
这层决定控制流怎么写:循环、分支、代理间转交、状态管理。同样是「写一个 agent」,不同框架的编排原语完全不同,选型就是选控制流模型。
主流框架对比
| 框架 | 语言 | 编排原语 | 强项 | 适合谁 |
|---|---|---|---|---|
| OpenAI Agents SDK | Python / TS | Handoff(代理间转交)+ 极简四原语 | 核心极小、上手最快;绑 Responses API 与内置工具(搜索 / computer use) | OpenAI 生态内快速交付 |
| Claude Agent SDK | TS / Python | Agent loop(Claude Code 同款内核) | 开箱即用的工程化:文件工具、subagent、权限系统、hooks、Skills、上下文压缩全内置 | 要「现成健壮内核」而不是自己攒 |
| Google ADK | Python / Java | 多代理层级(内置 sequential / parallel / loop 工作流) | Gemini 原生、Vertex AI Agent Engine 托管一体、内建 eval | GCP 企业栈 |
| Vercel AI SDK | TypeScript | 统一模型接口 + 轻量 Agent 抽象 | 前端流式 UI(useChat)、多模型路由、TS 全栈体验 | TS 全栈、对话型产品 |
| Mastra | TypeScript | 全家桶:workflow(durable / suspend-resume)+ RAG + memory + evals | TS 生态里最完整的独立框架,自带本地 playground | TS 团队要一站式 |
| PydanticAI | Python | 类型安全:结构化输出 + 依赖注入 | Pydantic / FastAPI 生态无缝,工程化但轻 | 已有 FastAPI 后端的团队 |
| LangGraph | Python / JS | 图 / 状态机:节点 + 边 + 共享 state + checkpoint | 控制流最强:循环、分支、human-in-the-loop、断点恢复、时间旅行调试 | 复杂长流程、强审批场景;企业生产主流 |
| CrewAI | Python | 角色化多代理(Crew + Task) | 多代理协作的表达门槛最低 | 角色分工明确的多代理 demo 与轻量生产 |
Java 端
| 框架 | 出身 | 定位 |
|---|---|---|
| Spring AI | Spring 官方(1.0 GA 2025-05) | Java 事实标准:ChatClient 统一接口、@Tool、MCP client+server、OTel 观测;偏积木,编排自己搭 |
| LangChain4j | 社区 | 更「全」:AI Services 声明式接口、RAG、ChatMemory;Quarkus 官方绑定;图编排走 LangGraph4j |
| Google ADK Java | Google 官方 | 与 Python 版同级 GA:多代理层级 + 内建 eval + Vertex 托管 |
| Spring AI Alibaba | 阿里 | Qwen / DashScope 深度集成、Graph 编排、JManus(开源通用 agent);中文生态最活跃 |
| Semantic Kernel | 微软 | 有 Java SDK 但已进维护重心转移,后继 Agent Framework 只优先 .NET / Python,选型谨慎 |
从 demo 到生产
上面每个框架的 demo 都不超过 50 行。生产要在 demo 之外补齐:持久状态、重试、审批、预算、评测——这些恰恰都不在 demo 里。所以先问「你需要哪些逃生舱口」:每个 harness 都允许你带自己的状态、队列和观测,代价完全不同;问完这个,「哪个框架最好」通常已经不难选。
| 框架 | 状态与持久化 | 流式 | 观测与测试 | 已知生产坑 |
|---|---|---|---|---|
| OpenAI Agents SDK | 只有会话记忆;持久化 DIY(配 Temporal / Inngest) | 原生事件流 | OpenAI 调用有平台 trace,其余 DIY | 中间件薄:重试、预算、审批都归你;最深的值在 OpenAI 托管工具里 |
| Claude Agent SDK | 会话内置压缩;工作流持久化仍归你 | 结构化事件流 | hooks + OTel 导出 | 运行时主见强(bash / 文件工具、沙箱假设);成本绑 Claude;比「SDK」这个词重 |
| Google ADK | 会话服务;Vertex Agent Engine 托管 | 部分支持 | 内建 eval + GCP trace | GCP 引力;多代理抽象尚早 |
| Vercel AI SDK | 无内置——Vercel Workflow 补 | TS 流式最强 | AI SDK telemetry(OTel) | agent loop 薄;长任务必须配 Workflow;大版本间 API 变动明显 |
| Mastra | durable workflow + memory 内置 | 支持 | 本地 playground + evals 内置 | 生态年轻、API 变动、招人池小 |
| PydanticAI | DIY(自带存储) | 支持 | Logfire + OTel;依赖注入让单测很干净 | 电池少:memory、RAG、workflow 全 DIY;社区小 |
| LangGraph | checkpoint(Postgres / SQLite)+ 时间旅行 | 支持 | LangSmith 集成最深 | 样板代码;checkpoint 存储会变成一个运维组件;平台推销;0.x 时代的变动史 |
| CrewAI | memory 内置 | 有限 | 基础 | 超出 demo 场景的控制流很难做;多 crew 运行调试痛苦 |
Layer 03
上下文工程——喂给模型的东西决定产出
2025 年起「context engineering」取代 prompt engineering 成为这层的名字。它管四件事:系统提示与约定、能力打包、记忆、检索。
| 组件 | 代表 | 说明 |
|---|---|---|
| 约定文件 | AGENTS.md | 给 agent 看的「仓库说明书」,跨工具通用约定;是约定不是组件 |
| 能力打包 | Anthropic Skills | 把流程、脚本、说明打包成可发现的能力,按需渐进披露——正在成为能力分发的事实标准 |
| 记忆 | Mem0 / Letta / Zep | 提取-存储-召回的记忆管线,跨会话保持状态;按自托管与召回策略差异选型 |
| 检索 | 向量库 / RAG 管线 | 从「预取式 RAG」转向「按需检索」:工具化的 just-in-time context 常优于提前塞满 |
Layer 04
协议层——三族协议,不是一族
这层解决「组件之间怎么说话」。按通信对象分三族,混在一层里谈是常见误区。
| 族 | 协议 | 通信对象 | 状态 |
|---|---|---|---|
| 工具互操作 | MCP | agent ↔ 工具 / 数据源 | 事实标准:三大厂全部接入 |
| 代理互操作 | A2A | agent ↔ agent | 已捐 Linux Foundation;标准化早于需求,落地一般 |
| 界面互操作 | AG-UI / A2UI / UCP | agent ↔ 前端 / 商业系统 | 流式 UI 状态同步与代理商务,2026 年快速演进中 |
Layer 05
执行层——模型说出的话,在这里变成动作
两个子类:代码执行沙箱和浏览器 / 计算机操作。健壮性的重心完全不同。
| 子类 | 代表 | 要点 |
|---|---|---|
| 代码沙箱 | E2B / Daytona / Modal | Firecracker 级隔离、快照恢复、按秒计费;跑模型生成的代码的唯一安全方式 |
| 浏览器 / 计算机操作 | Browserbase / Playwright MCP / computer-use | 生产事故重灾区:选择器漂移、登录态、反爬;托管浏览器 + 显式审批优于裸 computer-use |
Layer 06
持久执行——健壮与玩具的分水岭
长任务必然遇到:进程崩了、模型超时、步骤要重试、任务要暂停等人工审批。持久执行引擎把状态落到库,让任务可恢复、可重试、可回放。
| 引擎 | 形态 | 特点 |
|---|---|---|
| Temporal | 自托管 / 云 | 最成熟,代码即工作流(replay 模型),重;企业级标配 |
| Inngest | 托管 / 自托管 | 事件驱动、函数级步骤重试,TS 生态顺滑 |
| DBOS | 库(TS / Py) | 把持久执行做进 Postgres,轻量、无独立组件 |
| Restate | 自托管 / 云 | 轻量 runtime,durable 原语设计干净 |
| Cloudflare Workflows | Workers 内 | CF 生态内的 step 级持久执行,与 D1 / R2 天然一体 |
| Vercel Workflow | Vercel 内 | Vercel AI SDK 的天然持久层 |
| LangGraph Platform | 托管 | LangGraph 的 checkpoint 本就持久,Platform 补托管与部署 |
Layer 07 · 辅助
网关与路由——多模型的机房层
模型可替换是栈设计要求,落地就是这层:统一 API、按成本 / 延迟 / 可用性路由、预算与限流。
Layer 08 · 辅助
观测与评测——从第一天就接
agent 的失败是链式的:一次跑偏要靠完整 trace 才能归因。这层必须在第一版就接入,事后补的观测永远缺上下文。
| 工具 | 形态 | 特点 |
|---|---|---|
| Langfuse | 开源,可自托管 | tracing + prompt 管理 + evals + 数据集;框架无关 |
| LangSmith | LangChain 官方商业 | 与 LangGraph 集成最深 |
| Braintrust | 商业 | 评测优先:数据集、在线评分、实验对比 |
| OTel GenAI 语义约定 | 标准 | 厂商中立的 tracing 规范,避免供应商锁定 |
Layer 09 · 辅助
护栏与安全——健壮的最后一道
三类:权限模型(工具 allowlist、路径白名单、人工审批点)、输出校验(结构化校验 + 事实核查)、数据安全(PII 过滤、审计日志)。Claude Agent SDK 的权限系统、LangGraph 的 human-in-the-loop 都是在这层给原语。
Trend
整合趋势——谁在吞并谁
栈图是静态的,生态在动态地合并:
含义:选框架时看它的「吞噬路线图」:两年后你用的层,大概率已经是今天 harness 里内置的层。
参考答案——两个最小健壮组合
TS 栈:Claude Agent SDK(或 Vercel AI SDK + Mastra)+ MCP 工具 + Inngest / Vercel Workflow(持久执行)+ E2B(沙箱)+ LiteLLM(网关)+ Langfuse(观测)。
Python 栈:OpenAI Agents SDK 或 LangGraph + MCP 工具 + Temporal(持久执行)+ E2B(沙箱)+ LiteLLM(网关)+ Langfuse(观测)。
两组都能跑生产,差异只在语言与托管偏好。健壮的检验方式从头到尾只有一个问题:每一层都答得上「崩了怎么办」。