<!-- title: 模型驱动vs代码驱动：Agent框架两极实测 -->

# 模型驱动对决代码驱动：2026 Agent 框架的两极分化实测

## 概述

如果只能用一句话概括 2026 年 Agent 框架格局的变化，那不是"谁赢了"，而是**整个生态沿着一条轴线劈成了两半**。一极是**模型驱动派**——把控制权交给 LLM，开发者只声明一组工具和一个 system prompt，循环由模型自己决定走哪一步（AWS Strands、Smolagents、OpenAI Agents SDK、Claude Agent SDK）；另一极是**代码驱动派**——开发者用图、状态机、条件边把流程钉死，模型只在节点内部"出力"（LangGraph、Google ADK）。夹在中间的 CrewAI、Mastra、PydanticAI 则各自往某一极靠拢。这条"控制权归属"的分界线，比"哪个框架 Star 多"更能决定你的项目生死：选错派系，要么失控翻车，要么把灵活任务做成了僵硬流水线。本文实测两极七栈，给出按场景而非按热度的选型红线。

## 核心分野：控制权归谁

在看任何一张框架对比表之前，先记住 2026 年的这条主轴。它解释了为什么 Strands 几行代码就能跑、而 LangGraph 要先画半天图——两者解决的根本不是同一类问题。

| 维度 | 模型驱动派 | 代码驱动派 |
|------|-----------|-----------|
| **控制权归属** | LLM 决定下一步动作 | 开发者用图/状态机定义路径 |
| **编排抽象** | tool list + agent loop | DAG、条件边、checkpoint |
| **灵活性** | 高，模型自适应新输入 | 低，行为受代码约束 |
| **可测试性** | 弱，路径非确定 | 强，路径可枚举可回放 |
| **上手速度** | 极快，几行即可运行 | 慢，需先设计拓扑 |
| **失败模式** | 漂移、幻觉式调用、死循环 | 流程僵化、节点间状态割裂 |
| **典型场景** | 客服、研究、开放探索 | 合规审批、财务对账、生产 ETL |

```mermaid
flowchart LR
    User[用户任务] --> Q{是否需要<br/>确定性路径?}
    Q -->|否·开放探索| MD[模型驱动派]
    Q -->|是·合规/生产| CD[代码驱动派]
    MD --> S1[AWS Strands]
    MD --> S2[Smolagents]
    MD --> S3[OpenAI Agents SDK]
    MD --> S4[Claude Agent SDK]
    CD --> C1[LangGraph]
    CD --> C2[Google ADK]
    Mid[中间派] --> M1[CrewAI 角色驱动]
    Mid --> M2[Mastra 工作流]
    Mid --> M3[PydanticAI 类型安全]
    S1 -. 向代码派靠 .-> C1
    S3 -. subagent 图 .-> CD
```

## 多框架对比总表

| 框架 | 派系 | 语言 | 生态热度 | 核心抽象 | 上手 | 变现潜力 |
|------|------|------|---------|---------|------|---------|
| **AWS Strands** | 模型驱动 | Py / TS | ~5.4k★·14M PyPI 下载 | model-driven loop | ★★★★★ | ★★★★ |
| **Smolagents** | 模型驱动 | Py | ~14k★ | code agent | ★★★★★ | ★★★ |
| **OpenAI Agents SDK** | 模型驱动 | Py | v0.17 | handoff / subagent | ★★★★ | ★★★★ |
| **Claude Agent SDK** | 模型驱动 | Py / TS | 官方主推 | MCP / tool search / hooks | ★★★★ | ★★★★ |
| **LangGraph** | 代码驱动 | Py / TS | 生态最大 | stateful graph + checkpoint | ★★ | ★★★★★ |
| **Google ADK** | 代码驱动 | Py | 官方主推 | structured multi-agent + A2A | ★★★ | ★★★★ |
| **CrewAI** | 中间·角色派 | Py | 52.4k★ | role / goal / backstory | ★★★★ | ★★★★ |
| **Mastra** | 中间·TS 派 | TS | 22.3k★·$22M A 轮 | workflows + memory + RAG | ★★★ | ★★★★★ |
| **PydanticAI** | 中间·类型派 | Py | — | 类型安全 + 可组合能力 | ★★★★ | ★★★ |

## 深度实测

