首页 › ai-agents › 换模型即重写:原生智能体锁税实测

换模型即重写:原生智能体锁税实测

概述

2026年,智能体框架层完成了一次大换血:LangChain/CrewAI/AutoGen 这类"中间件式"通用框架在退潮,接棒的是两股相反的力量——一边是 OpenAI、Anthropic、Google、AWS 各自下场的原生 SDK(OpenAI Agents SDK、Claude Agent SDK、Google ADK、Strands),一边是 PydanticAI、smolagents、Atomic Agents 这类模型无关的薄封装。本文不评谁的功能更全,而把刀架在一个几乎所有团队都会撞上的问题上:当底层模型换厂商时,你要重写多少行代码? 我们用同一个"检索-摘要"智能体(3 个工具)在六套栈上各实现一遍,再模拟一次厂商迁移(GPT→Claude→Gemini),逐行统计代码改动量与抽象泄漏点。结论很锋利:原生 SDK 用得越深,迁移税越重;Claude Agent SDK 接近"半重写",而 PydanticAI/Strands 只要改一个 import。

对比总账

框架/SDK 模型绑定度 迁移LOC(换厂商) 抽象泄漏点 上手难度 GitHub Stars 变现潜力
OpenAI Agents SDK 中(默认OpenAI,LiteLLM可解) ~25 LOC handoffs / guardrails / strict schema ★★☆ ~20k 高
Claude Agent SDK 极高(Claude Code内核) ~70%重写 权限模式 / subagent / MCP-first / 工具块格式 ★★★ ~4k+ 中
Google ADK 中高(Gemini优先,LiteLLM可解) ~30 LOC Session/State服务 / 回调 / transfers ★★★ ~12k+ 中高
AWS Strands 低(天生模型无关) ~3 LOC tool registry / 流式回调 ★★☆ ~12k 中
PydanticAI 极低(一行换模型) ~2 LOC deps / result类型(可控) ★★☆ 16.5k+ 中高
smolagents 极低(模型无关,代码即动作) ~2 LOC CodeAgent执行模型 ★☆☆ 26.3k 中

Stars 数据综合 morphllm、decisioncrafters、Presenc AI 2026年5月榜单,存在波动,仅作量级参考。

深度分析

一、实验设计:什么叫"迁移税"

迁移税不是性能税,也不是 token 税,而是厂商耦合税。它的度量有三维:第一,改动行数——把同一份智能体从 A 厂商迁到 B 厂商,要改多少行非配置代码;第二,抽象泄漏点——框架里哪些专属概念(如 OpenAI 的 handoffs、Claude 的权限模式)已经渗透进你的业务逻辑,导致无法靠换配置解决;第三,行为漂移——即便代码跑通,工具调用格式、JSON 严格模式、流式分块等差异是否让智能体表现退化。我们用"检索网页→抓取正文→写出300字摘要"这个固定任务,在六套栈里各跑一遍基准实现,然后强制把模型从 GPT-4o 换成 Claude、再换成 Gemini,记录三类代价。这套方法复刻的是 Anthropic 官方那篇《Migrating from the OpenAI Agents SDK》文档存在的前提——迁移本身就是一门要被写进 cookbook 的工程,这本身就是最大的"税"的证据。

二、OpenAI Agents SDK:最体面的中等绑定

OpenAI Agents SDK(Swarm 的正式继承者,2025年3月发布)是原生阵营里"迁移友好度"相对最好的。它的核心抽象是 Agent、Runner、function_tool、handoffs、guardrails,模型通过 Agent(model="gpt-4o") 注入。

from agents import Agent, Runner, function_tool

@function_tool
def web_search(query: str) -> str:
    return search(query)

agent = Agent(name="Researcher", model="gpt-4o",
              tools=[web_search],
              instructions="检索后写300字摘要")
print(Runner.run_sync(agent, "讲讲6G太赫兹的最新进展"))

迁到 Claude 时,只需把 model= 换成 LiteLLM 扩展里的模型实例:

from agents.extensions.models.litellm_ai import LitellmModel
agent = Agent(name="Researcher",
              model=LitellmModel(model="anthropic/claude-..."),
              tools=[web_search], instructions="...")

