<!-- title: 原厂即绑死：四款Agent SDK深拆 -->

# 原厂即绑死：四大厂商智能体SDK横评与锁定税实测

## 概述

2025至2026年，AI Agent框架赛道发生了一次范式更迭：曾经由 LangChain、CrewAI、AutoGen、LangGraph 等社区框架主导的版图，被各家模型厂商亲自下场"围猎"。OpenAI 于2025年3月发布 Agents SDK，Google 紧随其后推出 ADK 并在2026年4月迭代到2.0，Anthropic 将 Claude Code SDK 正式更名为 Claude Agent SDK，AWS 则在2025年5月开源了 Strands Agents 并于2026年发布1.0生产就绪版。一时间，"原厂SDK"成了2026年智能体开发的事实起点。本文以"同一个智能体在四栈上各跑一遍"为基准，从核心抽象、Agent Loop、工具协议、锁定程度、上手成本与变现潜力六个维度深拆这四款厂商原生SDK，重点回答一个问题：**原厂即最优，还是原厂即绑死？**

## 四栈总览对比

| 维度 | OpenAI Agents SDK | Google ADK | Claude Agent SDK | AWS Strands Agents |
|------|-------------------|------------|------------------|--------------------|
| 首发/版本 | 2025-03，batteries-included | 2025-04，2026-04 发布 2.0 | 2025（前身为 Claude Code SDK） | 2025-05 开源，2026 发布 1.0 |
| 语言 | Python / TypeScript | Python 优先（adk-python） | Python / TypeScript | Python / TypeScript |
| 模型绑定 | OpenAI 原生（Responses API） | Gemini 优先，可接其他 | Claude 原生 | **模型无关**（核心卖点） |
| 协作抽象 | Handoffs（显式交接） | LlmAgent + 子智能体 + A2A | Subagents（子智能体） | 多智能体编排 + A2A |
| 工具协议 | function_tool / MCP | FunctionTool / MCP | 内置工具 + MCP | @tool / MCP |
| 安全抽象 | Guardrails（闸门） | 内置 eval | Hooks + 权限双轨 | 权限策略 + hooks |
| 可观测 | 原生 Tracing | Vertex AI 集成 | 内置事件流 | OpenTelemetry |
| 锁定程度 | 高（OpenAI 模型） | 高（GCP 栈） | 高（Claude 模型） | 低（Apache-2.0，模型无关） |
| 部署 | 自托管 | Vertex Agent Engine | 自托管 / Bedrock | 自托管 / AWS |

---

## 一、OpenAI Agents SDK：Handoffs + Guardrails + Tracing 三件套

OpenAI Agents SDK 的设计哲学是"开箱即用"（batteries-included）。它把多智能体系统的三个最痛的点直接做成了一等公民：**Handoffs** 解决智能体之间的显式交接，**Guardrails** 解决输入输出的安全闸门，**Tracing** 解决可观测性。这三件套让一个中等复杂度的客服分流系统，从原型到可观测只需几十行代码。

```python
from agents import Agent, Runner, function_tool, InputGuardrail, GuardrailFunctionOutput

@function_tool
def get_weather(city: str) -> str:
    return f"{city}: 晴 25°C"

async def ban_keywords(ctx, agent, input):
    blocked = "竞品" in str(input)
    return GuardrailFunctionOutput(
        output_info={"blocked": blocked}, tripwire_triggered=blocked)

billing = Agent(name="计费助手", instructions="处理账单问题")
agent = Agent(
    name="分流助手",
    instructions="你是客服总入口",
    tools=[get_weather],
    handoffs=[billing],                          # 显式交接
    input_guardrails=[InputGuardrail(guardrail_function=ban_keywords)],
)
result = Runner.run_sync(agent, "帮我查账单")
```

**优点**：Handoffs 让多智能体的控制流对开发者可见、可调试，不像 LangGraph 的图那么隐式；Guardrails 既可并行跑也可阻塞执行；Tracing 在 OpenAI Dashboard 里开箱可视化。**缺点**：协议层对 OpenAI 的 Responses API 有依赖倾向，非 OpenAI 模型需要适配；Guardrails 是独立于工具权限的第二套闸门，和"批准非授权"那套语义并存时容易产生职责重叠。**变现评估**：最适合做"电商客服分流训练营"——业务场景清晰、Demo可复用、Tracing 截图天然是营销素材。