### 一、AWS Strands：模型驱动派的"裸跑"标杆

Strands 是 AWS 在 2025 年 5 月开源的 Apache-2.0 SDK，2026 年已突破 1400 万次 PyPI 下载、Star 从 5400 持续攀升，并在 1.0 版本正式定调"model-driven"。它的哲学极其纯粹：**开发者只给工具和 system prompt，循环怎么走交给模型**。一个能查天气、算数、报时的 Agent，真的只要下面这几行：

```python
from strands import Agent, tool
from strands_tools import calculator, current_time

@tool
def weather(city: str) -> str:
    return f"{city} 今日晴，25°C"

agent = Agent(tools=[calculator, current_time, weather],
              system_prompt="你是中文助手。")
agent("上海天气如何？顺便算 12 乘 7")
```

Strands 内置 150+ 工具、原生 MCP 支持，并提供 Graph、Swarm、Workflow 三种多智能体模式与 A2A 协议——这意味着它在"裸跑"之外，也能向代码驱动派切换。**优点**是上手成本全场最低，几行代码就能交付一个生产可用 Agent；**缺点**是行为高度依赖模型质量，弱模型会把它带进死循环，且缺乏强类型约束。**变现评估**：作为训练营入门项目，"五分钟搭一个能用的 Agent"极具传播力；作为 SaaS，适合封装成客服、文档问答这类容错度高的轻量产品。

### 二、LangGraph：代码驱动派的工业母机

如果 Strands 是"让模型自由发挥"，LangGraph 则是"把模型关进笼子里按既定路线干活"。它是目前生态最大、生产验证最充分的框架，核心是**有状态图 + checkpoint**：每个节点是一个函数，边是条件跳转，状态在节点间显式流转并可随时回放、断点、人工介入。下面是一个带文档相关性判断、可分支重写的 RAG 图骨架：

```python
from langgraph.graph import StateGraph, END
from langgraph.checkpoint.memory import MemorySaver
from typing import TypedDict

class State(TypedDict):
    question: str
    docs: list
    answer: str

g = StateGraph(State)
g.add_node("retrieve", retrieve_node)
g.add_node("grade", grade_docs)
g.add_node("generate", generate_node)
g.add_conditional_edges("grade", lambda s: "ok" if s["docs"] else "rewrite",
                        {"ok": "generate", "rewrite": "retrieve"})
g.add_edge("generate", END)
app = g.compile(checkpointer=MemorySaver())
```

**优点**：行为可预测、可回放、可观测，天然契合合规与生产场景，human-in-the-loop 一等公民。**缺点**：上手陡峭，设计一张图的时间够 Strands 跑通三个原型；过度建模会让本应灵活的任务变得僵化。**变现评估**：是做"企业级 Agent 平台"绕不开的底座，训练营可主打"从原型到生产的鸿沟"，客单价和留存都最高。

### 三、OpenAI Agents SDK：模型驱动派 + 渐进的"子图"

OpenAI Agents SDK（Swarm 的继任者，2026 年已迭代到 v0.17）走的是"模型驱动为体、handoff 为用"的路线。它把多智能体协作简化为 **Agent 之间的交接（handoff）**：一个分诊 Agent 把任务"递"给账单 Agent 或技术 Agent，每个子 Agent 自带工具和权限边界。v0.17 还新增了 sandboxes 沙箱与 subagents 子代理，实质上是把 LangGraph 式的图，以更轻的 handoff 语法实现出来。

```python
from agents import Agent, Runner

billing = Agent(name="账单", tools=[get_invoice],
                instructions="只回答账单问题")
tech = Agent(name="技术", tools=[search_kb],
             instructions="只回答技术问题")
triage = Agent(name="分诊", instructions="判断后转交",
               handoffs=[billing, tech])
res = Runner.run_sync(triage, "我上个月的账单多少")
```

**优点**：与 OpenAI Responses API、函数调用、Guardrails 深度咬合，模型驱动却保留了清晰的权限分层；切换/迁移心智成本低。**缺点**：深度耦合 OpenAI 生态，换模型成本高；调试 handoff 链路时容易"黑盒"。**变现评估**：适合做 OpenAI 原生的 B 端 Copilot 类产品，训练营卖点可放在"Guardrails 安全生产"上。