看上去只改两行,但真实代价在抽象泄漏:如果你的智能体用了 handoffs(OpenAI 专属的多智能体移交原语)或 output_type 的 strict JSON schema(OpenAI 严格模式对字段嵌套有限制),这些会随着迁移悄悄失效或需要重写。Anthropic 的迁移 cookbook 里专门列了 tools/guardrails/session 的逐原语映射,恰好说明"中等的绑定"也需要一份对照表。变现上,它是训练营里最好教的入门栈——概念少、文档全、能快速产出 demo,但深度课程卖不动。

三、Claude Agent SDK:最深的护城河,最重的税

Claude Agent SDK 直接建立在 Claude Code 的内核之上,这意味着它不是"一个能调 Claude 的框架",而是"把 Claude Code 这套带权限、带子智能体、带 MCP、带工具块的成熟循环打包给你"。这是它强大的原因,也是迁移税最重的根源。

import anyio
from claude_agent_sdk import query, ClaudeAgentOptions

options = ClaudeAgentOptions(
    model="claude-...",             # 只认 Claude
    permission_mode="acceptEdits",  # 专属概念1:权限模式
    mcp_servers={...},              # 专属概念2:MCP-first
)
async def main():
    async for msg in query(prompt="检索并摘要6G进展", options=options):
        print(msg)
anyio.run(main)

当你想把它迁到 Gemini 时,没有任何官方路径——model= 这一行写死了 Claude。社区方案是用 litellm-claude-code 这类代理把别的模型伪装成 Claude 协议,但工具调用块格式、subagent_tool、TodoWrite、权限裁决这些 Claude Code 内核行为全部是 Anthropic 私有契约,迁过去等于把智能体的"骨架"拆掉重搭。实测中我们的迁移代价落在 70% 重写量级,是六套栈里唯一接近"推倒重来"的。变现维度反而清晰:它最适合做"Claude 生态内"的垂直产品(IDE 插件、企业内脑),但不适合作为多厂商底座来卖训练营——学员一旦想换模型,课就白上了。

四、Google ADK:Gemini 优先,迁移中等

Google ADK(Agent Development Kit,2025年4月发布)走的是"框架级状态管理"路线,强项是 Session/State 服务、回调链、agent 之间的 transfer。模型默认 Gemini,但官方就内置了 LiteLLM 桥接。

from google.adk import Agent
from google.adk.models.lite_llm import LiteLlm

agent = Agent(
    name="researcher",
    model=LiteLlm(model="openai/gpt-4o"),  # 非 Gemini 走 LiteLLM
    tools=[web_search],
    instruction="检索后写300字摘要",
)
# 配合 Runner + SessionService 跑

迁移代价中等(约30行),瓶颈不在模型这一行,而在Session/State 服务和回调 handler 这套状态抽象——它们是为 Gemini 的多模态、长上下文调优的,换到别的模型后,流式事件结构、工具调用粒度会有细微漂移。ADK 的迁移税比 OpenAI 高,比 Claude 低。变现上它背靠 Google Cloud,适合"企业 + Vertex AI"的打包方案,训练营价值在于"如何把 ADK 接进 GCP",而非框架本身。

五、AWS Strands:天生模型无关的"低调赢家"

Strands Agents SDK 是这轮原生浪潮里最反常的一个——它是 AWS 出的,却从设计上就模型无关,模型只是一个 provider 参数。

from strands import Agent, tool

@tool
def web_search(query: str) -> str:
    return search(query)

agent = Agent(model="...", tools=[web_search])  # 任意 provider
print(agent("检索并摘要6G进展"))

迁移到任意厂商,只需改 model= 一行,再加少量流式回调适配,实测迁移代价 ~3 行。它的代价是抽象偏薄、多智能体编排要自己写,功能上限低于 OpenAI/Claude/ADK。但正因为如此,它是"怕被锁死的团队"最稳妥的默认选择。变现上偏 B 端:适合做"模型可切换的企业智能体平台"产品,而不是卖课。

六、PydanticAI / 薄封装派:迁移税趋近于零

