如果只能用一句话概括 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 |
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 | — | 类型安全 + 可组合能力 | ★★★★ | ★★★ |
Strands 是 AWS 在 2025 年 5 月开源的 Apache-2.0 SDK,2026 年已突破 1400 万次 PyPI 下载、Star 从 5400 持续攀升,并在 1.0 版本正式定调"model-driven"。它的哲学极其纯粹:开发者只给工具和 system prompt,循环怎么走交给模型。一个能查天气、算数、报时的 Agent,真的只要下面这几行:
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,适合封装成客服、文档问答这类容错度高的轻量产品。
如果 Strands 是"让模型自由发挥",LangGraph 则是"把模型关进笼子里按既定路线干活"。它是目前生态最大、生产验证最充分的框架,核心是有状态图 + checkpoint:每个节点是一个函数,边是条件跳转,状态在节点间显式流转并可随时回放、断点、人工介入。下面是一个带文档相关性判断、可分支重写的 RAG 图骨架:
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(Swarm 的继任者,2026 年已迭代到 v0.17)走的是"模型驱动为体、handoff 为用"的路线。它把多智能体协作简化为 Agent 之间的交接(handoff):一个分诊 Agent 把任务"递"给账单 Agent 或技术 Agent,每个子 Agent 自带工具和权限边界。v0.17 还新增了 sandboxes 沙箱与 subagents 子代理,实质上是把 LangGraph 式的图,以更轻的 handoff 语法实现出来。
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 把 Anthropic 在 Claude Code 里跑通的那套"工具密集 + MCP"范式直接产品化。它原生了 MCP(模型上下文协议)、tool search(运行时动态发现工具)、流式输出与 hooks 钩子——这意味着你可以声明 allowed_tools=["Read","Edit","Bash","mcp__github__*"],让 Agent 在一个受控的工具沙箱里自主操作文件、Shell 和第三方服务。
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"的首选底座,客单价高,但要配套卖"权限治理"。
HuggingFace 出品的 Smolagents 把"极简"做到极致,主打 code agent——模型不是输出 JSON 工具调用,而是直接生成可执行代码片段去完成任务,工具以 Python 函数注入。它刻意回避了沉重的编排框架,整个 Agent 往往几十行。
from smolagents import CodeAgent, HfApiModel
agent = CodeAgent(tools=[], model=HfApiModel(), add_base_tools=True)
agent.run("下载某网页并统计正文字数")
优点:上手门槛最低、最适合原型与教学,code-as-action 表达力强;开源模型友好。缺点:执行生成代码的安全边界全靠沙箱,生产化需要重投入;没有持久状态与图,复杂流程难承载。变现评估:变现天花板偏低,更适合做"科普教学/低成本 Demo"引流,不适合直接包装成高客单企业产品。
Google ADK 与 Strands 恰好站在轴线的两端。它强调显式的工作流控制与多智能体组合,配以 Google 的托管运行时,并把 A2A(Agent-to-Agent)协议作为一等公民。当任务需要"明确步骤、明确交接、明确回滚"时,ADK 比 model-driven 的 Strands 更稳;而当你要"快速出活、让模型见招拆招"时,Strands 反而更顺手——这正是 2026 年"模型驱动 vs 结构化多智能体"之争的缩影。
优点:多智能体编排与权限治理一体化,Google 托管运行时省运维,与 Vertex 生态咬合。缺点:抽象更重、Google 云倾向明显、上手需理解其编排模型。变现评估:适合做"企业级多智能体平台",尤其面向已用 GCP 的客户;训练营卖点放在"合规多智能体治理"。
中间派并非没有立场,而是各自向某一极倾斜。CrewAI(52.4k★)以"角色—目标—背景故事"驱动多智能体,本质是模型驱动派的角色化包装,上手快、传播广,适合团队协作类轻量场景,但状态管理与确定性较弱。Mastra(22.3k★、2026 年 4 月完成 2200 万美元 A 轮,出自 Gatsby 团队)是 TypeScript 阵营的旗舰,内置 workflows、memory、RAG、evals 与可观测,把"模型驱动 + 受控工作流"做了工程化平衡——是 JS/TS 团队 2026 年最值得押注的一栈,变现潜力被资本市场直接投票为最高档。PydanticAI 则以类型安全与可组合能力(capabilities)著称,结构化输出由 Pydantic 校验兜底,天然适合"数据提取、结构化抽取"这类对正确性敏感的任务,介于两极之间但明显偏向"可控"一侧。
// 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 最多"有用得多。核心判据只有两个:路径是否需要确定性,以及失败是否可逆。
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]
一句话收口: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 等场景全覆盖。