### 四、Claude Agent SDK：模型驱动派的"工具优先"激进派

Claude Agent SDK 把 Anthropic 在 Claude Code 里跑通的那套"工具密集 + MCP"范式直接产品化。它原生了 **MCP（模型上下文协议）、tool search（运行时动态发现工具）、流式输出与 hooks 钩子**——这意味着你可以声明 `allowed_tools=["Read","Edit","Bash","mcp__github__*"]`，让 Agent 在一个受控的工具沙箱里自主操作文件、Shell 和第三方服务。

```python
import claude_agent_sdk as cas

opts = cas.QueryOptions(
    system_prompt="你是代码助手，只改指定仓库",
    allowed_tools=["Read","Edit","Bash","mcp__github__*"],
    mcp_servers={"github": cas.McpServerConfig(command="...")},
    permission_mode="acceptEdits",
)
result = cas.query("给 utils.py 加类型注解并跑测试", options=opts)
```

**优点**：MCP 生态目前最成熟、工具动态发现能力领先，尤其适合"代码型/操作型"Agent；hooks 让自定义可观测与审批极易接入。**缺点**：对 Claude 模型强绑定，且工具越自由，越需要严格的权限与审计设计。**变现评估**：是做"AI 工程师/DevOps Agent"的首选底座，客单价高，但要配套卖"权限治理"。

### 五、Smolagents：模型驱动派的极简代码型

HuggingFace 出品的 Smolagents 把"极简"做到极致，主打 **code agent**——模型不是输出 JSON 工具调用，而是直接生成可执行代码片段去完成任务，工具以 Python 函数注入。它刻意回避了沉重的编排框架，整个 Agent 往往几十行。

```python
from smolagents import CodeAgent, HfApiModel

agent = CodeAgent(tools=[], model=HfApiModel(), add_base_tools=True)
agent.run("下载某网页并统计正文字数")
```

**优点**：上手门槛最低、最适合原型与教学，code-as-action 表达力强；开源模型友好。**缺点**：执行生成代码的安全边界全靠沙箱，生产化需要重投入；没有持久状态与图，复杂流程难承载。**变现评估**：变现天花板偏低，更适合做"科普教学/低成本 Demo"引流，不适合直接包装成高客单企业产品。

### 六、Google ADK：代码驱动派 + 原生多智能体

Google ADK 与 Strands 恰好站在轴线的两端。它强调**显式的工作流控制与多智能体组合**，配以 Google 的托管运行时，并把 A2A（Agent-to-Agent）协议作为一等公民。当任务需要"明确步骤、明确交接、明确回滚"时，ADK 比 model-driven 的 Strands 更稳；而当你要"快速出活、让模型见招拆招"时，Strands 反而更顺手——这正是 2026 年"模型驱动 vs 结构化多智能体"之争的缩影。

**优点**：多智能体编排与权限治理一体化，Google 托管运行时省运维，与 Vertex 生态咬合。**缺点**：抽象更重、Google 云倾向明显、上手需理解其编排模型。**变现评估**：适合做"企业级多智能体平台"，尤其面向已用 GCP 的客户；训练营卖点放在"合规多智能体治理"。

### 七、CrewAI / Mastra / PydanticAI：中间三栈各靠一边

中间派并非没有立场，而是各自向某一极倾斜。**CrewAI**（52.4k★）以"角色—目标—背景故事"驱动多智能体，本质是模型驱动派的角色化包装，上手快、传播广，适合团队协作类轻量场景，但状态管理与确定性较弱。**Mastra**（22.3k★、2026 年 4 月完成 2200 万美元 A 轮，出自 Gatsby 团队）是 TypeScript 阵营的旗舰，内置 workflows、memory、RAG、evals 与可观测，把"模型驱动 + 受控工作流"做了工程化平衡——是 JS/TS 团队 2026 年最值得押注的一栈，变现潜力被资本市场直接投票为最高档。**PydanticAI** 则以**类型安全与可组合能力（capabilities）**著称，结构化输出由 Pydantic 校验兜底，天然适合"数据提取、结构化抽取"这类对正确性敏感的任务，介于两极之间但明显偏向"可控"一侧。

