← 返回开发日记

Claude 2026 最新功能全面解析:Claude API、Tool Use、MCP、Structured Output 与 AI Agent

AI Agent & Claude API · 2026.08.18 · 约 16 分钟阅读

Claude API、Tool Use、MCP 与 Structured Output 组成 Agent 栈示意

很多团队把 2026 年的 Claude 功能清单当成「模型又变强了」的新闻稿:Messages API、Tool Use、MCP、Structured Output、Agent 循环——名字越来越多,代码里却仍是一次 messages.create 里塞 prompt、工具和 JSON 期望。真正会炸的往往不是回复文采,而是工具参数对不上 schema、MCP 权限面过大、下游用正则抠 JSON。下文要验证的是:这五块是不是同一层能力?非对称结论:分水岭在 schema 约束与执行边界,不在模型名。

面向要在生产里接 Claude API 的开发者:把 Claude API、Tool Use、MCP 连接器Structured Output 与 Agent 循环按「入口 / 执行 / 上下文」分类,再用对比表和场景矩阵决定何时自建工具、何时走远程 MCP、何时必须开 strict。MCP 协议本身见站内MCP 是什么:AI 界的 USB 接口;IDE 侧 Skills 分层见Claude Skills 与 Cursor Rules 对照。本篇只讲 API 侧如何拼成可运维的 Agent。

1. 为什么清单越长,线上越容易碎?

2025 年底到 2026,Anthropic 把「能调工具」「能连 MCP」「能按 JSON Schema 吐结构」从实验能力推到 Messages API 主路径:output_config.format 取代旧的 beta output_format;工具定义可设 strict: true,用语法约束采样保证参数合法;远程 MCP 可通过 mcp_servers + type: "mcp_toolset" 直接挂进同一次请求。文档写得很清楚,工程上却容易做成三件事叠在一块:

  • 把「给用户看的自然语言」和「给后端 ingest 的 JSON」塞进同一次无 schema 的文本回复;
  • 把本机脚本、SaaS、以及带写权限的 MCP 工具列成一张平铺 tools 表,模型自己挑;
  • 把 Agent 理解成「把同一条 user 消息循环 20 次」,却不设最大步数、不审计 tool_use

结果是:演示能跑,工单里全是 JSONDecodeError、错误的枚举、以及 MCP 服务器被当成万能 shell。问题不在 Claude API「功能不够」,而在没有把入口、执行面、上下文面拆开。若你的 Agent 还要在 macOS 上跑 xcodebuild,执行面还会落到真实机器——这与GitHub Actions 自建 macOS Runner 是同一类运维问题,不是提示词问题。

2. 五层分别是什么?(What)

2.1 Claude API — 对话入口,不是 Agent 产品

Claude API(Messages)是把模型、消息、系统提示、缓存和计费接到你系统的入口。它不负责替你执行工具,也不保证文本一定能 json.loads。把它当「聊天完成」用完全合法;一旦下游要写库、改工单、触发 CI,就必须叠加后面几层。选型时先问:这次调用的消费者是人,还是解析器?

2.2 Tool Use — 自建执行面

Tool Use 让模型在回复里产出 tool_use 块,你在服务端执行后再把 tool_result 送回。适合你拥有实现的内部 API:查库存、创建工单、跑仓库脚本。2026 年生产建议在工具定义上加 strict tool usestrict: trueinput_schema 一起走语法约束,减少「字符串 2 当成数字」这类下游崩溃。代价是 schema 必须落在官方支持的 JSON Schema 子集里。

2.3 MCP 连接器 — 远程工具面,不是再写一套 SDK

Messages API 的 MCP connector 让你在请求里声明远程 MCP 服务器(URL、OAuth),再用 mcp_toolset 决定启用全部、白名单或黑名单工具。它解决的是工具发现与传输:不必为每个 SaaS 手写 Anthropic 工具 JSON。它不自动等于安全——写文件、执行 shell 的 MCP 仍要把权限收到网关或 allowlist。协议原理与本篇「API 怎么挂服务器」互补,不要把两篇文章当成同一篇百科。

2.4 Structured Output — 给解析器的上下文,不是给读者的文风

Structured Outputoutput_config.formatjson_schema 约束模型文本块必须是合法 JSON。适合抽取字段、生成报表对象、给下一个服务当合同。它和 Tool Use 正交:你可以只要结构化文本、只要严格工具、或两者同开。不要用它替代工具调用——JSON 再漂亮也不会替你打 HTTP。

2.5 AI Agent — 循环策略,不是第五个 API 产品

AI Agent 在 Claude 语境里通常是:模型选工具 → 你执行 → 结果回灌 → 直到停。停的条件必须是你写的:最大轮次、禁止的工具名、预算、人工确认。Agent 可以只用自建 Tool Use,也可以混 MCP;Structured Output 适合循环结束时的最终交付物。没有循环控制的「全自动」只是无限重试。

