博客 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,誰管執行邊界,誰押模型無關,誰把運行時本身做成可替換件。

這篇文章會講清:

一句話:完成任務 ≈ 模型 × Harness × 任務。四家不是在比「誰多幾個開關」,而是在比控制權落在哪裏——Claude Code 強化單一 Agent,Codex 管沙箱與審批,OpenCode 押模型可換,DeepSeek Harness 把 loop 與能力做成插件。

真正在競爭什麼

補全解決的是「下一行寫什麼」。Coding Agent 解決的是「這個目標怎麼在真實倉庫裏做完」:讀上下文、選工具、改代碼、跑命令、看結果、再決策。

底層循環幾乎相同:

四家共享的 Agent loop 形狀
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 本身拆成可替換內核。

典型擴展點包括:

它的工程妥協很清晰:概率性 Agent + 確定性 Hooks。改完跑測試、危險命令攔截、受保護路徑先審批——這些不該指望模型「每次都記得」。

適合:明確工作流、重視體驗與上下文質量、用 Skills 和子 Agent 擴展主循環的團隊。

Codex:執行中心

Codex(含 Codex CLI)把問題推到執行層:Agent 一旦能改文件、跑 shell、裝依賴、碰網絡與憑證,就必須回答兩件不同的事——能力邊界與當前許可。

兩套機制分工:

機制 回答的問題
Sandbox 技術上能訪問/修改什麼?
Approval / Policy 當前是否允許做這件事?

原則是能力最小化:不要先給滿權限再要求「小心一點」,而是先收緊環境,再按需放寬。Rust 實現的 CLI、默認貼着 OpenAI 端點、以及偏強的沙箱敘事,都符合「Agent 要在真實計算機上幹活」這條線。

適合:高風險副作用、需要可審計執行軌跡、把審批與隔離當一等公民的場景。開源倉庫見:

openai/codex

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,可以換提供方而不重寫所有工具。

因此它更像平臺:

可組合性有代價:Plugin / Service / Provider / Effect / Session 等概念面更大。對「只想讓倉庫被改完」的終端用戶,學習曲線可能高於 Claude Code 或 Codex;對要造可擴展 Agent 平臺的團隊,這正是賣點。

若你更關心 DeepSeek 模型 API 與 JSON 輸出,可先看:

DeepSeek V4-Pro 完整解析

控制權地圖

比功能打勾更有用的,是問每項決策歸誰。下表壓縮四家的控制風格(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 SchemaAI Agent 的 JSON Schema 完全解析

示例:Coding Agent 工具參數 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. 1
    格式化 arguments

    把模型返回的 arguments 字符串粘進JSON 格式化,先確認是不是合法 JSON。

  2. 2
    對照 Schema 校驗

    JSON Schema工具覈對 required、enum、additionalProperties。

  3. 3
    對比漂移

    模型側 parameters 與 MCP inputSchema 用JSON Diff看字段是否一致。

怎麼選

按約束選,而不是按熱度選:

也可以組合:例如用 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?在瀏覽器本地完成。

← 返回博客