截至 2026 年 8 月 28 日,Coding Agent 已經能在邊界清楚的專案裡承擔大型重構、效能調校與跨語言重寫。真正卡住團隊的,逐漸不再是「程式碼能不能寫出來」,而是規格是否完整、測試能不能證明行為沒變,以及誰願意為合併後的結果負責。 OpenAI 把 GPT-5.6 Sol 與 Max 放進 Codex,並把 Codex App 定位成可同時管理多個 Agent 的工作台;公開 GitHub PR 也讓我們看到另一面:Agent 可以一次改動上萬行,但合併的依據仍是合約、測試與工程判斷。

「我不看程式碼」聽起來像挑釁。若把它理解成連 diff 都不開、測試紅了也照合,當然是失職。比較值得討論的版本是:工程師不再把逐行閱讀當成唯一的信任來源,而是先看行為合約,再看證據,最後只對高風險邊界做深入審查。

大量程式碼通過狹窄驗收閘門,呈現程式碼供給與工程判斷的不對稱

真正的分水嶺:它跨過你的日常基準

模型會補函式、寫測試,早已成為日常。工作方式真正改變的時刻,是它在你熟悉的程式庫裡,能穩定交出達到日常開發水準的結果。這個基準沒有全球統一答案:對小型 CLI、資料轉換器與內部工具來說可能已經跨過;對支付、身分驗證、分散式一致性與安全核心,還差得很遠。

公開紀錄提供了幾個很好的壓力測試。fast/cronexprPR #33 用手寫 byte-offset parser 取代 Winnow,5 次提交改了 23 個檔案,新增 1,044 行、刪除 756 行。行數只是表面;它還保留既有 snapshot,並對 34,228 組生成式 cron expression 做差異測試。後續 PR #35#36#37 又補上競品 benchmark、解析路徑調校與延後錯誤格式化。

fast/hawkeyePR #215 更大:155 次提交、133 個檔案,新增 5,788 行、刪除 6,345 行,八天內完成 HawkEye v7 的 Rust 重寫。這種規模過去會自然形成一道預算牆;現在,產生改動已不再是最昂貴的部分。昂貴的是回答三個問題:新版本是否維持舊行為、效能提升是否可重現、維護者是否看得懂它留下的結構。

不逐行讀,靠什麼合併

「模型很強」無法當證據。

cronexpr 的案例之所以站得住,是因為 parser 的外部行為有 snapshot 和差異測試可以鎖住。Apache DataSketches Rust 的 PR #231 調整 T-Digest 的 partial aggregate 路徑,工作負載明寫要反序列化 64 個 partial state;效能工作有可重跑的 workload,才知道快在哪裡,也才抓得到以正確性換速度的偷跑。

這套審查方式可以整理成三層:

風險層級 可以交給 Agent 的工作 人要盯的證據
低風險 內部重構、parser 替換、重複程式碼整理 既有 snapshot、差異測試、lint 與型別檢查
中風險 效能調校、資料結構替換、跨語言移植 可重跑 benchmark、記憶體與延遲回歸、邊界輸入
高風險 公開 API、並行原語、權限、安全與資料遷移 人工設計審查、威脅模型、故障注入、回滾方案
從低風險重構到高風險安全邊界的三層工程審查圖

Apache Asyncband 的 PR #105 一次加入 305 行,處理 mutex、semaphore 與事件等非同步原語。這類改動即使測試全綠,也不能只看輸出結果:取消語意、公平性、飢餓、死鎖與 runtime 相容性都藏在介面邊界。到了這一層,程式碼閱讀沒有消失,只是從「每行平均用力」改成「對不可逆、不可觀測與高爆炸半徑的位置用力」。

把驗收條件寫在提示詞前面

很多 Agent 任務失敗,是因為團隊根本沒有講清楚什麼叫完成,prompt 長短反而是次要問題。若需求只寫「把它重寫成 Rust,順便變快」,Agent 當然能生出很多程式碼;合併者拿到的仍是一團無法判斷的變更。

比較能工作的任務合約,至少要先寫這五件事:

  1. 哪些外部行為必須逐字或逐位元相容。
  2. 哪些檔案、公開 API 與資料格式不能動。
  3. 要用什麼測試與 workload 證明結果。
  4. 效能改善的基準機器、樣本與容許誤差。
  5. 失敗時如何回滾,以及哪些決策必須停下來交給人。

可以直接把要求寫成一份短合約:

任務:替換目前的解析器實作,不改公開 API。

完成條件:
- 既有 snapshot 必須逐位元一致。
- 對至少 30,000 組生成輸入跑新舊實作差異測試。
- 新增 benchmark,分開報告 parse、format 與 allocation。
- 任何語意不確定或需要更改公開格式的地方,停止並回報。
- 最終回覆列出變更、證據、未解風險與回滾步驟。