一句话记忆
Claude API 是入口;Tool Use / MCP 是执行面(自建 vs 远程发现);Structured Output 是给机器的交付格式;Agent 是你写的循环与红线。

3. 核心对比表(How Compare)

Claude API 五层:入口、执行、上下文、适合人群
能力 入口 执行能力 上下文 适合人群
Claude API Messages / SDK messages.create 生成文本与多模态理解,不执行外部副作用 messages + system + 缓存块 聊天、草稿、人工阅读的摘要
Tool Use 请求里的 tools[] 自建定义 由你的后端执行函数,可 strict: true 工具 schema + 往返 tool_result 有内部 API、要审计每一次调用的团队
MCP 连接器 mcp_servers + mcp_toolset 远程 MCP 工具;可多服务器、OAuth 工具列表由服务器发现,需裁剪 要接现成 MCP、少手写工具 JSON 的集成
Structured Output output_config.format = json_schema 不执行工具;保证文本 JSON 可解析 schema 进入采样约束 ETL、工单字段、下游强类型服务
AI Agent 循环 你的编排器(while / 队列 / 工作流引擎) 多次 Tool Use 或 MCP,直到停条件 累积 tool_result,需防上下文膨胀 要多步改系统状态、且能设预算的团队
自建 Tool Use 还是 MCP 连接器
对比项 自建 Tool Use 你写函数 MCP 连接器 远程发现
所有权实现、日志、限流全在你仓库工具语义由 MCP 服务方定义
变更速度改 schema 要发版你的 Agent服务器增工具会进入发现集,必须 allowlist
严格参数官方 strict 与自建 schema 对齐最直接跨 MCP 客户端时勿把 API 专属字段硬塞进通用 schema
适合核心业务写路径、合规审计只读 SaaS、标准化只读检索、多工具拼盘

4. 场景怎么选(Decision)

先定消费者和副作用,再选层。下面矩阵按「你会不会改外部状态」分流。

场景选择矩阵
场景 优先组合 不要做
给运营看的周报 Claude API 纯文本即可 为了「显得高级」强行 JSON Schema
从邮件抽字段入 CRM Structured Output + 服务端校验 用 Tool Use 假装「抽字段也是工具」却不写库
创建 Jira / 关告警 自建 Tool Use + strict: true + 幂等键 把写权限 MCP 整包丢进请求
只读查文档 / 日历 MCP 连接器 + 工具白名单 开启所有工具「以后可能用得上」
多步修仓库 + 跑测试 Agent 循环 + 自建 git/test 工具 + 最大步数 无上限 while True;在笔记本上通宵跑 xcodebuild
循环结束要给下游 API 合同 最后一轮 Structured Output(或单独 parse 调用) 从带 tool_use 的混杂文本里正则抠 JSON
红线
写文件系统、生产数据库、支付、发邮件的工具,默认不走「发现来的 MCP 全开」。要走 MCP,也必须 allowlist + 鉴权 + 审计日志;高风险步骤人工确认。

5. 推荐组合(Stack)

允许叠加,不要追求「只选一个功能名」。

  • 个人脚本 / 内部 bot:Claude API + 2–5 个自建工具 + strict。MCP 先别上,减少密钥面。
  • 成长型 SaaS 客服 Agent:自建写路径工具(工单)+ MCP 只读知识库 + 结束时 Structured Output 给质检。
  • 平台 / 多团队:MCP 网关统一鉴权与限流;Agent 编排器管步数与预算;核心账务仍自建 Tool Use。
  • macOS / iOS 构建 Agent:工具里只暴露「在指定 runner 上触发作业」,真正的 xcodebuild 跑在稳定云 Mac,而不是让模型直接 SSH 乱敲。

和 IDE 里的 Skills 怎么配合:API Agent 负责对系统有副作用的循环;Claude Code Skills 负责开发者本机/仓库里的 SOP。两边都可以讲 MCP,但密钥与写权限不要共用一张表。

6. 常见误区

  • 「上了 MCP 就不用写 Tool Use」 → 写路径、合规、幂等仍应自建并审计。
  • 「Structured Output 等于 Agent」 → 它只约束文本 JSON,不执行副作用。
  • 「strict 可以随便套复杂 JSON Schema」 → 须遵守官方子集;过深的 oneOf / 动态 key 会失败。
  • 「把旧 beta output_format 和新 output_config 混用当两套产品」 → 迁移期兼容,新代码只用 output_config.format
  • 「模型越强,越不需要最大步数」 → 步数是钱和爆炸半径,与智商无关。
  • 「MCP 工具 schema 原样塞 strict 给所有客户端」 → API 专属字段在通用 MCP 客户端上可能不兼容,要按通道剥离。