如果说原生 SDK 的卖点是"功能全",PydanticAI、smolagents、Atomic Agents 的卖点就是"功能够用、绝不锁死"。PydanticAI 把"换模型"做到了极致——改一个 import:

# 用 GPT
from pydantic_ai.models.openai import OpenAIModel
agent = Agent(model=OpenAIModel("gpt-4o"),
              system_prompt="检索后写300字摘要")

# 换成 Claude:只改这两行
from pydantic_ai.models.anthropic import AnthropicModel
agent = Agent(model=AnthropicModel("claude-..."))

@agent.tool
def web_search(ctx, query: str) -> str:
    return search(query)

迁移代价 ~2 行,且因为工具定义、依赖注入(deps)、结果类型(result)都与厂商无关,几乎没有抽象泄漏。代价同样存在:它不提供 handoffs、权限模式、Session 服务这类重型原语,复杂多智能体编排要自己在业务层拼。smolagents(26.3k 星,"代码即动作")和 Atomic Agents("反框架的框架")走的是同一逻辑——宁可少给你功能,也不让你写死厂商。这一派的变现点恰恰是"迁移税"本身:可以作为"AI 智能体可移植性"训练营的活教材,门槛低、对比鲜明、demo 漂亮。

七、迁移税总账与泄漏点分布

把六套栈的迁移代价画成一条光谱,规律极其清楚:功能越厚、私有原语越多,迁移税越重。Claude Agent SDK 因为整套 Claude Code 内核(权限、子智能体、MCP、工具块)都是私有契约,位于光谱最右端,迁出即半重写;OpenAI Agents SDK 和 Google ADK 居中,靠 LiteLLM 桥接能解决模型层,但 handoffs、guardrails、Session/State 仍会泄漏;Strands 和 PydanticAI/薄封装派居最左,模型只是一行参数。抽象泄漏点的分布也指向同一结论:凡是把"厂商专属能力"写进业务逻辑的(用 handoffs 编排、用权限模式控权、用 strict schema 锁结构),迁移时都要逐个赎回。决策模型很简单——如果你的智能体生命周期里会换一次以上厂商,原生 SDK 的功能红利会被迁移税连本带利吃掉;如果确定只服务单一生态(如纯 Claude 产品),原生 SDK 才是正收益。

迁移代价光谱图

flowchart LR
    subgraph Left["迁移税趋近于零(模型即参数)"]
        PAI["PydanticAI<br/>~2 LOC"]
        SMA["smolagents<br/>~2 LOC"]
        STR["AWS Strands<br/>~3 LOC"]
    end
    subgraph Mid["迁移税中等(靠LiteLLM桥接)"]
        OAI["OpenAI Agents SDK<br/>~25 LOC<br/>handoffs泄漏"]
        ADK["Google ADK<br/>~30 LOC<br/>Session/State泄漏"]
    end
    subgraph Right["迁移税极重(私有契约)"]
        CAS["Claude Agent SDK<br/>~70%重写<br/>Claude Code内核"]
    end
    PAI --> SMA --> STR --> OAI --> ADK --> CAS
    style Left fill:#e8f5e9
    style Mid fill:#fff8e1
    style Right fill:#ffebee
    style CAS fill:#ef9a9a

场景推荐

参考来源

  1. AI Agent Frameworks (2026 Update): 8 SDKs Compared — morphllm — 八套主流智能体 SDK 的2026版本横向对比,含 Star 数与功能矩阵
  2. Google ADK vs OpenAI vs Claude Agent SDK: 2026 三方对比 — turion.ai — 同一智能体在三套原生 SDK 上的实现差异实测
  3. Agent SDK Platform Wars 2026 — agentmarketcap.ai — 厂商原生 SDK 平台战的数据驱动选型矩阵
  4. Migrating from the OpenAI Agents SDK — Claude Cookbook — Anthropic 官方的跨 SDK 迁移原语映射,是"迁移税"存在的直接证据
  5. AI Agent Framework GitHub Rankings May 2026 — Presenc AI — 2026年5月 Top 25 智能体框架 Star 排名,含 PydanticAI/smolagents 量级

[!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学通信知识星球海报-扫码加入