```typescript
// Mastra：TS 阵营的工程化平衡
import { Mastra } from '@mastra/core';
import { createTool } from '@mastra/core/tools';
import { z } from 'zod';

const weather = createTool({
  id: 'weather',
  inputSchema: z.object({ city: z.string() }),
  execute: async ({ data }) => ({ temp: 25, cond: '晴' }),
});
const mastra = new Mastra({ agents: { helper: new Agent({ name: '助手', tools: [weather] }) } });
```

## 选型红线（按场景，不按热度）

把"模型驱动 vs 代码驱动"翻译成可执行的决策，下面这张表比"哪个框架 Star 最多"有用得多。核心判据只有两个：**路径是否需要确定性**，以及**失败是否可逆**。

```mermaid
flowchart TD
    Start[新 Agent 项目] --> D1{路径需<br/>确定性/可审计?}
    D1 -->|是| CD[选代码驱动派]
    D1 -->|否| D2{失败是否<br/>高代价/不可逆?}
    D2 -->|高代价| CD
    D2 -->|低代价| MD[选模型驱动派]
    CD --> L1{已用云?}
    L1 -->|GCP| ADK[Google ADK]
    L1 -->|其它| LG[LangGraph]
    MD --> L2{主语言?}
    L2 -->|Python·要类型| PYD[PydanticAI]
    L2 -->|Python·极简| STR[AWS Strands / Smolagents]
    L2 -->|TypeScript| MAS[Mastra]
    MD --> L3{要代码型/操作型?}
    L3 -->|是| CAS[Claude Agent SDK]
    L3 -->|OpenAI 原生| OAI[OpenAI Agents SDK]
```

- **客服 / 文档问答 / 开放研究**（路径开放、失败可逆）→ 模型驱动派：AWS Strands 或 Smolagents 五分钟出活，量大了再迁 Claude/OpenAI SDK。
- **财务对账 / 合规审批 / 生产 ETL**（路径需确定性、失败高代价）→ 代码驱动派：LangGraph 是工业默认，已上 GCP 选 Google ADK。
- **代码型 / DevOps / 操作型 Agent**（工具密集、需动态发现）→ Claude Agent SDK，但必须配套权限治理。
- **TypeScript 全栈团队** → Mastra，工程化与变现天花板双高。
- **结构化抽取 / 对正确性敏感** → PydanticAI，类型校验即护栏。
- **快速科普 / 低成本 Demo** → Smolagents，别指望它扛生产。

一句话收口：2026 年选框架的真正问题不是"哪个最好"，而是"**这个任务的确定性，配不配得上我用代码把路径钉死**"。配得上，去代码驱动派；配不上，就让模型去驱动，但把权限、成本与可观测这三道闸门焊死。

## 参考来源

1. [AI Agent Frameworks (2026 Update): 8 SDKs Compared + the Claude Agent SDK Primitive Reference](https://www.morphllm.com/ai-agent-framework) — 8 大 SDK 横评，含 Claude/OpenAI/Google ADK/LangGraph/CrewAI/Smolagents/Pydantic AI/Microsoft 的 2026 精确版本与原始语对比
2. [AWS Strands vs Google ADK in 2026: Which AI Agent Framework Should You Choose?](https://nerova.ai/comparisons/aws-strands-vs-google-adk-2026) — 直接提出"模型驱动速度 vs 结构化多智能体控制"这一两极分轴，并给出选型判据
3. [Introducing Strands Agents 1.0: Production-Ready Multi-Agent Orchestration Made Simple](https://aws.amazon.com/blogs/opensource/introducing-strands-agents-1-0-production-ready-multi-agent-orchestration-made-simple/) — Strands 1.0 官方公告，model-driven loop、Graph/Swarm/Workflow 与 A2A 协议的权威说明
4. [Mastra AI 2026: TypeScript Agent Framework — Features, GitHub Stars & Guide](https://www.xpay.sh/resources/agentic-frameworks/mastra/) — Mastra 22.3k★、2200 万美元 A 轮及 TS 阵营工程化能力的盘点
5. [OpenAI Agents SDK vs Claude Agent SDK: 2026 SDK Showdown](https://turion.ai/blog/openai-vs-claude-agent-sdk-comparison-2026/) — 两大厂商原生 SDK 在 handoff、subagent、MCP、sandbox、tool search 维度的逐项对照（含 v0.17 等版本注记）

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