OpenAI Harness Engineering:利用 Codex 實現零手寫程式碼開發
OpenAI 成功打造並發布了一款內部軟體產品,約有一百萬行程式碼,全部由 AI 生成,沒有任何一行是人類手動編寫的。透過 Codex 代理人,團隊將開發時間縮減至傳統手動編碼所需時間的約 1/10,將人類的角色從編寫程式碼轉變為設計環境、規格與回饋迴路,以讓代理人具備自主性。
「零手寫程式碼」實驗
自 2025 年 8 月起,一支小型工程師團隊使用 Codex(由 GPT-5 引導)生成從最初的倉庫腳手架與 CI 設定,到應用程式邏輯、文件與內部工具的所有內容。五個月內,團隊人數從三人增至七人,管理了約 1,500 個合併的 Pull Request(PR)。
此方法的主要成果包括:
- 高產能: 每位工程師平均每天 3.5 個 PR。
- 全方位生成: 代理人不僅產出產品程式碼與測試,還包括生產儀表板定義、評估 harness,以及管理倉庫本身的腳本。
- 人機協同指導: 人類仍參與工作優先順序的決策、將使用者回饋轉化為驗收標準、以及驗證結果,但從未直接撰寫程式碼。
重新定義工程師角色:從編碼到腳手架
在以代理人為先的工作流程中,主要的工程瓶頸不是代理人的能力,而是環境的規格。OpenAI 發現當環境規格不足時,進度會停滯,導致人類必須專注於「深度優先」的工作:將高階目標拆解成更小的構件,並建立讓代理人工作可讀且可強制執行的工具。
代理人對代理人工作流程
人類主要透過提示與系統互動。為了將 PR 推進至完成,Codex 被指示:
- 在本地自行檢視變更。
- 在本地與雲端請求其他代理人進行審查。
- 根據回饋迭代,直到所有代理審查者滿意為止。 隨著時間推移,團隊將幾乎所有審查工作轉移至代理人對代理人的互動,將人類的 PR 審查需求降至最低。
提升應用程式對代理人的可讀性
為了減輕人類 QA 的負擔,OpenAI 著重於讓應用程式的內部狀態直接對 Codex 可讀。這使得代理人能在不需要人類介入的情況下推理系統。
- 執行時存取: 應用程式可於每個 git worktree 中啟動,讓 Codex 為每項變更啟動獨立實例。
- UI 驗證: 透過將 Chrome DevTools Protocol 接入代理人執行環境,Codex 能使用 DOM 快照與螢幕截圖重現錯誤並驗證 UI 行為。
- 可觀測性: 代理人可存取本地可觀測性堆疊,使用 LogQL 查詢日誌、使用 PromQL 查詢指標,以滿足特定效能目標(例如確保服務啟動時間低於 800 ms)。
倉庫知識作為系統的唯一真相來源
OpenAI 發現單一的巨型說明手冊對代理人無效,因為它會淹沒任務上下文且很快過時。相反地,他們採用了「地圖」式方法:
- AGENTS.md 作為目錄: 一個約 100 行的短檔案提供指向更深層真相來源的指標。
- 結構化文件:
docs/目錄作為系統的唯一真相來源,內含索引化的設計文件、架構圖與產品領域的品質等級。 - 執行計畫: 複雜工作以版本化的執行計畫記錄,決策日誌亦被提交至倉庫。
- 機械化強制: 專屬的 linter 與「文件園藝」代理人確保文件與實際程式碼行為保持同步。
強制執行架構與「品味」
為防止在全代理人生成的程式碼基底中出現架構漂移,OpenAI 採用嚴格的機械限制,而非微觀管理實作細節。
嚴格的架構模型
每個業務領域遵循固定的分層系統,且依賴方向必須嚴格驗證:Types $\rightarrow$ Config $\rightarrow$ Repo $\rightarrow$ Service $\rightarrow$ Runtime $\rightarrow$ UI。跨領域關注(例如認證、遙測)只能透過明確的「Providers」進入。
品味不變式
自訂 linter 強制執行「品味」與可靠性需求,例如:
- 結構化日誌與 schema/type 命名慣例。
- 檔案大小限制。
- 邊界解析(例如使用 Zod)以避免「YOLO 風格」的資料探測。
管理熵與「AI 雜訊」
完全自主可能導致次佳模式的複製。OpenAI 透過持續的「垃圾回收」程序來管理:
- 黃金原則: 將有見地的機械規則編碼於倉庫中。
- 自動清理: 背景 Codex 任務定期掃描偏離這些原則的程式碼,並開立重構 PR,這些 PR 通常在簡短的人類審查後自動合併。
目前能力與未來未知數
系統已達到一個門檻,使得 Codex 能端對端驅動新功能。只需一次提示,代理人即可驗證程式碼庫、重現錯誤(錄製失敗影片)、實作與驗證修復(錄製解決影片),並在回應回饋後合併變更。
OpenAI 指出,雖然此方式已在內部上線成功,但仍不確定在數年後架構一致性會如何演變,或系統在模型變得更強大時將如何調整。