停止相信單次生成的結果;唯有讓多個模型相互碰撞後才能得出結論。這份 Claude Code 技能的設計說明,將 GAN 的對抗性架構移植到推理階段中。
- 作者: Ryousuke Wayama(@wayama_ryousuke)
- 日期: 2026-07-09
- 背景: 概念啟發自 GAN(2023 年預測推文)/ 設計與 Claude Fable 5 腦力激盪
- 儲存庫: https://github.com/makinux/adversarial-panel
背景:為什麼單次答案不夠用
LLM 的回答最危險的時候,不是當它們是錯的,而是當它們 錯了卻依然自信。單一模型的單次生成,在結構上缺乏偵測這種情況的機制。即使有自我批判,生成與批判過程中的盲點仍然相關,因為它們源自相同的權重;此外,已有證據顯示模型存在自我偏好偏誤,會對自己的輸出給予高分。簡而言之,「自己寫自己審」從一開始對任何稽核來說都是利益衝突。
這項技能的靈感來自 GAN。GAN 的本質不只是生成器和判別器相互競爭的結構,而是其背後的原則:偵測比創造更容易 這種不對稱性。與其讓生成器保證自己的正確性,不如讓獨立的對手進行攻擊,只讓存活下來的答案通過,以相同的運算成本獲得更高的品質保證。GAN 透過梯度來執行這個迴圈,而 adversarial-panel 則是透過 自然語言批判 來執行。改變的只是訊號的媒介,遊戲結構保持不變。
然而,單純地並排多個模型是沒有價值的。真正有效的是以下兩個設計特性,而這是該技能刻意設計出來的:
- 錯誤去相關化 — 審查者只有在自己的失敗模式與生成器不同時,才能抓到生成器的疏忽。由於相同模型的專案共享盲點,「全體一致同意」的證據力比表面上看起來要弱。跨越模型系列是核心。
- 驗證優勢 — 駁斥一個給定的答案,比創造答案更容易。因此,評論者被引導去針對可驗證的主張。不是「我覺得這很可疑」,而是「它在輸入 X 上會失敗」——透過複現來反駁,而不僅僅是宣稱。
架構:協調者與專案成員
只有兩種元件。主 session(Claude Code 本身)扮演 協調者,負責進度推進、驗證和整合,而 2 到 4 位 專案成員 負責回應和相互批判。協調者不得透過專案成員的口說出自己的意見(禁止協調者挾持);如果要加入意見,必須標示為「協調者觀點」。

圖 1 — adversarial-panel 的設定。 協調者分發一份自足的簡報(實線),專案成員相互攻擊對方的答案(交叉批判),然後將答案和批判結果回傳給協調者(虛線)。這個迴圈在每一輪中執行。
專案成員的選擇優先考慮 最大化異質性:
- 不同的模型系列 — 透過 Bash 使用外部 CLI,如 Codex。這提供了最強的錯誤去相關化。
- 不同的 Claude 模型 — 透過 agent 工具的模型參數(Opus/Sonnet/Haiku)。
- 相同模型 + 強制方法論分支 — 一個從第一原理論證,一個從基準率(外部觀點)論證,一個只搜尋反證,一個重新執行可驗證的主張。透過 方法 而非僅僅是角色來區分。
預設是 2 位專案成員 × 3 輪。由於成本會隨專案成員數量和輪數增加,只有在使用者要求全面性時,才會擴展到 3–4 位專案成員。
協議:4 輪 + 綜合

