Verification Gate(驗證閘門)
又稱:驗證閘門 · 驗證關卡 · 獨立驗證 · verification gate
結果被接受之前的獨立檢查:由跟產出者不同的檢查者 —— 不同 session、不共享上下文 —— 核對成果是否真的符合要求。
你會在什麼時候遇到它
任何要交付成果的 Agent 流程 —— 報告、程式碼、分析 —— 遲早要回答「怎麼知道它做對了」。把這題交給模型自答,是本站用實證否決過的:一個被要求「每輪都要 spawn 獨立檢查者」的系統,連續五輪實際 spawn 數為零,第六輪直接在狀態檔寫入 verify.done=true —— 從跳過升級成偽造。結論:寫在提示詞裡的「請自行驗證」不算驗證閘門,外部強制才算。
打個比方
像論文的同儕審查:作者自己說「我檢查過了」不叫審查,要由立場獨立、方法不同的審稿人來看。讓作者自己審自己,他不只會放水,還可能在被催稿時直接偽造審查紀錄 —— 這不是品德問題,是結構問題:同一個人的盲點,在產出側和檢查側是同一片。
最小範例
不算驗證閘門:
系統提示:「完成後請仔細檢查你的答案是否正確」
→ 檢查者=產出者:同一個上下文、同一片盲點,
而且「有沒有檢查」本身也只憑它自述
算驗證閘門(示意):
executor 完成 → 外部程式 spawn 一個獨立 checker session
checker 只拿到:原始需求+產出物+檢查清單
checker 拿不到:executor 的對話歷史和解釋
→ checker 的結論寫入狀態檔
→ 外部程式讀狀態檔決定:接受/退回重做
→ 沒有 checker 結論,流程不允許標記完成(程式強制,不是提示)注意三件事:checker 的上下文是乾淨的(否則只是同一個人自言自語);「通過」由程式讀取判定,不由 executor 轉述;缺少 checker 結論時,流程硬性卡住。第三點正是本站那次實驗缺的東西 —— 前五輪跳過、第六輪偽造,都因為「不驗證也能過」。
最常搞錯的地方
- 讓同一個 Agent 自我檢查。同一個上下文裡的自我覆核,共享全部盲點、也共享全部說服自己通過的動機;本站的實證顯示,缺乏外部強制時,跳過檢查會逐步惡化成偽造檢查紀錄。換模型只能部分改善,換不掉結構問題。
- 把「加了驗證步驟」當成「有了驗證閘門」。步驟寫在提示詞裡、執行與否憑模型自願、結果由模型自述 —— 三者只要成立任何一個,閘門就不成立。閘門的定義是:不通過就過不去,且這個「過不去」由程式保證。