<!-- title: 画图即稳：智能体两范式实测 -->

# 画图即稳：智能体两范式实测

## 概述

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 1.0：把控制流画成图，换稳定与回放

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()`，样板代码量明显高于命令式框架。

```python
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 v1：类型安全是它的护城河

PydanticAI 在 2025 年 9 月冲上 v1，背靠 Pydantic 团队，截至 2026 年累计约 16.5k Star、宣称 160+ 模型集成。它的赌注很明确：**智能体的可靠性来自类型，而不是图**。每个 Agent 的输入、输出、依赖（deps）都被 `BaseModel` 约束，运行期校验；工具用普通函数 + 类型注解定义，框架自动生成 JSON Schema 喂给模型；`result_type` 强制最终输出结构化，模型乱填直接报错而非悄悄返回字符串。

它的 `deps` 依赖注入是隐藏的杀手锏：把数据库连接、配置、客户端塞进 `deps_type`，工具函数签名里直接拿，测试时换成 mock，省掉了全局状态和线程隐患。这与 FastAPI 同源，后端团队几乎零迁移成本。

```python
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：原厂命令式的样板间

OpenAI Agents SDK 在 2025 年 3 月正式接替实验性的 Swarm，成为 OpenAI 的官方智能体栈。它和 LangGraph 是镜像关系：LangGraph 要你画图，Agents SDK 要你**写普通的 Python 类**——`Agent` 持有指令、模型、工具列表和 `handoffs`（交接目标），`Runner` 跑循环，`Guardrails` 做输入/输出校验。多智能体不是靠图调度，而是靠 `handoffs`：一个 Agent 在回复里"点名"另一个 Agent，框架自动切换上下文，像客服转接。

它的优势是**心智负担最低**——没有 StateGraph、没有边、没有 compile，半个屏幕就能跑通。劣势也由此而来：状态完全自管（靠 `context` 对象手传），跨会话持久化要自己接数据库，复杂路由（如并行扇出、汇合、回退）写得多了就退化成手搓 LangGraph。它还默认绑定 OpenAI 协议，换模型需走适配层。

```python
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：会话型智能体的"快枪手"

Agno（前身为 Phidata）在 2026 年凭借约 40k Star 成为 GitHub 上最热门的命令式框架之一，采用 Apache-2.0 协议。它的卖点是**极简 + 内置会话**：`Agent` 直接吃 `model` 和 `tools`，`Session` 抽象把多轮记忆、用户隔离打包好，几行代码就能跑一个带记忆的助手。相比 OpenAI Agents SDK，它更"电池齐全"——内置知识库、向量存储、工作流（Workflow）原语，覆盖了从单 Agent 到轻量编排的常用路径。

它的代价是抽象层较厚：Session、Memory、Workflow、Knowledge 多套概念并存，文档虽全但概念边界有时模糊，深度定制需要读源码。对追求"5 分钟出 Demo"的团队是甜点，对追求"每行代码都可解释"的团队是负担。

```python
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：TypeScript 阵营的统一答案

前端与全栈团队长期缺一个体面的智能体栈，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 团队迁移成本高。

```typescript
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 与"状态机派"：被低估的可审计选项

Burr 由 DAGWorks 维护，把智能体建模为**显式状态机**：`Action` 是状态转移函数，`State` 是不可变字典，转移由应用逻辑驱动。它和 LangGraph 同属"声明式"阵营，但更克制——没有图可视化编辑器那种重量，却把"每个 Action 的输入输出都可追溯"做到了极致，自带 telemetry，能回放任意一次执行。适合金融、医疗、合规等"必须能解释每一步为什么这么走"的场景。

它的劣势是社区与生态都小于 LangGraph，集成需自己写，长尾工具覆盖不足。但在"可审计性 > 生态丰富度"的领域，它比 LangGraph 更轻、比命令式框架更可控。

```python
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()
)
```

### 七、裸 SDK 与"反框架"潮：到底要不要框架

2026 年一个值得警惕的信号是"frameworkless"的回潮：越来越多团队报告，从 LangChain 迁回原生 OpenAI/Anthropic SDK 后**延迟显著下降、调试链路变短**。原因直白——框架的每一层抽象（链、记忆封装、回调）都在 prompt 装配和响应解析上抽税，而多数智能体逻辑其实就是一个 `while` 循环加函数调用。一个 50 行的裸 SDK 循环，往往比 200 行的框架代码更快、更透明。

但裸 SDK 的隐性成本在规模处爆发：流式中断、断点续跑、跨会话记忆、并发限流、可观测追踪、重试退避——这些框架白送的能力，自研要逐个补齐，最后往往会"重新发明一个简陋的 LangGraph"。判据很简单：**逻辑是否只是一条直线**。是，就裸 SDK；出现分支、循环、回放、人审，就值得上框架。

```python
# 裸 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 代码"分界日益清晰的原因。

## 架构图：从裸 SDK 到声明式图的控制流谱系

```mermaid
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 年没有"最好的框架"，只有"和你控制流偏好对齐的框架"。

## 参考来源

1. [LangChain and LangGraph Agent Frameworks Reach v1.0 Milestones](https://www.langchain.com/blog/langchain-langgraph-1dot0) — LangChain 官方公告，确认 1.0 为稳定性优先发布，标准化智能体构建
2. [PydanticAI v1: The Type-Safe Agent Framework Rewriting the Python Agent Stack](https://agentmarketcap.ai/blog/2026/04/06/pydanticai-python-agent-framework-langgraph-crewai-comparison) — PydanticAI v1（2025 年 9 月）特性、160+ 集成与类型安全定位
3. [The Frameworkless Agent Architecture: Why Raw SDKs Beat LangChain on Latency](https://agentmarketcap.ai/blog/2026/04/08/frameworkless-agent-architecture-raw-sdk-vs-langchain-latency) — 裸 SDK vs 框架的延迟与调试链路实测对比
4. [AI Agent Framework GitHub Rankings May 2026](https://presenc.ai/research/ai-agent-framework-github-rankings-2026) — 2026 年 5 月主流智能体框架 GitHub Star 排行与热度数据
5. [Mastra: TypeScript AI Agent Framework Guide 2026](https://noqta.tn/en/blog/mastra-typescript-ai-agent-framework-guide-2026) — Mastra 的 TS-first 定位、Workflow/Memory/MCP 能力与适用边界
6. [Claude Agents SDK vs. OpenAI Agents SDK vs. Google ADK](https://composio.dev/content/claude-agents-sdk-vs-openai-agents-sdk-vs-google-adk) — 三大原厂 Agent SDK 在 handoff、guardrail、工具生态上的横向对比

> [!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)