這份合約沒有華麗的角色設定。它只是把「我希望它做好」改成可驗收的條件。Agent 可以自己找路,合併門檻不能跟著漂。

程式碼供給暴增後,架構債反而更容易被低估

成本下降會改變團隊願意嘗試的事情。過去一個 parser 重寫可能要排兩個季度,現在可以先在隔離分支做出完整版本,再用差異測試決定要不要留下。這是好事。它讓「試了才知道」變得合理,也讓舊系統不必因為改寫太貴而永遠不能碰。

產生程式碼變便宜了,擁有它照樣昂貴。每一個新模組都會增加攻擊面、升級責任、除錯路徑與值班負擔。Bun 1.4 的官方公告提到核心從 Zig 重寫為 Rust,規模約一百萬行,二進位檔縮小約 20%,並新增約 1,400 個 Node.js 測試。這證明大型重寫已經能真實發生;它沒有證明維護成本會自動消失,也不能反推任何一顆模型獨自完成了這場工程。

YAGNI 因此沒有失效。新的判斷方式是:實驗成本可以很低,進入主幹的成本仍要照未來五年計算。Agent 做出的候選方案可以很多,正式留下的介面應該更少。

一套適合 Agent 時代的審查順序

我會把審查順序改成這樣:

  1. 先看任務合約。 若成功條件寫不清楚,先不要讓 Agent 產生一萬行 diff。
  2. 再看可執行證據。 測試、benchmark、靜態分析與差異輸出,要能在乾淨環境重跑。
  3. 看邊界,不平均看每一行。 公開 API、錯誤處理、狀態轉移、並行與安全路徑優先。
  4. 要求 Agent 說出不知道的地方。 沒有證據的推論要列為風險,不能包成完成事項。
  5. 最後才問要不要擁有它。 能生成、能通過測試,不等於團隊值得多背一個模組。
任務合約、可重跑證據與高風險邊界組成合併決策路徑

OpenAI 對 GPT-5.6 的公開資料強調 coding-agent benchmark 與更高的長任務效率,Codex App 則把多 Agent 平行工作做成產品介面。這些進展會繼續壓低實作成本。它們沒有替團隊回答產品要什麼、相容性要守到哪裡,也沒有接走上線後的責任。

FAQ

Coding Agent 是否已經強到可以取消 Code Review?

不行。低風險改動若有強合約與測試覆蓋,可以減少逐行閱讀。公開 API、並行、安全、資料遷移與不可逆操作仍需要人工審查,而且要看設計與故障模式;測試通過只是其中一項證據。

「不看程式碼」比較精確的意思是什麼?

它代表信任來源從逐行理解,移到行為合約、可重跑證據與高風險邊界。工程師仍會讀程式碼,只是不再把時間平均撒在每一行。

哪些任務最適合先交給 Agent?

外部行為穩定、測試充分、可以隔離執行、容易回滾的任務最適合,例如 parser 替換、內部重構、benchmark 建置與機械式跨語言移植。

大型重寫變便宜後,YAGNI 是否還有用?

有。探索與原型可以更便宜,合併到主幹後的維護、安全與值班成本沒有消失。把更多方案做出來,和把更多方案留下來,是兩個決定。

團隊應該用什麼指標評估 Coding Agent?

不要只算產生多少行或完成多少 ticket。比較有用的指標是:一次通過的驗收比例、回歸缺陷、人工介入點、可重跑證據完整度,以及合併後 30 天內的修復成本。

權威引用

Author Insight

Agent 最容易讓團隊誤判的地方,是把「可以做出來」聽成「值得留下來」。我會讓 Agent 多做幾個候選版本,甚至重寫整個模組;進主幹前仍只認合約、證據與可承擔的維護面積。程式碼供給越便宜,刪掉多餘方案的膽量越值錢。

若你的團隊正在把 Codex、Claude Code 或其他 Coding Agent 接進正式開發流程,Tenten 可以協助把任務合約、驗收證據與高風險人工閘門寫成可執行的工作流;可從聯絡頁面提供目前的 repository 與交付限制。

術語表

術語 說明
Coding Agent 能讀取程式庫、修改檔案、執行指令並迭代完成任務的 AI 開發代理
行為合約 對外 API、輸入輸出、錯誤語意與相容性等不可漂移的條件
差異測試 讓新舊實作處理同一批輸入,逐項比較輸出的測試方法
Benchmark 在固定 workload 與環境下測量時間、吞吐量、記憶體或配置次數
爆炸半徑 一項錯誤可能影響的使用者、系統與資料範圍
Share this post
Ewan Mak

I'm a Full Stack Developer with expertise in building modern web applications that fast, secure, and scalable. Crafting seamless user experiences with a passion for headless CMS, Vercel and Cloudflare

Loading...