圖 2 — 協議流程。 白色代表協調者的任務,紫色代表專案成員的任務。在第 1 輪之後插入一個驗證關卡,以檢查「答案是否具有實質內容」。對於低成本查詢,第 2 輪和第 3 輪可以合併為一輪。
第 0 輪 — 框架設定與必要性判斷
首先,判斷是否應該開啟專案。對於低風險的查詢,或當我們對答案有充分信心時,直接回答,僅將專案作為一個選項呈現。完整的專案僅在 重要、有爭議或可驗證 的查詢時觸發——因為在這些情況下,批判才值得付出成本。
這裡內建了對「分流陷阱」的防禦機制。由於負責把關這個關卡的正是必須抓出盲點的模型,它對任務越有信心,這個關卡就越不容易開啟。因此,如果使用者明確要求啟動專案,無論模型信心高低都會執行;而對於重要查詢,則是根據利害關係的大小來判斷,而非模型的自信心。
接著,撰寫一份自足的簡報。由於子 agent 完全看不到對話上下文,簡報必須包含查詢、背景、限制和輸出格式,再加上指示「將事實與推測分開,並為主要主張附加信心水準和 可證偽條件(哪些觀察結果會推翻這個主張)」。可證偽條件必須具體且可檢驗,例如「在輸入 X 上失敗」或「與來源 Y 矛盾」;像「如果出現相反的證據」這種泛泛之詞則被視為缺失資料(校準表演)。
第 1 輪 — 獨立答案(平行/盲測)
同時啟動所有專案成員。絕對要求是 沒有人能看到其他人的答案;看到他人答案的專案成員會產生定錨效應,從而破壞獨立性的前提。
回傳後,驗證關卡:狀態行或錯誤轉儲不是答案。將它們包含在會議記錄中,會導致後續輪次對虛無的內容進行批判(稍後描述的幽靈專案成員問題)。失敗的專案成員會重試;如果失敗兩次,則將異質性等級降低一級以繼續,並向使用者揭露實際的專案設定。
第 2 輪 — 交叉批判(平行)
每個專案成員都會收到 其他 專案成員的答案。他們必須引用具體主張進行攻擊——事實錯誤、證據薄弱、邏輯跳躍、被忽略的替代方案或隱含假設。可驗證的主張需透過複現來反駁(執行程式碼、重新計算數值、檢查來源)。禁止膨脹同意、摘要或讚美。無論是讓步還是攻擊,都需要提出理由。
第 3 輪 — 最終觀點(平行)
每個專案成員都會收到針對自己的批評。他們必須對有效的攻擊做出讓步(附上理由,而非社交禮儀),對幸存的主張做出有理由的辯護,並說明剩餘的不確定性,以及校準後的信心和可證偽條件。沒有理由就完全轉變立場,是奉承的警訊,因此在接受之前,轉變的依據會受到質疑。
綜合 — 由協調者整合
最終輸出由三部分組成:共識點 / 衝突點 / 結論。
- 共識點 — 附帶最強的單一支持論點,並說明這個收斂是強證據(異質性專案)還是弱證據(同質性專案,可能存在共享盲點)。
- 衝突點 — 以「誰、什麼事、用什麼證據」的方式撰寫,加上協調者的裁決,並根據證據強度加權。如果一方有可複現的證據,而另一方只有直覺,則做出裁決。平等地呈現雙方觀點不是中立,而是 虛假的平衡。
- 結論 — 包含信心水準、可能改變結論的條件、值得保留的少數意見,以及已接受/已拒絕批判的稽核軌跡。
三個需始終維持的不變準則
不變準則 | 內容 |
|---|---|
獨立性 | 第 1 輪的答案必須在盲測下生成。看到他人答案的專案成員會產生定錨效應,不再是獨立樣本。 |
對抗性 | 沒有提出新論點的同意,視為該輪失敗。強制指示:「反對至少一個核心主張;把它找出來。」 |
不平均化 | 綜合不是取平均。衝突被保留下來並進行裁決。一旦你進行加總除以二,專案所產生的訊號就消失了。 |
與 GAN 的對應關係
將「對抗性生成移植到推理」的設計意圖可以映射如下。關鍵在於專案端的失敗模式與已知的 GAN 失敗模式完美對應。
GAN(訓練) | adversarial-panel(推理) |
|---|---|
生成器 | 專案成員的獨立答案(第 1 輪) |
判別器 | 交叉批判中的攻擊方(第 2 輪) |
梯度更新 | 自然語言批判以及有理有據的讓步/辯護(第 3 輪) |
極小化極大均衡 | 協調者的綜合與裁決(綜合階段) |
判別器優勢 | 驗證不對稱性——偵測比創造更容易 |
無權重共享 | 模型系列分離——錯誤去相關化 |
模式崩潰 | 奉承性收斂(相互同意) |
失敗模式與應對措施——皆在生產環境中觀察到
這份技能反模式的收集,不是一份理論擔憂的清單,而是一份遇到的真實地雷目錄。
- 幽靈專案成員 狀態字串或錯誤轉儲混入會議記錄中被當作答案,導致所有後續輪次都在與空氣辯論。 → 應對措施: 在第 1 輪後立即設置驗證關卡。強制外部 CLI 進行前台執行,並禁止在完成前就回傳的包裝器。
- 奉承性收斂 每個人在第 2 輪中同意,沒有提出新的論點。等同於 GAN 的模式崩潰。 → 應對措施: 在批判提示中加入「你正在反對至少一個核心主張。把它找出來」。
- 協調者挾持 協調者讓專案說出自己先前的意見,並透過共識的權威將其美化。 → 應對措施: 協調者觀點必須用標籤分離。
- 信心表演 沒有可證偽條件的數值信心。除非你能說出什麼觀察結果會讓你撤回它,否則「80% 信心」毫無意義。 → 應對措施: 將沒有可證偽條件的信心視為缺失。
- 多樣性幻覺 將同一模型的不同角色視為獨立審查者。「紅隊」這個角色名稱並不會使錯誤去相關化——只有不同的模型、不同的方法論、或對主張的實際複現才能創造去相關化。 → 應對措施: 明確地將同質性專案中的收斂降級為弱證據。
使用案例與如何呼叫它
該技能本身發布在 makinux/adversarial-panel。透過將其放置在 Claude Code 的 ~/.claude/skills/adversarial-panel/SKILL.md,可以透過明確呼叫或自然語言觸發,例如:
「讓 Opus 和 Codex 對這個設計進行對抗性審查。」「真的嗎?讓他們辯論以確保萬無一失。」/ 「red-team 這個」/ 「我想要第二意見。」當你在重要問題上追問確定性,說出「你確定嗎?」時,它也積極地成為觸發的候選。
它適用於 重要、有爭議或可驗證的查詢。例如架構選擇、故障的根本原因假設、技術預測或驗證研究結論。相反地,在低風險查詢上開啟專案是浪費成本,這會由第 0 輪的分流機制過濾掉。成本與專案成員數量 × 輪數成正比;2×3 是日常使用的標準,關鍵時刻則擴展到 3–4。
也定義了針對不佳環境的降級方案:
- 無子 agent 機制 → 替換為順序執行中的獨立章節(效果較弱,因為權重和上下文是共享的——在綜合中註記)。
- 僅有單一系列可用 → 降至方法論分支(第三層級),並降低收斂的證據力。
- 外部 CLI 失敗兩次 → 移除該專案成員,繼續執行,並揭露。
根據實際測量,而非意圖,報告實際運行的層級——這是可稽核性的關鍵。
結論:從推理到訓練
當我在 2023 年預測「對抗性生成是 LLM 的下一個方向」時,我心中想的是類似 GAN 的訓練方案。
https://x.com/wayama_ryousuke/status/1658698942161510400
三年後檢視這個答案,對抗性結構首先在 推理(自然語言批判) 中實現,而非訓練(梯度)。像 CriticGPT 這樣的批判專用模型、多 agent 辯論研究、以及編碼中的交叉審查操作——業界正從不同的入口匯聚到相同的結構上。
下一個階段很可能是重新整合。雖然推理時的審查結果目前是暫時性的,但將批判轉換為 RL 獎勵訊號(RLAIF 路徑)可以讓對抗性結果累積到權重中——回到 GAN 最初的做法。如果我們達到「用對抗性審查的結果來訓練下一個模型」的階段,那麼這項技能將成為一個過渡時期的原型。在此之前,在押注單次答案之前,讓模型相互碰撞是非常值得的。
這篇文章是 Claude Code 技能 adversarial-panel(SKILL.md)的設計說明。概念:[@wayama_ryousuke](https://x.com/@wayama_ryousuke)(靈感來自 GAN,設計與 Claude Fable 5 腦力激盪)。圖表遵循執行者/顧問 agent 設定的慣例。





