博客 • AI / Agent
AI Coding Agent 已經不只是補全代碼:Codex、Claude Code、OpenCode、DeepSeek Harness 正在競爭什麼?
兩年前,多數人說的「AI 寫代碼」還是編輯器裏的下一行建議。2026 年,終端裏跑着的是另一類產品:Codex、Claude Code、OpenCode、DeepSeek Harness——它們改文件、跑測試、調 MCP,還能開子 Agent 並行排查。
表面上四家都在賣同一套能力:LLM + 工具 + Agent loop。真正的戰場不在功能清單,而在架構中心:誰強化 Agent,誰管執行邊界,誰押模型無關,誰把運行時本身做成可替換件。
這篇文章會講清:
- Coding Agent 相對補全,多出來的到底是什麼
- 四家各自優化的核心問題
- Claude Code / Codex / OpenCode / DeepSeek Harness 的架構差異
- 控制權地圖:模型、運行時、策略、人各管什麼
- JSON Schema 與工具契約爲何仍是共同底層,以及怎麼在 JSONNote 本地校驗
一句話:完成任務 ≈ 模型 × Harness × 任務。四家不是在比「誰多幾個開關」,而是在比控制權落在哪裏——Claude Code 強化單一 Agent,Codex 管沙箱與審批,OpenCode 押模型可換,DeepSeek Harness 把 loop 與能力做成插件。
真正在競爭什麼
補全解決的是「下一行寫什麼」。Coding Agent 解決的是「這個目標怎麼在真實倉庫裏做完」:讀上下文、選工具、改代碼、跑命令、看結果、再決策。
底層循環幾乎相同:
User goal
→ Agent loop
→ LLM decides next action
→ Tool / environment executes
→ Result returns to context
→ Agent decides again
模型負責推理與下一步動作;harness 決定它能看見什麼、能調哪些工具、工具實際做什麼、狀態如何保存、哪些動作要審批、怎樣算任務完成。模型再強,上下文殘缺、工具契約松、權限過大、失敗無法恢復,結果照樣垮。
所以 2026 年的競爭,不再只是「誰的基準分更高」,而是「誰把智能、執行、策略、工具與人的控制組織得更清楚」。四層拼裝可參考:
2026 AI Agent 技術棧:LLM、MCP、Function Calling、JSON Schema
四個架構中心
先畫邊界。功能清單會越來越像,但中心問題不同:
| 產品 | 架構中心 | 核心問題 |
|---|---|---|
| Claude Code | Claude Agent | 如何讓一個主 Agent 更強、更好用? |
| Codex | Agent + 執行運行時 | Agent 如何在真實機器上自主行動,又不失控? |
| OpenCode | 模型無關 harness | 如何讓用戶自由換模型與提供商,不被單家鎖定? |
| DeepSeek Harness | 可組合運行時 | 模型、工具、loop、沙箱能否像插件一樣替換與重組? |
最後一行不是排名,而是產品邊界:你買的是「更強的助手」,還是「更可控的執行環境」,還是「可擴展的 Agent 平臺」。
Claude Code:Agent 中心
Claude Code 最好理解爲以主 Agent 爲中心的產品。Skills、MCP、子 Agent、Hooks、權限都在讓同一個 Claude Agent 更有效,而不是把 Agent loop 本身拆成可替換內核。
典型擴展點包括:
- CLAUDE.md:項目級上下文與約定
- Skills:可複用的經驗與工作流包
- MCP:連接外部系統
- Subagents:隔離專業子任務與上下文
- Hooks / Permissions:在生命週期上掛確定性規則
它的工程妥協很清晰:概率性 Agent + 確定性 Hooks。改完跑測試、危險命令攔截、受保護路徑先審批——這些不該指望模型「每次都記得」。
適合:明確工作流、重視體驗與上下文質量、用 Skills 和子 Agent 擴展主循環的團隊。
Codex:執行中心
Codex(含 Codex CLI)把問題推到執行層:Agent 一旦能改文件、跑 shell、裝依賴、碰網絡與憑證,就必須回答兩件不同的事——能力邊界與當前許可。
兩套機制分工:
| 機制 | 回答的問題 |
|---|---|
| Sandbox | 技術上能訪問/修改什麼? |
| Approval / Policy | 當前是否允許做這件事? |
原則是能力最小化:不要先給滿權限再要求「小心一點」,而是先收緊環境,再按需放寬。Rust 實現的 CLI、默認貼着 OpenAI 端點、以及偏強的沙箱敘事,都符合「Agent 要在真實計算機上幹活」這條線。
適合:高風險副作用、需要可審計執行軌跡、把審批與隔離當一等公民的場景。開源倉庫見:
OpenCode:模型無關
OpenCode 的差異化不在「多一套 Skills 語法」,而在默認立場:模型可換。MIT 開源、終端優先,並支持大量提供商與本地模型(如 Ollama / LM Studio)。靈活性主要落在配置層——providers、models、permissions、themes——而不是把 harness 內核拆成插件總線。
這帶來一個很實際的產品結論:如果你不信任單家鎖定,或同一會話需要在多家模型間切換,OpenCode 的中心問題就是「如何不被模型供應商綁死」。
它通常贏在:
- 多模型 / 多提供商作爲默認能力
- 開源許可與社區生態
- 把「換模型」當成一等操作,而不是廠商附贈
代價是:執行邊界與插件深度未必是賣點第一名。你買的是可換模型的 harness,不是最重的沙箱產品,也不是「Everything is a plugin」的平臺內核。
DeepSeek Harness:運行時中心
DeepSeek Harness(dsh)把問題再往裏推一層:如果 Agent Loop 本身也不該是永久內核呢?公開預覽裏的口號是 Everything is a plugin——模型、工具、skills、會話、沙箱、存儲、loop、調度、UI 都可以替換。
這和「穩定核心 + 外圍擴展點」不同。它把邊界往內推:驅動 Agent 的機制也可以重組。能力縫(capability seam)讓消費者依賴契約而非單一實現:本地 shell 與容器 shell、遠端模型與本地推理、ReAct loop 與工作流 loop,可以換提供方而不重寫所有工具。
因此它更像平臺:
- Coding Agent:ReAct 循環
- Workflow Agent:工作流 + Agent
- 長時任務:目標 + 調度 + Job
- 異構子 Agent:甚至可掛接其他產品後端
可組合性有代價:Plugin / Service / Provider / Effect / Session 等概念面更大。對「只想讓倉庫被改完」的終端用戶,學習曲線可能高於 Claude Code 或 Codex;對要造可擴展 Agent 平臺的團隊,這正是賣點。
若你更關心 DeepSeek 模型 API 與 JSON 輸出,可先看:
控制權地圖
比功能打勾更有用的,是問每項決策歸誰。下表壓縮四家的控制風格(OpenCode 與 dsh 在「可替換性」上接近,但深度不同):
| 維度 | Agent 中心 | 執行中心 | 可替換性 |
|---|---|---|---|
| 代表 | Claude Code | Codex | dsh / OpenCode |
| 主優化 | 能力與體驗 | 安全自主執行 | 換模型 / 換能力 |
| Agent loop | 明確的中心 | 明確的中心 | 配置可換 / 插件可換 |
| 安全手段 | Hooks + 權限 | 沙箱 + 審批 + 策略 | 配置策略 / 運行時策略與事件 |
| 最佳適配 | 專業化 Agent 產品 | 操作真實系統的 Agent | 多模型用戶 / 可擴展平臺 |
再往下一層:理解任務與生成計劃偏模型;校驗參數、判斷權限、執行工具、終止運行偏程序與策略;高風險動作還要人。四家都覆蓋這些詞,但把砝碼壓在不同格子上。
JSON 契約仍是共同底層
無論你選哪家 harness,工具調用最終都要落到可機器執行的結構上:函數名 + 參數 JSON。MCP 的 inputSchema / outputSchema、Function Calling 的 parameters、Structured Output 的 response_format,底層語言仍是 JSON Schema。
契約出現的位置:
| 環節 | 常見形態 | 約束什麼 |
|---|---|---|
| 模型選工具 | Function Calling / tools | JSON Schema |
| 外部工具協議 | MCP / Apps | inputSchema / outputSchema |
| 執行前校驗 | Runtime validate | 缺字段、錯類型、髒參數 |
| 軌跡與審計 | tool call / result JSON | 可覆盤的結構化事件 |
常見翻車:模型側 parameters 與 MCP inputSchema 各寫一份,字段或枚舉漂移,看起來像「模型總調不好工具」。修復方式是一份契約、兩處掛載。背景見:
AI 爲什麼需要 JSON Schema與AI Agent 的 JSON Schema 完全解析。
{
"name": "run_tests",
"description": "Run the project test suite and return a structured summary.",
"parameters": {
"type": "object",
"properties": {
"suite": { "type": "string", "enum": ["unit", "integration", "e2e"] },
"path": { "type": "string", "minLength": 1 }
},
"required": ["suite"],
"additionalProperties": false
}
}
調試這條路徑時,可以在瀏覽器本地完成,數據不上傳:
-
1
格式化 arguments
把模型返回的 arguments 字符串粘進JSON 格式化,先確認是不是合法 JSON。
-
2
對照 Schema 校驗
用JSON Schema工具覈對 required、enum、additionalProperties。
-
3
對比漂移
模型側 parameters 與 MCP inputSchema 用JSON Diff看字段是否一致。
怎麼選
按約束選,而不是按熱度選:
- 工作流清晰、要強體驗與 Skills:偏 Claude Code
- 真實機器副作用大、要沙箱與審批:偏 Codex
- 多模型、防鎖定、開源優先:偏 OpenCode
- 要造可擴展 Agent 平臺、loop 可換:偏 DeepSeek Harness
也可以組合:例如用 OpenCode / dsh 做多模型實驗,生產副作用走 Codex 式邊界;或主循環用 Claude Code,外部系統走 MCP。關鍵是別把「模型分數」當成唯一採購指標。
常見問題
AI Coding Agent 和代碼補全有什麼本質區別?
補全只建議下一行;Coding Agent 能讀倉庫、改文件、跑命令、調工具,並在循環里根據結果繼續決策。競爭重點從「生成質量」變成「執行邊界與運行時控制」。
Codex、Claude Code、OpenCode、DeepSeek Harness 誰最好?
沒有統一冠軍。看你優化什麼:體驗與 Skills 選 Claude Code;沙箱與審批選 Codex;多模型與防鎖定選 OpenCode;可替換運行時與平臺化選 DeepSeek Harness。
DeepSeek Harness 和 OpenCode 都是開源,差別在哪?
OpenCode 的靈活性主要在模型與提供商配置;DeepSeek Harness(dsh)把模型、工具、loop、沙箱、會話等都做成可替換插件,更像可組合的 Agent 運行時平臺。
爲什麼還要談 JSON Schema?
工具參數、MCP inputSchema/outputSchema、Structured Output 底層都是 JSON Schema。harness 再強,髒參數進執行層一樣會出事——契約校驗仍是 Runtime 的責任。
選 Agent 時最該盯哪一層?
盯控制權:誰決定工具、誰校驗參數、誰審批高風險動作、誰終止任務。模型分數只是輸入之一;harness 決定任務能否安全做完。
小結
Codex、Claude Code、OpenCode、DeepSeek Harness 共用同一套詞彙:LLM、工具、loop、上下文、Skills、子 Agent、權限、沙箱。它們不再只是「更強的補全」,而是在爭控制權落點。
Claude Code 強化一個 Agent;Codex 讓 Agent 在真實環境裏可控地行動;OpenCode 押模型可換;DeepSeek Harness 把運行時與能力做成可組合平臺。
重要問題已經不是「怎麼調用模型」,而是「智能、執行、策略、工具、上下文與人的控制如何組織」。工具契約層的 JSON,仍然是你可以本地核對的那一層。
調試 Agent 工具 JSON?在瀏覽器本地完成。