结论先说:2026 年谈 Claude,别再把 Claude API、Tool Use、MCP、Structured Output、AI Agent 当成五个并列「新功能」去背。它们是同一条链路的五层:API 是入口,Tool Use 是动手,MCP 是接外部系统的标准插头,Structured Output 是给下游程序吃的合同,Agent 才是把循环、状态和宿主机绑在一起的产品形态。多数团队翻车,不是模型不够新,而是五层一起开、职责缠在一起。
本文面向已经在 Messages API 上跑过一轮、准备把「聊天」升级成「能调工具、能进业务系统」的开发者。关键词会反复出现:Claude API、Tool Use、MCP、Structured Output、AI Agent。如果你同时在评估别家大模型接口怎么迁,可以对照 GPT-6 API:预期定价、功能特性与迁移指南(2026)——选型逻辑类似:先锁工作负载,再锁协议能力,最后才比单价。
核对日期:2026 年 8 月 18 日。参数与 beta 头以 Anthropic 当前文档为准:Structured outputs、MCP connector、Programmatic tool calling。模型别名会变,文中示例用 claude-opus-5 / claude-sonnet-5 作为当下文档里的主推 ID。
先画地图:五件事其实是三层决策
把产品经理的「我们要上 Agent」拆开,你真正要做的决策只有三个:
- 这一轮要不要循环?用户问一句、模型答一句,用 Messages API 就够。要连续查库、改文件、等工具结果再想下一步,才进入 AI Agent。
- 工具从哪来?自己写 JSON Schema 的自定义工具,走经典 Tool Use;要接 GitHub / Jira / 内部 HTTP 服务,优先远程 MCP;要动本机 shell、Xcode、Docker,MCP 远程连接器帮不上,必须在你的机器上跑客户端。
- 下游要不要硬合同?只要给人看的散文,别开 Structured Output。要进数据库、要驱动下一跳 API,就用
output_config.format或工具上的strict: true。
很多人一上来把 MCP、结构化输出、多 Agent 编排全开。结果是:token 账单上去了,排障却说不清是 schema 太严、MCP 超时,还是模型在工具循环里迷路。2026 年 Claude 的「新」不在于又多了几个营销词,而在于这三层终于能在同一条 Messages 请求里组合——组合能力越强,你越需要克制。
一条经验:先用最小 Tool Use 跑通业务路径,再决定 MCP 是否值得引入;Structured Output 放在「已经能调对工具」之后。顺序反了,你会用 JSON schema 掩盖工具设计问题。
Claude API:2026 你真正要盯的变化
Claude API 本身没有变成另一种产品。入口仍是 Messages:你提交 messages、拿到 content blocks。变的是请求体里能挂的东西——工具列表、MCP 服务器、输出格式、代码执行容器——以及模型线从 4.x 走到 5 代(文档里同时还能看到 Opus 4.8、Sonnet 4.6 等过渡 ID)。对工程的含义是:别把「换模型 ID」当成升级完成。真正要回归的是:上下文窗口怎么计费、工具结果是否回灌进窗口、beta 头有没有过期。
实务上我建议团队固定三件事:
- 锁定 anthropic-version,生产与文档示例一致(目前仍常见
2023-06-01),避免 SDK 悄悄换语义。 - 把 beta 头当依赖清单:MCP 连接器要
mcp-client-2025-11-20;Managed Agents 会话是另一套(如managed-agents-2026-04-01)。Structured Output 已转正,旧的output_format+structured-outputs-2025-11-13只是过渡,新代码用output_config.format,不要再抄半年前的 gist。 - 分环境选模型:探索与长程 Agent 用 Opus 5 档;高 QPS、工具循环短的用 Sonnet 5;Haiku 留给分类、路由、抽取。别用最贵模型扛「每分钟几百次的参数抽取」——那是 Structured Output + 小模型的活。
还有一个容易忽略的平台差:MCP 连接器和一部分编程式 Tool Use,在 Bedrock / Vertex 上可能不可用或要求「Hosted on Anthropic」部署。如果你的合规要求必须走云厂商托管,先查兼容表,再承诺「我们用 MCP 直连内部系统」。承诺错了,整条 Agent 架构要推倒。
Tool Use:经典循环 vs 编程式调用
经典 Tool Use 你一定写过:模型吐 tool_use → 你在服务端执行 → 用 tool_result 回灌 → 模型继续。2026 年这条路径仍然是默认、也最稳。适合工具数量少、每次调用都要进你的审计日志、权限模型很严的场景。
新的分叉是 Programmatic tool calling:给请求带上代码执行工具(文档里的版本形如 code_execution_20260120),并在自定义工具上写 allowed_callers。模型先写一段代码,在沙箱里循环、过滤、并行 await;真正打到你业务 API 的那一次,才会以带 caller 字段的 tool_use 暂停,等你回 tool_result 并带上 container ID。好处很具体:中间过滤结果不必全部塞进模型上下文,查「上季度销售额前五客户」这类「先拉一大表再算」的任务,账单和延迟都会好看一截。
取舍也很硬:
strict: true的工具不能走编程式调用。- 不能靠
tool_choice强迫某工具必须从代码里调。 - Web search、Web fetch、MCP connector 提供的工具,目前不能从代码沙箱里调。
- 你必须学会读「暂停的 code execution + 待执行的 client tool」这种响应形状,漏传
container会整段沙箱作废。
所以不要把编程式调用当「更高级的 Tool Use 默认项」。我的划分是:工具结果很小、每次都要给人看中间步骤 → 经典循环;工具结果很大、只要聚合结论 → 编程式。 权限敏感(转账、删库、发生产变更)永远留在经典循环,并且人工或策略网关在 tool_result 之前拦一道。
{
"name": "query_orders",
"description": "Returns JSON: {orders:[{id, revenue, customer_id}]}",
"input_schema": { "type": "object", "properties": { "quarter": {"type": "string"} } },
"allowed_callers": ["code_execution_20260120"]
}
描述里把返回 JSON 形状写清楚,模型才敢在代码里 json.loads。描述含糊时,编程式调用的「省上下文」优势会变成「沙箱里解析失败、再重试」的新成本。
MCP:远程连接器能做什么,不能做什么
MCP(Model Context Protocol)解决的是「每个 Agent 框架都自己发明一遍工具协议」。2026 年 Claude API 侧的重点不是让你在本机再装一个 STDIO 客户端,而是 MCP connector:在 Messages 请求里带 mcp_servers,再用 tools 里的 mcp_toolset 声明启用哪些工具。旧版 beta mcp-client-2025-04-04 已弃用,工具配置从「写在 server 定义里」挪到了 toolset——抄 2025 年 4 月的示例会直接 400。
它擅长的事很明确:服务器必须是公网可达的 HTTP(Streamable HTTP 或 SSE)。OAuth Bearer 可以放在 authorization_token。一次请求可以挂多个 server。你可以全开、allowlist、denylist,或给单个工具加配置。Claude 会在用户意图匹配工具描述时调用;拿 Notion MCP 问「Notion 数据库原理」通常不会调工具,问「我的 Projects 库里有什么」才会。
它明确做不到的,也必须写进架构评审纪要:
- MCP 规范里的资源、根、采样等,连接器目前只兑现工具调用。
- 本地 STDIO MCP 不能直连。你的
npx …文件系统服务器、跑在开发机上的 Xcode 辅助、内网未暴露的数据库 MCP,Messages API 看不见它们。 - 不在 Claude API / Anthropic 托管路径上的云厂商部署,可能整段不可用。
- ZDR(零数据保留)策略与 MCP connector 不兼容——合规团队要先签字。
于是出现 2026 年最常见的架构分裂:SaaS 工具走远程 MCP,本机/内网工具走你自己的 Agent 运行时(Claude Code、自建循环、或在 Cloud Mac 上常驻的 MCP host)。很多人以为「上了 MCP 就能在 API 里 ls 我的工程目录」,那是把两个运行时混为一谈。远程连接器省的是「再写一遍 GitHub 工具适配器」;它不省「一台能跑编译和文件监视的 Mac」。
安全默认:远程 MCP 的 token 不要写进可复用的 Agent 定义。Managed Agents 把 server URL 和会话期凭证拆开,就是为了避免密钥跟着模板满天飞。自建时至少做到:token 按会话注入、toolset 默认 denylist 危险写操作。
Structured Output:什么时候必须开,什么时候别开
Structured Output 已经从 beta 转正。两件互补的事:
- JSON outputs:
output_config.format里给 JSON Schema,助手最终文本保证能 parse,必填字段和类型被约束解码钉死。 - Strict tool use:工具定义上
strict: true,保证工具名和入参符合 schema。
该开的场景非常具体:邮件/票据抽取、生成要 POST 给内部 API 的 payload、多 Agent 之间的交接对象、评测集里「必须字段齐全」的打分器。不该开的场景同样具体:探索性分析、需要模型先解释再给建议的设计评审、以及你还在改 schema 的第一周——约束解码会把「模型想说的但字段里没有的」直接掐掉,排障时你会以为模型变笨。
和 Tool Use 的组合有坑:编程式调用不支持 strict: true。你若既要沙箱里筛大表、又要工具入参绝对合法,就得拆:对外业务工具走经典循环 + strict;对内聚合走编程式 + 宽松 schema。硬揉在一个 tools 数组里,文档会直接拒绝。
迁移时不要两套参数混用。新代码只认 output_config.format;additionalProperties: false 和 required 写全,否则「保证合法」保证的是一个几乎空的对象。抽取任务用小模型 + 结构化输出,往往比 Opus 5 自由文本再写正则更便宜、更稳。
"output_config": {
"format": {
"type": "json_schema",
"schema": {
"type": "object",
"properties": {
"severity": {"type": "string", "enum": ["low", "mid", "high"]},
"next_tool": {"type": "string"}
},
"required": ["severity", "next_tool"],
"additionalProperties": false
}
}
}
把它们拼成 AI Agent:推荐装配顺序
AI Agent 不是 API 上的一个开关,而是循环 + 状态 + 副作用边界。Claude 2026 给了你更多积木(托管 Agent 会话、MCP、代码执行),但装配顺序仍该像造车:先底盘,再变速箱,最后才上自动驾驶宣传页。
我建议的四步:
- 写死成功标准。例如「根据工单更新 Jira 状态并回帖」。没有成功标准的 Agent 会在工具循环里表演性调用。
- 最小 Tool Use。两三个自定义工具,经典循环,日志打满。这一步能跑通,你才知道 schema 该长什么样。
- 按工具来源分家。公网 SaaS → MCP connector;本机文件/编译/模拟器 → 本机 MCP host 或 Claude Code。不要幻想 Messages API 能 SSH 进员工笔记本。
- 最后加 Structured Output。只锁「交接给下游」的那一跳:工单字段、路由枚举、是否需要人工。让模型在循环内部保持一点散文能力,否则它会为了填满 schema 而瞎编必填项。
托管 Agent(Managed Agents)适合「会话要跨请求活着、记忆和 MCP 凭证要平台托管」的产品。自建循环适合你已经有队列、要接入现有网关和审计。两者可以并存:边缘用托管会话做客服,内核用自建循环碰生产变更。不要因为文档出现了 managed-agents-2026-04-01 就把全部流量迁过去——迁移成本在状态机和鉴权,不在模型名字。
长循环还有一个物理约束:Agent 的「手」必须落在某台一直开机的机器上。远程 MCP 只能摸到暴露了 HTTP 的服务;要跑测试、看 Simulator、改本地 git,宿主就得是开发机或云端 Mac。把 Agent 只部署在无头 Linux 上、又要求它修 iOS 工程,是 2026 年仍然反复出现的架构笑话。
选型表与翻车清单
| 能力 | 你真正买到的 | 优先场景 | 不要用它来… |
|---|---|---|---|
| Claude API | Messages 入口与模型 | 一切的底座 | 当文件同步或 CI 编排器用 |
| Tool Use | 模型发起、你执行的循环 | 少而精的业务动作 | 一次挂 80 个含糊工具 |
| 编程式调用 | 沙箱里过滤后再打你的 API | 大结果集聚合 | 资金与生产写操作 |
| MCP connector | 远程 HTTP 工具插头 | SaaS / 已暴露的内部网关 | 直连本机 STDIO |
| Structured Output | 约束解码后的合法 JSON | 抽取、交接、评测 | 开放式设计讨论 |
| AI Agent | 循环 + 状态 + 宿主 | 多步目标、要副作用 | 单次问答硬套「多智能体」 |
翻车清单(我们在评审里逐条打勾):
- 工具描述写「可以查询各种数据」,没有输出 schema——模型会用错参数,你却怪 Structured Output。
- MCP 与自定义工具重名或语义重叠——Claude 会在两者间摇摆,日志像随机。
- 把
strict: true和编程式调用放进同一条路径。 - 生产仍用
mcp-client-2025-04-04或output_format,一旦过渡期结束集中爆炸。 - Agent 无超时、无最大步数、无「禁止的副作用」名单——周末会自己给客户发 200 封邮件。
- 用最强模型跑「枚举分类」,账单好看的 Structured Output + Haiku 路由被浪费。
如果你的 Agent 最终要进 CI、在 macOS Job 里调 Xcode,排队和宿主容量会先于模型能力把你卡住——那是另一条工程线,和 Messages 里的 tool_use 块不是同一个问题。
落地建议:这周只做三件事
第一,把现有 Prompt 里「请以 JSON 返回」改成 output_config.format,量一次 parse 失败率,失败率降到接近零再谈「我们要上 Agent」。
第二,给核心业务只留 3~5 个 Tool Use 工具,描述里写返回 JSON 字段;需要扫大表再上编程式调用。MCP 只接已经有 HTTP 网关、且 token 能按会话注入的系统。
第三,画一张图:哪些副作用发生在 Anthropic 侧(远程 MCP、托管会话),哪些必须发生在你的 Mac / VPS。图上的空洞就是你还没买的运行时,不是再换一个模型 ID 能填上的。
Claude 2026 的能力面确实宽了:Claude API 更像操作系统调用,Tool Use 有了省上下文的支路,MCP 把 SaaS 工具标准化,Structured Output 让下游终于敢去掉重试解析,AI Agent 可以从文档里的 beta 变成可售卖的会话。宽面不等于要全用。克制的团队会更快——因为他们排障时知道该看哪一层。
本机 STDIO 与长循环 Agent,需要一台一直在线的 Mac
远程 MCP 解决的是公网工具插头;真正改仓库、跑模拟器、让 Claude Code 盯着工程目录过夜,靠的是 macOS 宿主。Apple Silicon 的统一内存适合一边跑 IDE、一边跑本机 MCP 与 Docker;待机功耗低、崩溃少,适合把 Agent 循环挂在无人值守的节点上,而不是办公笔记本合盖即断。开发工具链(Homebrew、SSH、Unix 权限模型)也比在 Windows 上用 WSL 接 MCP 少一层摩擦。
若你希望这套 Claude API + Tool Use + 本机 MCP 的工作流不绑死某台员工电脑,VPSSpark 云端 Mac mini 可以把宿主放到机房里 24 小时在线——立即了解套餐方案,让 Agent 的「手」有地方落,而不是只停在 Messages JSON 里。