← 返回開發日記

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 綁到同一台可重現節點。

前往首頁
限時優惠