2026 年中,智能体框架格局完成了第三轮洗牌:LangChain/LangGraph 双双冲上 1.0,PydanticAI 在 2025 年 9 月拿下 v1,OpenAI Agents SDK 吞掉了实验性的 Swarm,Google ADK 与 Claude Agent SDK 补齐了原厂矩阵。但真正值得记录的不是"谁赢了",而是选型逻辑发生了根本位移——开发者不再问"哪个框架更强",而是问"我要画图,还是写代码"。前者把控制流交出去换稳定与可观测,后者把控制流留在手里换速度与类型安全。本文实测七大主流栈,沿"裸 SDK → 命令式代码 → 声明式图编排"这条谱系拆解它们各自的抽象税、状态税与迁移税,并给出按场景落子的推荐。
| 框架/SDK | 范式归属 | GitHub Star | 核心抽象 | 状态管理 | 上手难度 | 最适合场景 |
|---|---|---|---|---|---|---|
| LangGraph 1.0 | 声明式图编排 | ~36k | StateGraph / Node / Edge / Checkpoint | 框架托管(持久化、回放) | 中高 | 长流程、需断点续跑的生产智能体 |
| Burr | 声明式状态机 | 较小 | Action / State / Transition | 显式状态机 + 强可观测 | 中 | 强可审计、状态可重放的流程 |
| PydanticAI v1 | 命令式代码 | ~16.5k | Agent / deps_type / result_type | 自管(结构化 I/O) | 低 | 类型敏感的业务智能体、后端集成 |
| OpenAI Agents SDK | 命令式代码 | 高 | Agent / Tool / Handoff / Guardrail | 自管(上下文对象) | 低 | 纯 OpenAI 栈、多智能体交接 |
| Agno(原 Phidata) | 命令式代码 | ~40k | Agent / Model / Toolkit / Session | Session + Memory 抽象 | 极低 | 快速原型、会话型智能体 |
| Mastra | 命令式代码(TS) | 增长快 | Agent / Workflow / Memory / MCP | 内置 Memory + Workflow | 低 | TypeScript 全栈团队 |
| 裸 SDK(raw) | 无框架 | — | 直接调用 chat.completions / messages | 完全自管 | 视能力而定 | 极致延迟、极简逻辑 |
数据综合 Presenc AI、DecisionCrafters、AgentTailor 等 2026 年 5 月榜单,Star 为近似量级,仅作热度参考。
LangGraph 在 2026 年初与 LangChain 一起拿到 1.0 里程碑,官方把它定位为"低层编排框架,构建有状态智能体"。它的核心心智模型是:智能体就是一张带循环的有向图——节点是计算单元(可以是 LLM 调用、工具、纯函数),边是路由,状态是贯穿全图的共享字典。1.0 是一次"稳定性优先"的发布:冻结了核心图 API,把断点(Checkpoint)、持久化、流式中断(interrupt)、人在回路确认收敛为一等公民。
它最硬的能力是 Checkpointer:每一步执行后把状态快照写入 SQLite/Postgres/Redis,进程崩了能从最后一步续跑,还能按 thread_id 回放整条历史、分叉出新分支。这对长任务(合同审阅、多轮研究、审批流)是刚需。代价是啰嗦——一个带工具的 ReAct 循环要写 StateGraph(State)、add_node、add_conditional_edges、compile(),样板代码量明显高于命令式框架。
from langgraph.graph import StateGraph, START, END
from typing_extensions import TypedDict
class State(TypedDict):
messages: list
tool_calls: int
graph = StateGraph(State)
graph.add_node("agent", call_model)
graph.add_node("tools", run_tools)
graph.add_edge(START, "agent")
graph.add_conditional_edges("agent", should_continue, {"continue": "tools", "end": END})
graph.add_edge("tools", "agent") # 工具回灌,形成循环
app = graph.compile(checkpointer=checkpointer) # 1.0:持久化与回放
变现评估:LangGraph 是目前最适合做"训练营旗舰项目"的栈——可观测、可回放、可上墙演示,结业作品能直接进简历。但教学曲线陡,前两节课必须把 State/Edge/Checkpoint 讲透,否则学员只会抄不会改。
PydanticAI 在 2025 年 9 月冲上 v1,背靠 Pydantic 团队,截至 2026 年累计约 16.5k Star、宣称 160+ 模型集成。它的赌注很明确:智能体的可靠性来自类型,而不是图。每个 Agent 的输入、输出、依赖(deps)都被 BaseModel 约束,运行期校验;工具用普通函数 + 类型注解定义,框架自动生成 JSON Schema 喂给模型;result_type 强制最终输出结构化,模型乱填直接报错而非悄悄返回字符串。
它的 deps 依赖注入是隐藏的杀手锏:把数据库连接、配置、客户端塞进 deps_type,工具函数签名里直接拿,测试时换成 mock,省掉了全局状态和线程隐患。这与 FastAPI 同源,后端团队几乎零迁移成本。
from pydantic import BaseModel
from pydantic_ai import Agent, RunContext
class Output(BaseModel):
summary: str
risk_score: float
agent = Agent("openai:gpt-4o", deps_type=DbClient, result_type=Output,
system_prompt="你是风控助手")
@agent.tool
def fetch_position(ctx: RunContext[DbClient], uid: str) -> dict:
return ctx.deps.query(uid) # 类型安全的依赖注入
result = agent.run_sync("评估用户 u123 的持仓风险", deps=db)
print(result.data) # Output 实例,非裸字符串
变现评估:最适合面向"Python 后端/数据工程师"的付费课——类型链就是卖点,企业最怕的是智能体返回不可控的垃圾。缺点是状态持久化、长程回放不如 LangGraph 原生,需自配。
OpenAI Agents SDK 在 2025 年 3 月正式接替实验性的 Swarm,成为 OpenAI 的官方智能体栈。它和 LangGraph 是镜像关系:LangGraph 要你画图,Agents SDK 要你写普通的 Python 类——Agent 持有指令、模型、工具列表和 handoffs(交接目标),Runner 跑循环,Guardrails 做输入/输出校验。多智能体不是靠图调度,而是靠 handoffs:一个 Agent 在回复里"点名"另一个 Agent,框架自动切换上下文,像客服转接。
它的优势是心智负担最低——没有 StateGraph、没有边、没有 compile,半个屏幕就能跑通。劣势也由此而来:状态完全自管(靠 context 对象手传),跨会话持久化要自己接数据库,复杂路由(如并行扇出、汇合、回退)写得多了就退化成手搓 LangGraph。它还默认绑定 OpenAI 协议,换模型需走适配层。
from agents import Agent, Runner, function_tool
@function_tool
def get_weather(city: str) -> str:
return f"{city} 晴 26℃"
triage = Agent(name="分诊", instructions="按问题类型转交")
weather = Agent(name="天气", tools=[get_weather],
instructions="回答天气,仅天气")
triage.handoffs = [weather]
result = Runner.run_sync(triage, "北京天气如何?")
变现评估:适合做"零基础到第一个智能体"的引流课,门槛极低。但深度有限,进阶内容(持久化、并行、可观测)必须外挂 LangSmith/自建,不适合做高客单训练营的全部内容。
Agno(前身为 Phidata)在 2026 年凭借约 40k Star 成为 GitHub 上最热门的命令式框架之一,采用 Apache-2.0 协议。它的卖点是极简 + 内置会话:Agent 直接吃 model 和 tools,Session 抽象把多轮记忆、用户隔离打包好,几行代码就能跑一个带记忆的助手。相比 OpenAI Agents SDK,它更"电池齐全"——内置知识库、向量存储、工作流(Workflow)原语,覆盖了从单 Agent 到轻量编排的常用路径。
它的代价是抽象层较厚:Session、Memory、Workflow、Knowledge 多套概念并存,文档虽全但概念边界有时模糊,深度定制需要读源码。对追求"5 分钟出 Demo"的团队是甜点,对追求"每行代码都可解释"的团队是负担。
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
tools=[DuckDuckGoTools()],
instructions="用中文简洁回答,必要时联网",
add_history=True, # 自动会话记忆
markdown=True,
)
agent.print_response("PydanticAI 最新版本是多少?")
变现评估:最适合做"24 小时智能体速成"的短线产品——出活快、演示效果好。但因其抽象厚、版本迭代快,长期课程维护成本高,建议作为入门而不是终局。
前端与全栈团队长期缺一个体面的智能体栈,Mastra(核心团队来自 Gatsby)在 2025–2026 填了这个空。它是 TypeScript-first:Agent + Workflow + Memory + 原生 MCP(Model Context Protocol)客户端,定位"用现代 TS 栈构建智能体应用"。它的 Workflow 引擎支持步骤、并行、条件、挂起恢复,某种程度上是 TS 版的轻量 LangGraph,但写起来更像写普通 async 函数。
它的独特价值在生态契合:和 Next.js、Vercel、边缘运行时天然兼容,工具函数可以是任意 TS async 函数,类型从 API 边界一路贯穿到模型调用。劣势是 Python 生态的模型/评估工具(如 DSPy、各种 eval 库)需要适配,纯 Python 团队迁移成本高。
import { Mastra } from "@mastra/core";
import { Agent } from "@mastra/core/agent";
const support = new Agent({
name: "客服",
instructions: "你是中文客服,工单走 createTicket 工具",
model: { provider: "OPENAI", name: "gpt-4o" },
tools: { createTicket },
});
const app = new Mastra({ agents: { support }, memory: true });
const trace = await app.getAgent("support").generate("我要退款 u789");
变现评估:面向"前端/Node 全栈"受众的差异化训练营——这块竞争远小于 Python 红海。卖点是把智能体塞进现有 Next.js 应用,企业落地路径清晰。
Burr 由 DAGWorks 维护,把智能体建模为显式状态机:Action 是状态转移函数,State 是不可变字典,转移由应用逻辑驱动。它和 LangGraph 同属"声明式"阵营,但更克制——没有图可视化编辑器那种重量,却把"每个 Action 的输入输出都可追溯"做到了极致,自带 telemetry,能回放任意一次执行。适合金融、医疗、合规等"必须能解释每一步为什么这么走"的场景。
它的劣势是社区与生态都小于 LangGraph,集成需自己写,长尾工具覆盖不足。但在"可审计性 > 生态丰富度"的领域,它比 LangGraph 更轻、比命令式框架更可控。
from burr.core import ApplicationBuilder, State, action
@action(reads=["count"], writes=["count"])
def step(state: State) -> State:
return state.update(count=state["count"] + 1)
app = (
ApplicationBuilder().with_actions(step)
.with_transitions(("step", "step"))
.with_state(count=0)
.build()
)
2026 年一个值得警惕的信号是"frameworkless"的回潮:越来越多团队报告,从 LangChain 迁回原生 OpenAI/Anthropic SDK 后延迟显著下降、调试链路变短。原因直白——框架的每一层抽象(链、记忆封装、回调)都在 prompt 装配和响应解析上抽税,而多数智能体逻辑其实就是一个 while 循环加函数调用。一个 50 行的裸 SDK 循环,往往比 200 行的框架代码更快、更透明。
但裸 SDK 的隐性成本在规模处爆发:流式中断、断点续跑、跨会话记忆、并发限流、可观测追踪、重试退避——这些框架白送的能力,自研要逐个补齐,最后往往会"重新发明一个简陋的 LangGraph"。判据很简单:逻辑是否只是一条直线。是,就裸 SDK;出现分支、循环、回放、人审,就值得上框架。
# 裸 SDK:一个能调工具的循环,50 行
import anthropic, json
client = anthropic.Anthropic()
tools = [{"name": "get_weather", "input_schema": {...}, ...}]
def loop(query):
msgs = [{"role": "user", "content": query}]
while True:
r = client.messages.create(model="claude-...", max_tokens=1024,
tools=tools, messages=msgs)
if r.stop_reason != "tool_use":
return r.content
msgs.append({"role": "assistant", "content": r.content})
for tc in r.content:
if tc.type == "tool_use":
msgs.append({"role": "user",
"content": [{"type": "tool_result",
"tool_use_id": tc.id, "content": run(tc.name, tc.input)}]})
变现评估:"为什么你不需要框架"本身就是极好的引流内容,能吸引被框架劝退的开发者;但商业化要落到"什么时候需要、需要哪一层",否则容易变成反智口号。
把七栈摆在一起,差异收敛到三条"税":
抽象税:声明式图(LangGraph/Burr)的样板代码最重,但每一跳都可观测;命令式代码(PydanticAI/Agents SDK/Agno/Mastra)最轻,但复杂路由最终会"长出"一个私藏的图引擎。
状态税:图的强项是框架托管状态(Checkpointer 天然支持续跑与回放),命令式的强项是状态由你掌控(更灵活,但续跑要自建)。这是选型时最该问的一句——"我的智能体崩了,要不要从断点接着跑?" 要,倾向 LangGraph/Burr;不要,命令式足矣。
迁移税:原厂 SDK(OpenAI/Claude/ADK)默认绑定自家协议,换模型要走适配层;中立框架(LangGraph/PydanticAI/Agno)多模型抽象更干净,但深度功能常绑死某一模型能力(如 OpenAI 的 Responses API)。2026 年的趋势是"框架在下沉、SDK 在上升"——原厂 SDK 吃掉了简单场景,中立框架退守复杂编排,这正是"图 vs 代码"分界日益清晰的原因。
flowchart LR
subgraph S1["裸 SDK / 无框架"]
A1["while 循环"] --> A2["手动工具调用"] --> A3["手动状态"]
end
subgraph S2["命令式代码(code-first)"]
B1["Agent 对象"] --> B2["装饰器工具"]
B2 --> B3["依赖注入/上下文"]
B3 --> B4["结构化输出校验"]
end
subgraph S3["声明式图(graph-first)"]
C1["StateGraph"] --> C2["Node / Edge"]
C2 --> C3["条件路由"]
C3 --> C4["Checkpoint 持久化"]
C4 --> C5["回放 / 分叉 / 人审"]
end
S1 -- "加抽象" --> S2 -- "交出控制流" --> S3
S3 -- "抽税:样板代码↑" --> S3
S2 -- "收益:速度+类型" --> S2
classDef s fill:#e8f5e9,stroke:#2e7d32
classDef m fill:#fff3e0,stroke:#e65100
classDef g fill:#fce4ec,stroke:#ad1457
class S1 s
class S2 m
class S3 g
场景一:长流程生产智能体(合同审阅、多轮研究、审批流) 首选 LangGraph 1.0。断点续跑、状态回放、人在回路中断是它的看家本领,可观测性与 LangSmith 打通后适合上墙演示。若合规要求每步可审计且嫌 LangGraph 重,备选 Burr。
场景二:类型敏感的业务智能体(金融、风控、ERP 集成) 首选 PydanticAI v1。结构化输入输出 + 依赖注入 + 与 FastAPI 同源,是把智能体嵌进既有 Python 后端的最稳路径。结构化契约即护栏,企业验收最看重这点。
场景三:纯 OpenAI 栈、多智能体客服转接 首选 OpenAI Agents SDK。handoff 模型贴合"客服转接"心智,门槛最低。但持久化与复杂路由要提前规划,否则后期会回退到手搓图。
场景四:前端/全栈团队(Next.js + Node) 首选 Mastra。TS 一条龙,Workflow + Memory + MCP 原生,落地路径清晰,差异化空间大。
场景五:极速原型与会话型助手 首选 Agno。Session + Memory 开箱即用,几行代码出 Demo,适合验证想法;进入生产前评估其抽象厚度是否可接受。
场景六:逻辑就是一条直线、追求极致延迟 直接用 裸 SDK(OpenAI/Anthropic/Google 官方库)。能省掉一层抽象税就省;一旦出现循环、回放、人审,再按上面场景升级。
一句话决策法:问自己"控制流归谁、状态归谁、崩了要不要续跑"。控制流想自己拿 + 状态自己管 → 命令式(PydanticAI/Agents SDK/Agno/Mastra);控制流愿意交出去换稳定可观测 + 状态要框架托管续跑 → 声明式图(LangGraph/Burr);两者都不要 → 裸 SDK。2026 年没有"最好的框架",只有"和你控制流偏好对齐的框架"。
[!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 等场景全覆盖。
