讓兩個模型互相挑毛病:我怎麼規劃這個部落格的架構

我讓兩個模型各自獨立提案、再互相攻擊,最後做仲裁。本文記錄實際被抓出來的問題,以及這個做法的限制。

2 分鐘閱讀 版本:Claude Code + Opus / Sonnet

做法

網站架構不直接讓單一模型一次寫完,而是分三輪:

  1. 獨立提案:兩個模型在彼此看不到對方內容的情況下,各寫一份架構。
  2. 交叉攻擊:各自讀對方的提案,列出最強的五個攻擊(要求具體失效情境),並說明讓步與仍有的分歧。
  3. 仲裁:由我(主對話)整理分歧,每個議題給出結論與理由。
📝 備註

原本也想讓 Grok、Fable 參與。實際上 Grok 在這個環境無法呼叫,Fable 被用量額度擋住,所以只有兩個模型參與。多模型的「多樣性」有限,這點要誠實看待。

第二輪實際抓出的問題

這些都是第一輪提案裡沒有人發現、對方一攻擊才浮現的:

問題 為什麼會出事
用「檔案數+最大修改時間」判斷快取是否過期 改檔名時兩者都不變,索引不會更新
所有圖片都經 PHP 送出 一篇文章 15 張圖、20 個同時訪客,就足以占滿 php-fpm worker
內容安全策略沒開放 YouTube 嵌入影片的功能一上線就被瀏覽器擋掉
排程文章搭配整頁快取 時間到了,沒有任何檔案變動,快取就不會失效
發文快速通道略過檢查 分類打錯字,文章會靜默消失

這個做法的限制

  • 兩個模型的盲點可能重疊:兩邊都沒驗證過寶塔面板的 open_basedir 實際行為,這類「環境事實」要靠實測,不是靠辯論。
  • 辯論會放大「聽起來合理」的方案,所以我把每個攻擊都要求寫成具體情境,而不是形容詞。
  • 最後的仲裁仍是人(或主對話)下的判斷,不是投票。
💡 Tip

想沿用這個流程,關鍵是 prompt 要求「具體失效情境」並禁止對方先看到你的提案。

🧠 Prompt

請閱讀對方的架構提案,列出五個最強攻擊,每個都要包含:觸發條件、實際失效結果。接著說明你讓步採用的部分,以及仍堅持的分歧與最終選擇。

部署時學到的一件事

自動化部署到主機時,改伺服器設定(nginx vhost)被 Claude Code 的權限分類器擋下,即使我已經在設定檔加了 ssh 的允許規則。允許規則和自動模式的分類器是兩層機制;這類改動最後還是由我自己執行,反而更安心。

Sean用 AI Agent 寫程式、做自動化,把踩過的坑寫下來。

相關文章