## 二、Google ADK：四件套栈与 Python-first 的工程美学

Google 把 Agent 看作一个完整的栈而非单点框架。这套栈由四块拼图组成：**ADK 负责构建智能体、MCP 负责工具与上下文、A2A 负责智能体间通信、Vertex Agent Engine 负责托管运行**。ADK 是 code-first 的 Python 工具包（`google/adk-python`），同时提供浏览器可视化编排器，兼顾硬核工程师与低代码用户。

```python
from google.adk.agents import LlmAgent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.adk.tools import FunctionTool

def get_weather(city: str) -> dict:
    return {"city": city, "weather": "晴"}

agent = LlmAgent(
    name="weather_agent",
    model="gemini-2.5-flash",
    instruction="你是天气助手",
    tools=[FunctionTool(get_weather)],
)
session_service = InMemorySessionService()      # 会话与状态原生管理
runner = Runner(agent=agent, app_name="app", session_service=session_service)
```

**优点**：会话（Session）与状态（State）是一等公民，长对话、跨智能体状态传递无需自己造轮子；A2A 协议让跨进程、跨厂商的智能体协作成为可能；`adk eval` 提供了内置评测，与"做对一次不算会"的评测诉求天然契合。**缺点**：四件套虽互补却也强耦合 GCP 生态，A2A + Vertex Agent Engine 的完整体验离不开 Google Cloud；Gemini 优先意味着换模型的边际成本被低估。**变现评估**：适合"GCP + 智能体"复合训练营，客单价高但获客窄；企业版可走 Vertex 私有部署话术。

## 三、Claude Agent SDK：Hooks 与 Permission 的双轨制

Claude Agent SDK（前身为 Claude Code SDK）的独特性在于它**自带一个真实的执行环境**——内置了文件系统读写、Bash 执行、计算机操控等"重工具"，这让它的定位更接近"可编程的 Claude Code"而非通用框架。它的两大控制抽象是 **Hooks** 和 **Permission**，二者各管一摊。

```python
from claude_agent_sdk import query, ClaudeAgentOptions

def pre_tool_use_hook(tool_name, tool_input):
    if tool_name == "Bash" and "rm -rf" in tool_input.get("command", ""):
        return {"decision": "block", "reason": "禁止递归删除"}
    return {"decision": "approve"}      # Hook 不询问模型，直接裁决

options = ClaudeAgentOptions(
    system_prompt="你是代码助手",
    allowed_tools=["Read", "Write", "Bash"],
    permission_mode="default",
    hooks={"PreToolUse": pre_tool_use_hook},
)
async for message in query(prompt="读 README 并总结", options=options):
    ...
```

这里有一个关键认知差：**Permission 系统会让模型/用户授权，而 Hooks 不会询问任何人——它是确定性的回调**。这意味着真正的"硬闸门"必须用 Hooks 实现，而 Permission 只是软约束。**优点**：Subagents 原生支持任务委派；Hooks 让 PreToolUse/PostToolUse 的拦截能力极强，适合做需要确定性安全边界的代码智能体；Computer Use 能力在四栈中独一份。**缺点**：内置重工具意味着更高的风险面（"Bash Bypass"类问题是社区反复讨论的坑）；绑定 Claude 模型，换栈成本不低。**变现评估**：最适合"DevOps / 代码智能体"方向，Hooks 的确定性是卖给企业的核心卖点。

## 四、AWS Strands Agents：Model-Driven Loop 与模型无关的逆袭

在四款厂商原生SDK中，Strands 是最反直觉的一个：它由 AWS 出品，却把"**模型无关**"作为第一卖点，采用 Apache-2.0 协议开源。Strands 的核心是 **model-driven loop**——不是开发者写编排逻辑，而是把工具列表交给模型，由模型在每一轮自己决定调用哪个工具、何时停止。

```python
from strands import Agent, tool

@tool
def get_weather(city: str) -> str:
    return f"{city}: 晴 25°C"

# 默认走 AWS Bedrock，也可换任意 provider
agent = Agent(tools=[get_weather], system_prompt="你是天气助手")
result = agent("北京天气如何")        # 模型驱动整个循环

# 模型无关示例：换成本地 Ollama
from strands.models import OllamaModel
local_agent = Agent(model=OllamaModel(model="llama3"), tools=[get_weather])
```

