先行結論
- 2026 年不要按「GPT / Gemini / Claude 誰更強」選 AI Agent 技術棧,要按工具契約能不能跨模型重用來選。
- JSON Schema 才是真正的跨廠商契約;函式呼叫只是各家模型發出呼叫的口音。
- MCP 把 Schema 變成可發現的
tools/list與可執行的tools/call,否則 Schema 只是文件。 - GPT、Gemini、Claude 都適合當 Host 側的推理引擎;長期跑 MCP Server、校驗器與 worktree 的應是不會合蓋的機器。
- 先凍結一份 Schema,再接 MCP,最後才換模型——順序反了就會三套 tools 永遠對不齊。
模型能力不是分水嶺,JSON Schema + Function Calling + MCP 組成的工具契約才是分水嶺。
0. 先行結論
如果你正在搭 2026 年的 AI Agent 技術棧,結論可以寫死:GPT、Gemini、Claude 都是可替換的推理層;真正決定系統能不能交付的,是 函式呼叫發出的參數能否通過同一份 JSON Schema,以及這份 Schema 有沒有被 MCP Server 暴露成穩定工具。先鎖模型再補工具,是過去兩年最貴的順序錯誤。
1. 問題為什麼存在:先選模型為什麼會失敗
工單裡最常見的對話是「我們上了最新的 GPT / Claude / Gemini,Agent 還是不會幹活」。原因很少是模型笨,而是三套工具定義各寫各的:OpenAI 的 tools、Gemini 的 functionDeclarations、Claude 的 tools / tool_use,再加一份 MCP 的 inputSchema。表面上全叫函式呼叫,執行時卻是四份互相漂移的契約。
舊方案失敗得非常具體:產品把 Prompt 當流程、把模型當作業系統、把 MCP 當「再裝一個外掛」。結果是聊天很順,tools/call 一碰路徑、列舉、必填欄位就 400。團隊開始比較「哪家模型更聽話」,卻從不 diff Schema。這就是為什麼「先選 GPT 還是 Claude」會把專案帶進死胡同——模型解決不了契約分裂。
- Host 在 IDE 裡,MCP Server 在筆電上,合蓋後函式呼叫變成空轉。
- 同一工具在 GPT 側叫
repoPath,在 Claude 側叫repo_path,JSON Schema 沒有單一真相。 - Gemini 的函式宣告漏了
additionalProperties: false,模型開始發明欄位。 - MCP
tools/list回傳的 Schema 與線上校驗器不是同一 git SHA。
正確的拆法是:把「會不會推理」和「能不能安全執行」分開。推理可以換 GPT、Gemini 或 Claude;執行必須落在同一份 JSON Schema + 同一台常駐 MCP 行程上。部署機器怎麼選,見 MCP Server 部署:雲端 Mac vs VPS vs 本機。
2. 五層分類:模型、函式呼叫、JSON Schema、MCP、Host
禁止把這些詞平鋪成百科。2026 年可執行的 Agent 技術棧只有五層,缺一層就會在另一層假裝補上。
2.1 推理層:GPT / Gemini / Claude
GPT(OpenAI)、Gemini(Google)、Claude(Anthropic)負責:讀上下文、決定要不要調工具、產生符合 Schema 的參數、再把工具結果寫進下一輪。它們不是檔案系統,也不是 Git。選型看延遲、上下文視窗、價格與安全策略,不看誰更像作業系統。官方入口:OpenAI Function Calling、Gemini function calling、Claude tool use。
2.2 函式呼叫:模型的口音,不是匯流排
函式呼叫是模型輸出「我要調哪個函式、參數是什麼」的協定。GPT 走 tool_calls,Claude 走 tool_use 區塊,Gemini 走 functionCall。口音不同,語意相同:一次受 Schema 約束的結構化呼叫。如果你為三家各寫一套 handler,三個月後一定分叉。要把口音適配留在薄薄一層翻譯器,業務邏輯只認正規化後的 JSON。
2.3 JSON Schema:跨廠商契約
JSON Schema 描述型別、必填、列舉、範圍、additionalProperties。OpenAI 的 parameters、Claude 的 input_schema、MCP 的 inputSchema,本質上都應是同一份 Schema 的投影。契約要進 git、要有測試:用合法/非法 payload 打校驗器,而不是用 Prompt 求模型「請遵守格式」。
2.4 MCP:把契約變成可發現、可執行的工具
Model Context Protocol 規定 Host 如何 tools/list、tools/call。MCP Server 才是吃磁碟、金鑰、網路的行程。Cursor / Claude Code / 自建編排器都只是 MCP Client。沒有 MCP,Schema 停在文件裡;有 MCP 但 Server 跑在合蓋筆電上,函式呼叫仍然會在夜間集體死亡。Cursor 側說明見 Cursor MCP。
2.5 Host:入口,不是能力本身
Host 是人點下去的地方:IDE、CLI Agent、Chat 應用。入口決定體驗,不決定能否執行。把 Claude Code 當 Host、把 GPT 當備用模型,完全合理——只要它們打的是同一台 MCP 與同一份 Schema。平行 worktree 時 Host 更要和儲存庫同機,見 遠端 Mac + worktree 短租。
3. GPT vs Gemini vs Claude vs MCP:五維對照
表頭對所有列一致。注意:MCP 不是第四個模型,它是執行與發現層;把它和三家模型放一張表,是為了阻止「用模型替代匯流排」。
| 層/方案 | 入口 | 執行能力 | 上下文 | 成本 | 權限邊界 |
|---|---|---|---|---|---|
| GPT 函式呼叫 | API / ChatGPT / 相容 IDE | 產生 tool_calls;本身不碰你的磁碟 | 對話 + 你塞進 messages 的材料 | 按 token;工具迴圈會放大帳單 | 金鑰在你的後端;模型只見到參數與回傳摘要 |
| Gemini function calling | Gemini API / Studio / Vertex | 產生 functionCall;執行仍在你這邊 | 多模態上下文強;工具欄位仍要 Schema 管住 | 按 token / 專案配額 | GCP IAM + 你的工具沙箱 |
| Claude tool use | API / Claude Code / Console | 產生 tool_use;CLI Host 可接著跑 shell | 長會話與程式碼場景穩;仍非檔案系統 | 按 token;Agent 迴圈同樣燒錢 | 工具白名單 + 人審;MCP 側再收一層 |
| JSON Schema | 校驗器 / codegen / 單源檔案 | 拒絕非法呼叫;不執行業務 | 無;它是契約不是記憶 | 幾乎為零(測試成本) | 把危險欄位從契約裡刪掉,比寫長 Prompt 有效 |
| MCP Server | stdio / SSE / 遠端 Host | 真正執行 Git、HTTP、DB、檔案 | 儲存庫、金鑰、本機狀態 | 機器常駐成本(雲端 Mac / VPS) | 行程使用者、路徑白名單、網路出口 |
讀表時記住一句非對稱結論:三家模型比的是推理與口音,MCP 比的是執行邊界。 你不能用「換 Claude」修好「MCP 跑在合蓋筆電」;也不能用「上 MCP」自動獲得合法 JSON——還是要 Schema 測試。
4. 場景怎麼選
按你的入口與執行需求選組合,而不是按評測榜選模型。
| 層/方案 | 入口 | 執行能力 | 上下文 | 成本 | 權限邊界 |
|---|---|---|---|---|---|
| 個人 PoC,本週就要 demo | 本機 IDE + 一個模型 | stdio MCP,1~2 個 tools | 單個儲存庫 | API 帳單為主 | 本機使用者權限,勿接正式金鑰 |
| 小團隊日更程式碼 | Claude Code 或 Cursor 作 Host | MCP Git + 測試 runner | 多 worktree | 雲端 Mac 日租驗收再月租 | 工具白名單;禁止 Agent 直連正式 DB |
| 要切 GPT / Gemini / Claude | 自建編排 + 統一 tool gateway | 同一 Schema 投影到三家函式呼叫 | 共用 MCP | 多一份翻譯層,省三份工具分叉 | 閘道鑑權;模型拿不到原始金鑰 |
| iOS / Xcode / 簽章 | CLI Agent 在 Mac 上 | 同機 MCP + xcodebuild | 憑證、DerivedData、模擬器 | 獨占 M4 比「Linux MCP + 另租 Mac」更省 | 鑰匙圈與簽章只留在 Mac |
| 7×24 值班 Agent | 遠端 Host + 常駐 MCP | launchd / compose 保活 | 夜間任務、webhook | 合蓋筆電=隱性故障 | 出站防火牆 + 稽核日誌 |
5. 推薦組合
允許疊加。下面三套都把 JSON Schema 單源放在 git,再產生各廠商函式呼叫宣告與 MCP inputSchema。
組合 A|個人:Cursor 或 Claude Code(Host) → 單一模型(先 Claude 或 GPT,可換) → 本機 stdio MCP(Git 唯讀) → Schema 檔案 + 校驗測試 合蓋即停,只適合白天 PoC。 組合 B|交付團隊(推薦):CLI Agent 作 Host → GPT / Claude 可切換(同一 gateway) → 雲端 Mac 上 MCP Git Server + 測試工具 → Schema 單源 → 產生 OpenAI tools / Claude input_schema / MCP inputSchema → 48h 日租:合蓋筆電,確認 tools/call 仍成功 組合 C|多模型閘道:自建 orchestrator → Gemini 做多模態入口,Claude/GPT 做程式碼工具迴圈 → 所有 functionCall / tool_use 先經 JSON Schema 校驗再 MCP tools/call → MCP 與儲存庫同機;模型 API 在公網
程式碼側的最小契約範例(投影到 OpenAI parameters、Claude input_schema、MCP inputSchema 時應保持欄位名一致):
{
"name": "git_status",
"description": "Return git status for a worktree path",
"parameters": {
"type": "object",
"properties": {
"repo_path": { "type": "string", "minLength": 1 },
"porcelain": { "type": "boolean", "default": true }
},
"required": ["repo_path"],
"additionalProperties": false
}
}
6. 常見誤區
- 誤區 1:先定 GPT 還是 Claude,再補工具。順序反了,三套 tools 會永久分叉。
- 誤區 2:把 MCP 當成第四個模型。MCP 不推理,它執行;沒有 Schema 的 MCP 只是未打表的 RPC。
- 誤區 3:用 Prompt 代替 JSON Schema。
additionalProperties: false比「請不要編造欄位」更管用。 - 誤區 4:函式呼叫成功等於業務成功。模型可以產生合法 JSON 去刪錯目錄——權限白名單在 MCP 行程,不在模型。
- 誤區 5:本機 stdio 跑通就上正式環境。合蓋、Wi‑Fi 切換、同事無法重用同一 MCP deployment,是 7×24 的天敵。
7. 落地步驟(7 步)
- 列出 Agent 真正要執行的 3 個動作(例如 git status、跑測試、讀 issue),禁止一上來接 20 個 MCP tools。
- 為每個動作寫一份 JSON Schema,放進 git;補合法/非法 fixture 測試。
- 實作一個 MCP Server,
inputSchema直接引用上述檔案,不要手抄。 - 做一層廠商適配:把同一 Schema 投影成 OpenAI tools、Gemini functionDeclarations、Claude input_schema。
- 用一個 Host(Cursor 或 Claude Code)打通
tools/list→ 函式呼叫 →tools/call→ 結果回灌。 - 把 MCP 遷到不會合蓋的機器(雲端 Mac 或 VPS),筆電只留 Host;合蓋 8 小時再測。
- 第二家模型只接翻譯層,禁止複製一份 tools。回歸同一套 fixture。技能封裝見 Agent Skills 2026 指南。
8. FAQ
函式呼叫和 MCP 是不是同一件事?
不是。函式呼叫是模型如何說出「要調工具」;MCP 是 Host 如何發現並執行工具。沒有 MCP 也可以自己寫 handler;沒有函式呼叫,模型只能輸出自然語言讓你複製指令。
JSON Schema 要寫到多嚴?
至少涵蓋型別、required、enum、以及 additionalProperties: false。路徑類欄位要拒絕 ..。過嚴會增加適配成本,過鬆則把安全檢查推回 Prompt——後者一定會漏。
GPT、Gemini、Claude 應該怎麼分工?
按入口與模態:Gemini 適合帶影像/影片的入口,Claude 適合長程式碼會話,GPT 適合已有 OpenAI 閘道的團隊。分工發生在 Host 路由,不發生在三套不同的 MCP Server。
可以只用 Chat Completions、不用 MCP 嗎?
可以,適合單應用單模型。一旦出現第二家模型或第二個 Host(IDE + CLI),自建 handler 會複製成 N 套。MCP 的價值是工具行程只部署一次。
為什麼還要把技術棧放到雲端 Mac?
若工具鏈含 Xcode、鑰匙圈、iOS 模擬器,MCP 與 Agent 必須同機且常駐。Linux VPS 跑純 Git/HTTP 可以;Apple 交付把 MCP 放 Linux、把建置放另一台 Mac,路徑會再裂一次。
9. 總結
2026 的 AI Agent 技術棧不是「選一個最強模型」,而是一份 JSON Schema、一層函式呼叫適配、一座 MCP Server、一個可替換的 GPT/Gemini/Claude 推理層。誰更強會變;契約與執行邊界不會每週重寫。
落地順序固定:Schema → MCP → 一個 Host 打通 → 換模型。機器順序同樣固定:PoC 可以本機,交付就遷到雲端 Mac 或 VPS。評測榜可以看,但不要用評測榜代替契約測試。