Skip to content
Dustin's AI Lab
Go back

AI 自我驗證的盲點——為什麼要請一個不知情的 agent 來稽核

AI 很會「看起來完成了」。要抓出它的盲點,不能靠它自己回頭檢查——得引入一個不知情、不繼承上下文、只拿到原則與產出的稽核者。


最近大量用一種工作流:主對話派 subagent 做事,做完再派另一個 subagent 來驗收。跑了一陣子,發現 AI 自我驗證有幾個共通的盲點。歸納成一套原則,記下來。

subagent 會把「刻意的約束」當成冗餘

我在做 harness 精簡,讓 AI 去找出重複、可以刪掉的規則。反覆遇到同一件事:subagent 一直建議刪掉「使用者刻意設下的約束」「skill 的觸發覆蓋面」「比較廣的行為規則」,理由是「看起來重複、用不到」。

問題是,這些東西很多是我刻意放的。它判斷不出「刻意」跟「冗餘」的差別——在它眼裡兩者長得一樣。

最後真正讓行為維持不變的,是人在迴路裡把這些建議擋下來、駁回。教訓很簡單:AI 的優化建議要有人把關,尤其是碰到「刻意設計」的東西。它會用「精簡」的邏輯,把你的設計意圖一起精簡掉。

多階段流程,自查很容易整段跳過

另一次,我跑一個分好幾段的週例行流程。主對話跑完自稱「全部完成」。

實際追下去才發現漏了好幾段:某個分析只做了三分之一、某個報告只生成沒執行、某個驗收整段直接跳過。它不是騙我,是真心覺得做完了。

為什麼會這樣?因為自查發生在同一個主對話脈絡裡。前面跳過某一段時帶著某種偏誤,回頭自查時,它還是用同一套脈絡、同一套偏誤去看——於是跟著一起跳過。盲點在自查時原封不動地被複製了一次。

抓出這些漏洞,靠的是事後追問,加上一個「不繼承上下文的獨立稽核 agent」。

驗證要「不繼承上下文」+「原則式」

從這兩次經驗,我固定下來兩個要點。

第一,稽核的 agent 不繼承上下文。它不知道我前面做了什麼,不知道我想聽什麼答案,才有辦法誠實核對。給它的指令大概是:「你是獨立稽核 agent,不知道任何脈絡。讀規定 → 讀產出 → 逐條核對,找出漏做的、紀錄空泛的、前後不一致的。」

第二,給原則,不要給清單。我給它規則跟 diff,讓它自己判斷哪裡不對。如果我直接餵一份「必須保留的清單」,它就只會照著清單比對,不再動腦——獨立判斷的價值就沒了。原則式才逼得出它真正的審查能力。

技術上還有個小細節:用「一行為單位」做語意比對時 noise 很大,連結構性的行也會被誤報;改用「段落 block」為單位比較準。算是個實作註腳。

核心收束

AI 很會「看起來完成了」。語氣很篤定,格式很完整,但中間缺一塊它自己不會發現。

要對抗這點,不能只靠它回頭檢查。因為它會用犯錯時同一套脈絡來檢查,盲點完全一樣。它不是缺能力,是缺一個外部視角。

真正有效的,是引入一個不知情的稽核者:不繼承上下文,只拿到原則跟產出,逐條去對。這對所有 agentic 工作流都適用,不只是 harness 精簡。只要你讓 AI 連續做了多步、又想確認它真的做完,就值得多花一個 agent 來當那個不知情的人。


Share this post on:

Previous Post
我做了一個「庭皓 SKILL」——把財經 YouTuber 的觀點蒸餾成 AI
Next Post
給 LLM 更好的 context,勝過換更強的模型——repowise 的五層架構