**优点**：代码量极低（`@tool` 装饰器 + 一行调用），心智负担最小；`strands-agents/tools` 仓库提供社区工具集；1.0 版本补齐了多智能体编排与 A2A 支持，并内置 OpenTelemetry 可观测。**缺点**：把控制权交给模型意味着"停止键即谎言"的风险更依赖模型的判断力；工具过载时（"三十即断崖"）退化更隐蔽；AWS 原生集成虽好，但脱离 AWS 后的部分能力需要自行补齐。**变现评估**：最适合"模型无关 / 本地化部署"训练营，能讲"不被任何厂商锁定"的故事，在中立技术受众中接受度最高。

## 五、同一智能体跨四栈：抽象层深度的真实差异

最有说服力的横评不是读文档，而是"用同一个智能体在四栈上各跑一遍"。社区已有开发者（如 turion.ai）做过这项实验，结论高度一致：**四款SDK的差异不在能不能跑通，而在抽象层把多少控制权暴露给开发者**。

```mermaid
graph TD
    A[同一智能体需求] --> B[OpenAI Agents SDK]
    A --> C[Google ADK]
    A --> D[Claude Agent SDK]
    A --> E[AWS Strands]
    B --> B1["显式 Handoffs<br/>开发者掌控控制流"]
    C --> C1["Session/State 内建<br/>开发者掌控状态"]
    D --> D1["Hooks 拦截<br/>开发者掌控安全边界"]
    E --> E1["Model-Driven Loop<br/>模型掌控控制流"]
    B1 --> F{控制权归属}
    C1 --> F
    D1 --> F
    E1 --> F
    F -->|开发者可见| G["可调试性强<br/>但代码量高"]
    F -->|模型自治| H["代码量低<br/>但行为不可预测性高"]
    style B1 fill:#e8f4f8
    style C1 fill:#e8f4f8
    style D1 fill:#e8f4f8
    style E1 fill:#fde8e8
```

OpenAI 的 Handoffs 和 ADK 的 Session 把"控制流"和"状态"显式化，调试友好但样板代码多；Claude 的 Hooks 把"安全边界"确定性化；Strands 则把"决策"完全交给模型，代码最短但最不可预测。**这个差异直接决定了选型：你信任的是自己写的控制流，还是模型的判断力？** 在强合规、高风险场景，前者的可控性溢价远超后者的简洁性。

## 六、锁定税：模型无关性 vs 原厂绑定的真实成本

"原厂即绑死"这句话需要拆开看。锁定其实分两层：**模型锁定**和**栈锁定**。OpenAI 与 Claude SDK 的锁定主要在模型层（Responses API / Anthropic 模型特性）；ADK 的锁定更隐蔽——它绑定的是整个 GCP 工程栈（Vertex、Agent Engine、A2A 网关）；Strands 是唯一在两层都保持中立的：Apache-2.0 协议 + 模型无关，理论上能同时跑 Bedrock、OpenAI、Ollama、本地模型。

```mermaid
flowchart LR
    subgraph 锁定程度
    direction TB
    O["OpenAI Agents SDK<br/>模型锁定: 高<br/>栈锁定: 中"]
    C["Claude Agent SDK<br/>模型锁定: 高<br/>栈锁定: 低"]
    G["Google ADK<br/>模型锁定: 中<br/>栈锁定: 高(GCP)"]
    S["AWS Strands<br/>模型锁定: 低<br/>栈锁定: 低"]
    end
    O -.绑定.-> OAI[OpenAI Responses API]
    C -.绑定.-> ANT[Claude 模型]
    G -.绑定.-> GCP[GCP + Vertex + A2A]
    S -.可选.-> ANY[任意 Provider]
    style S fill:#d4edda
    style G fill:#fff3cd
    style O fill:#fde8e8
    style C fill:#fde8e8
```

但这不等于"Strands 必胜"。**原厂绑定的"税"背后，是原厂集成的"红利"**：OpenAI SDK 的 Tracing、ADK 的 Vertex 托管、Claude SDK 的 Computer Use、Strands 的 Bedrock 计费——这些都是社区框架要自己拼的能力。真正的决策不是"要不要锁定"，而是"**锁定换来的红利，是否覆盖未来迁移的税**"。如果业务深度依赖某厂商的独家能力（如 Claude 的长上下文代码理解、Gemini 的多模态），锁定就是值得的投资；如果核心价值在业务逻辑而非模型特性，Strands 的中立性就是长期保险。

