Codex 內部怎麼運作
Codex, Behind the Harness — Dominik Kundel, OpenAI

Dominik 順著一則訊息送出後的路徑,講 Codex harness 如何組脈絡、跑動作、管沙盒與自動審查,再到 WebSocket、/goal 與壓縮。
這場講了什麼
- 兩條協定撐起整個 harness:UI 到 harness 走 App Server 協定,harness 到推論走 Responses API。Dominik 說兩者都為開放生態設計,harness 本身是 Apache 2 授權、用 Rust 寫成。
- 脈絡建構看大小、彈性與快取:Codex 把部分工具標成 deferred,要用時才靠 tool search 找;可用 skills 清單的長度上限是最大脈絡視窗的 2%。
- 動作靠幾組工具完成:子 agent 有 spawn 與 send input 之類的工具,背景終端機同理;瀏覽器操作改成在持續存在的 node repl 裡寫 JavaScript;改檔用 apply patch。
- 沙盒之上再加自動審查:為了減輕核准疲勞,escalation 時會啟動一個只有讀取權限的 auto-review 子 agent,依使用者授權程度與影響來判斷。
- 瓶頸從推論換成網路:GPT-5.3 Codex Spark 跑到每秒 1,000 個 token 後,Responses API 推出 WebSocket 模式,只傳有變動的內容。
- 迴圈與壓縮讓 agent 跑得久:/goal 會一直注入 continuation prompt,直到模型呼叫 update goal;server-side compaction 則把舊脈絡換成帶有必要資訊的新視窗。
影片從哪一段開始看14 段
- 00:12開場與範圍Dominik 先舉手問誰在做自己的 agent,說明這 20 分鐘只談 Codex harness 裡值得借用的功能,從訊息送出後發生什麼切入。
- 01:50兩條協定訊息從 UI 到 harness 走 App Server,harness 到推論走 Responses API;App Server 也被 Codex app 與第三方專案拿去用,Dominik 還拿它把 Codex 放進 Claude Code 與 Doom。
- 03:14開放的 Responses 生態Responses API 去年推出,重新設計 chat completions,並加入 Web Search、Image Gen 等 agent 需要的能力;也與 Ollama、LM Studio、NVIDIA 等夥伴訂出開放的 responses schema、設治理組織,任何相容的模型供應商都能接進 Codex harness。
- 04:20脈絡建構的三個考量第一步脈絡建構在乎大小、彈性與可快取性;Dominik 用自己改寫成 TypeScript 的 nano codex 示範組出哪些部分。
- 05:54Deferred tools 與 skills 上限工具可標成 deferred、之後靠 tool search 載入;skills 清單上限為脈絡視窗的 2%,超過就逐步縮短描述。
- 07:01非同步動作子 agent 靠 spawn agent、send input、wait 與關閉的工具來委派;背景終端機也是同一套概念。
- 08:02Computer use 的演進去年的 computer use 一次只能一個動作,現在改成讓 agent 用程式碼自己寫操作;瀏覽器使用就是在持續的 node repl 裡寫 Playwright 風格的 JavaScript。
- 10:07檔案系統與工具習慣GPT-5 之後的模型都訓練過 apply patch 改檔,其餘走 shell;模型慣用 ripgrep,所以 harness 一併附上,在 Windows 上則訓練成直接寫 PowerShell。
- 11:14沙盒所有檔案操作都過沙盒層:macOS 用 Seatbelt、Linux 用 Bubblewrap,Windows 則自己做了開源的沙盒,原因寫在 David 的一篇文章裡。
- 12:05核准疲勞與 auto review為了不讓人為了省事一律開 full access,做了自動核准:escalation 時啟動只讀的審查子 agent,依授權程度與影響判斷,同時擋住資料外洩。
- 15:32速度與 WebSocketGPT-5.3 Codex Spark 在 Cerebras 上每秒 1,000 個 token,瓶頸變成網路,於是改用持久的 WebSocket 連線,只送變動的項目。
- 17:25/goal 迴圈目標沒達成前,harness 會一直注入 continuation prompt,直到模型呼叫 update goal 工具;所以目標要寫得具體、可驗證。
- 18:48自動壓縮去年底推出的 auto compaction 在 server 端觸發,把舊脈絡換成含 compaction item 的新視窗,模型也針對它訓練過。
- 19:37三點收尾App Server 與 harness 開源可當藍圖或直接使用;多數功能其實在 Responses API 裡;隨模型演進留意 API 與 Codex 的變化。
值得記的話5 句
It's Apache 2 license, and the harness is written in Rust.
授權是 Apache 2,harness 是用 Rust 寫的01:15Like in some cases you want the agent to actually delete a file, in other cases you don't.
有些情況你真的要 agent 刪檔,有些情況不要14:24inference was no longer the bottleneck. It was actually the network.
推論不再是瓶頸,真正的瓶頸是網路15:48instead have very concrete and verifiable prompts
改成寫很具體、可驗證的提示18:32most of the features that are standout for Codex are actually features that are exposed in the responses API.
Codex 多數亮眼的功能,其實都是 Responses API 公開的功能19:54
名詞與人物9 個
- Codex harness
- Codex 的 agent 外殼,負責組脈絡、呼叫工具、管沙盒;開源、用 Rust 寫
- App Server
- UI 與 harness 之間的協定,Codex app 與第三方專案都靠它接上 harness
- Responses API
- harness 與推論之間的 API,內建 Web Search、Image Gen 等 agent 需要的能力
- Tool search / deferred loading
- 工具標成 deferred 後不進脈絡,改由模型用 tool search 找;Dominik 說自 GPT-5.4 起可用
- apply patch
- 模型訓練時學會的改檔工具,用 diff 修改或建立檔案
- auto review
- 取代 full access 的自動核准機制,由只讀的子 agent 審查 escalation
- WebSocket mode
- Responses API 的持久連線模式,帶狀態、只送變動的資料
- /goal
- 讓 harness 反覆注入 continuation prompt、直到目標達成的迴圈功能
- compaction
- 把過長的脈絡視窗換成帶必要資訊的新視窗,可手動或自動觸發
提到但沒有展開
- auto review 要防的情境:被要求「高能動性」的模型發現郵件附不上檔案,就改傳到檔案分享空間;或跳脫字元弄錯,刪掉太多資料。判斷看情境:你叫它刪 .git 資料夾就沒問題,沒叫就不該碰;curl Google 測網路可以,上傳檔案就不一定。
- WebSocket 模式的示範裡,一般模式一次送回九個項目,WebSocket 模式只送一個。
同一站:AI Agents15 場
- 從 fork 到 microVM 的沙盒設計009 · Abhishek Bhardwaj(OpenAI) · 45 分
- 背景執行的 computer use 三件套016 · Francesco Bonacci(Cua) · 17 分
- Loops 到底是炒作還是真能用023 · Dex Horthy, Geoff Huntley, Ian Livingstone & Greg Pstrucha · 60 分
- 每個 harness 終將長成 claw028 · Sam Bhagwat(Mastra) · 16 分
- 把執行層獨立出來,換模型不用重寫032 · Dan Farrelly(CTO, Inngest) · 19 分
- 長時程 agent 的四個設計主題033 · Lance Martin(Anthropic) · 25 分
- 讓 agent 看見你所見的畫面034 · Antje Barth(Amazon AGI Lab) · 22 分
- 把 Codex 養成一整個團隊038 · Jason Liu(OpenAI Codex) · 75 分
- agent 走進群組與眼鏡061 · Sai Krishna Rallabandi · 19 分
- agent 出事,多半是 harness 的錯063 · Vinoth Govindarajan(OpenAI) · 18 分
- 把 AI agent 接進事件溯源的詐欺偵測066 · Divakar Kumar(FlyersSoft) · 22 分
- 給每個人自己改的個人應用平台086 · Kenton Varda(Cloudflare) · 19 分
- 用 CCA 考試當 agent 工程的地圖091 · Frank Coyle(UC Berkeley) · 20 分
- 讓背景 agent 接手營運雜務094 · Justin Smith(Resolve AI) · 25 分
- Codex 內部怎麼運作你在這裡