7. 七步落地

  1. 列副作用:只读查询、写内部库、触发 CI、碰生产。每类单独一张工具表。
  2. 先写 1 个自建工具:最小 input_schema + strict: true,打通 tool_use → 执行 → tool_result。
  3. 给人看的和给机器的分开:对机器的交付用 Structured Output 或单独 parse 调用。
  4. MCP 只挂只读mcp_servers + allowlist;写工具继续自建。
  5. 加上循环外壳:最大 N 步、超时、token 预算、拒绝未声明工具名。
  6. 观测:记录每次 tool 名、参数哈希、耗时、是否 schema 失败;不要只 log 最终 assistant 文本。
  7. 把重执行绑到固定节点:macOS 作业走云 Mac / 自建 runner,Agent 只发「作业 ID」,不把笔记本当生产。
示例:strict 工具 + 结构化最终交付(概念请求,密钥走环境变量)
# 伪代码:生产请用官方 SDK
POST /v1/messages
{
  "model": "claude-opus-4-6",
  "max_tokens": 2048,
  "tools": [{
    "name": "create_ticket",
    "strict": true,
    "input_schema": {
      "type": "object",
      "properties": {
        "title": {"type": "string"},
        "severity": {"type": "string", "enum": ["low","high"]}
      },
      "required": ["title","severity"],
      "additionalProperties": false
    }
  }],
  "output_config": {
    "format": {
      "type": "json_schema",
      "schema": {
        "type": "object",
        "properties": {
          "ticket_id": {"type": "string"},
          "next_action": {"type": "string"}
        },
        "required": ["ticket_id","next_action"],
        "additionalProperties": false
      }
    }
  },
  "messages": [{"role": "user", "content": "开一张高优先级工单:构建超时"}]
}

模型名以你账号控制台与Tool Use 官方概述为准;上线前在预发核对 output_configstrict 是否已退出 beta 头依赖。

8. 总结

Claude API 解决「怎么把模型接到系统」;Tool Use 解决「自建执行从哪进、参数如何被保证」;MCP 解决「远程工具怎么发现、怎么裁剪」;Structured Output 解决「给解析器的合同」;AI Agent 解决「循环何时停、爆炸半径多大」。五者不是五个并列的「新功能新闻」,而是一层入口加两层执行面加一层交付格式加一层你必须自己写的编排。先画副作用边界,再打开 MCP 和循环,演示能进生产。

延伸阅读:Structured outputs · Strict tool use · MCP connector · 站内MCP 协议入门

FAQ

Tool Use 和 MCP 可以同时用吗?
可以。常见拆法是写路径自建 Tool Use,只读能力走 MCP toolset。同一请求里两者都会出现在工具列表,所以更要靠名称前缀和 allowlist 避免模型选错写工具。
Structured Output 能替代 strict 工具吗?
不能。Structured Output 约束的是助手文本 JSON;strict 约束的是 tool_use 的 name 与 input。下游若执行函数,必须靠工具 schema,而不是希望模型在散文里「顺便」给出合法参数。
还要不要 beta header?
以当前 Anthropic 文档为准:结构化输出已迁到 output_config.format,官方说明过渡期内旧参数仍可用。新集成不要再依赖 structured-outputs 旧 beta 头;MCP 连接器是否仍需 anthropic-beta 头,发版前对照 MCP connector 页。
Agent 循环应该开多大 max_tokens?
按单步工具参数规模设,而不是「开到模型上限以防万一」。循环步数 × 每步 max_tokens 才是账单;上下文膨胀时先摘要 tool_result,而不是无限加窗。
和站内 MCP 科普文有什么区别?
那篇讲协议是什么、为什么像 USB;本篇讲 Claude Messages API 上如何把 MCP 连接器与 Tool Use、Structured Output、Agent 循环拼进可运维架构,并给出场景分流。
为什么构建类 Agent 还要云 Mac?
codesign 与 xcodebuild 依赖原生 macOS。Agent 描述步骤,执行需要 7×24 可 SSH 的节点;云端 Mac mini 待机功耗低、环境可复现,避免把签名证书和整夜编译绑在笔记本上。

Agent 调得动工具,还得有地方把构建跑完

Claude 的 Tool Use 和 MCP 只能把「意图」变成一次次调用;真正的 xcodebuild、Fastlane 和签名发生在 macOS 上。Hashvps 云端 Mac mini M4 提供 SSH/VNC、独享 IPv4 与可复现的 Homebrew——同一套 MCP 只读工具指向仓库,写路径作业打到固定 runner,而不是让模型对着变化无常的笔记本 shell。

若你正在把 Claude API Agent 接到 iOS/macOS 流水线, Hashvps 云 Mac 是性价比很高的执行节点—— 了解套餐方案,让循环在远端按预算跑完。

Hashvps · Mac 云服务

Agent 要跑工具,执行节点得稳

云端 Mac mini M4:原生 macOS、SSH 直达,适合把 MCP 工具与 xcodebuild 绑到同一台可复现节点。

前往首页
限时优惠