## 七、上手成本与变现潜力评估

从"安装到第一个能跑的智能体"的时间成本看，四栈呈现明显的梯度：**Strands < OpenAI < Claude < ADK**。Strands 的 `@tool + Agent(prompt)` 两行即可跑通；OpenAI 的 Handoffs 三件套需要理解三个概念；Claude SDK 要先理清 Hooks/Permission 双轨；ADK 因为引入 Session/Runner/Agent Engine 三层，学习曲线最陡。

变现潜力则呈现相反趋势：**ADK > Claude > OpenAI > Strands**。ADK 客单价最高（GCP 企业市场），Claude SDK 的 DevOps 方向溢价好（Hooks 确定性卖点），OpenAI SDK 受众最广（流量红利），Strands 因"中立"反而难讲差异化高客单故事——它更适合作为"信任基建"而非"高溢价产品"。

| 训练营方向 | 推荐 SDK | 客单价 | 受众广度 | 差异化卖点 |
|-----------|---------|--------|---------|-----------|
| 电商客服分流 | OpenAI Agents SDK | 中 | 高 | Handoffs + Tracing 可视化 |
| GCP 企业智能体 | Google ADK | 高 | 中 | 四件套栈 + Vertex 托管 |
| DevOps / 代码智能体 | Claude Agent SDK | 高 | 中 | Hooks 确定性 + Computer Use |
| 模型无关 / 本地部署 | AWS Strands | 中 | 中高 | 不被锁定 + 本地化 |

## 八、选型决策树：场景化推荐

不要问"哪个最好"，要问"**你的信任锚点在哪**"。如果你的业务逻辑复杂、控制流需要可调试，选 OpenAI（Handoffs 可见）或 ADK（Session 可控）；如果你的安全边界是硬约束，选 Claude（Hooks 确定性）；如果你最怕被锁定、要支持多模型或本地部署，选 Strands；如果你只想最快验证想法，Strands 同样是最低门槛起点。

一个务实的组合策略是**"外层 Strands + 内层原厂"**：用 Strands 的 model-driven loop 做快速原型和模型对比，验证通过后，对性能/成本敏感的核心智能体下沉到对应原厂 SDK 享受集成红利。这样既保住了"不被绑死"的保险，又拿到了"原厂即最优"的红利——锁定税与红利之间，本就不是非此即彼的单选题。

---

## 参考来源

1. [Claude Agents SDK vs. OpenAI Agents SDK vs. Google ADK（composio.dev）](https://composio.dev/content/claude-agents-sdk-vs-openai-agents-sdk-vs-google-adk) — 三大厂商 SDK 的实战对比，覆盖核心抽象与上手成本
2. [Google ADK vs OpenAI vs Claude Agent SDK: The 2026 Three-Way Comparison（turion.ai）](https://turion.ai/blog/google-adk-vs-openai-claude-agent-sdk-2026/) — 用同一个智能体在三栈上各跑一遍的横评实验
3. [Claude Agent SDK vs OpenAI vs Strands vs Google ADK Compared（nomadlab.cc）](https://nomadlab.cc/blog/2026/04/claude-agent-sdk-vs-openai-agents-sdk-vs-strands-vs-google-adk) — 四款厂商 SDK 的架构、锁定程度、内置工具对比
4. [Introducing Strands Agents, an Open Source AI Agents SDK（aws.amazon.com）](https://aws.amazon.com/blogs/opensource/introducing-strands-agents-an-open-source-ai-agents-sdk/) — AWS 官方对 Strands 模型无关、model-driven loop 的发布说明
5. [Google's Agent Stack in Action: ADK, A2A, MCP（codelabs.developers.google.com）](https://codelabs.developers.google.com/instavibe-adk-multi-agents/) — Google 四件套栈（ADK+MCP+A2A+Vertex）的官方实操教程
6. [Intercept and control agent behavior with hooks（code.claude.com）](https://code.claude.com/docs/en/agent-sdk/hooks) — Claude Agent SDK Hooks 与 Permission 双轨制的官方文档

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