問題
我用 6 個平行 agent,把 repo 裡的筆記深度併進 59 篇部落格文章。每個 agent 都自報「Java 逐行追過、無 bug」,我自己也做了結構 QA:code fence、frontmatter、視覺化連結、wikilink 全部通過。
但事後派 5 個 reviewer 逐字重審其中 13 篇,抓到 4 個編不過或功能錯的 Java,外加 1 個誤導讀者的範例。都出在幾篇演算法文章的 Java 範例裡,形態大致是:
- 方法裡用了從沒宣告的變數,根本編不過
- 查詢/更新方法用了未定義的區間變數,一樣編不過
- 某個輔助連結從來沒被建構,導致一整類匹配結果全部漏報,另外還有一個未定義的變數
- 差分陣列還原時漏了第一項,還原結果不對
- 一個依賴排序的範例,文中宣稱的輸出與程式實際跑出來的結果相反
最刺的一點:我自己抽讀其中一篇時,也漏看了那個未宣告的變數。
解法
產內容 ≠ 內容正確。技術內容(尤其含 code)從 agent 產出之後,要再加一道獨立的、對抗性的正確性 review:多個 reviewer 逐字讀、手追 code 邏輯、預設心態是找碴。這一輪 5 個 reviewer × 13 篇抓出來的問題,結構 QA 和 agent 自報完全沒抓到。
為什麼這樣解
- 結構 QA 只驗格式:有沒有 fence、連結解不解析。它驗不了「code 跑不跑、邏輯對不對」。結構全綠,只代表格式成立。
- agent 的自報不可信:說「我追過、無 bug」的,跟寫 code 的是同一個 agent,有確認偏誤。換成獨立 reviewer 才有對抗性。
- 抽讀也會漏:未宣告的變數藏在一個沒被特別注意的分支裡就看不到。要逐字讀、手追,才穩。
怎麼預防再次發生
- Pipeline 心法:產(agent)→ 結構 QA(我)→ 對抗性正確性 review(另一批 agent,預設找碴)→ 才算完成。少了第三道,含 code 的內容不要宣告完成。
- reviewer 的指令要明訂:「預設心態是找碴,不要說看起來不錯」「手追 code,找 off-by-one、未定義變數、編不編得過」。
- 對「會被讀者直接複製貼上的核心模板 code」特別要盯——那種錯了傷害最大。
這件事不只發生在平行 agent 身上:任何由 LLM 產出的技術內容,都適用同一條——產出的那一方說沒問題、格式檢查也過了,都不等於內容正確。
相關主題
- 驗收假綠形態目錄:結構 QA 全過但內容錯,就是「檢查只驗得到格式」的一種假綠
- 反向驗證也會說謊:連驗證動作本身都要確認它有效
- Coding Assistant Anti-patterns:AI 產出表面看起來正常,不代表 code 正常