「派一個 agent 去查文章裡有沒有技術錯誤,它看到問題,順手改掉不就好了,何必還要多一趟『回報給我,我再決定要不要改』?」
這是我第一次設計事實查核流程時,內心也閃過的念頭。看起來確實省一道手續——agent 找到問題的當下,就是它最清楚上下文的時候,讓它直接動手改,感覺理所當然。但實際跑過幾次委派流程之後,我改成了一條明確的規則:任何負責「查核」的 agent,一律只能讀、不能寫。 這篇要講清楚為什麼。
表面上看,「發現一個錯誤」跟「修正這個錯誤」像是同一個動作的前後兩步,但仔細拆開會發現,這兩件事需要的判斷標準不一樣。
找出問題只需要回答一個問題:這裡的陳述跟權威來源/客觀事實對不對得上。這件事有明確的對錯,agent 可以獨立完成。
決定怎麼改卻牽涉到更多——這個錯誤是客觀無爭議的(版本號記錯、函式簽章寫反),還是判斷空間比較大的(某個類比恰不恰當、要不要多加一句但書)?如果是後者,該怎麼改、要不要改,往往需要人來拿主意,不是 agent 自己能決定的。
如果讓同一個 agent 一次做完這兩件事,等於是把「這件事該不該由 AI 自己拍板」這個問題,悄悄外包給了 AI 自己——它會用它自己的判斷標準,決定哪些算「客觀錯誤可以直接改」,而協調者完全看不到這個判斷過程,只會看到一個已經改完的結果。
假設委派一個 agent 去查一批文章裡的技術主張。指令只寫了「查完之後把結果回報給我」,沒有明講能不能動手改。這個 agent 查完之後,發現了三種情況:一個明顯的版本號錯誤、一個措辭稍微誇大的敘述、一個看起來像錯誤但其實只是換了個角度描述同一件事。
它把三個都當成「錯誤」直接改掉,回報時只說「查核完成,修正了三處」。
協調者這時候完全沒辦法分辨:這三處裡有沒有其中一個其實不該改、只是這個 agent 判斷錯了?想確認,只能重新讀一次改動前後的完整內容,等於把原本該省下來的查核工作,又做了一次。「查完直接改」看起來省了一道手續,實際上是把「協調者要親自複查」這個成本轉嫁到了後面,而且複查的難度比查核本身更高——因為原始狀態已經被覆蓋掉了。
用一組對照來看這個差異:
❌ 查完直接動手改:
agent 回報:「查核完成,修正了 3 處錯誤。」
→ 協調者看不到「這 3 處原本各自是什麼樣的問題」,
也看不到 agent 判斷「這算客觀錯誤還是判斷空間大」的依據,
想確認只能重新讀一次改動前後的內容
✅ 只讀不寫,回報完整清單:
agent 回報:
「1. [檔案:行號] 版本號寫錯,來源:官方文件連結 → 建議直接修正
2. [檔案:行號] 這個類比可能不夠精確,附查證來源 → 需要你判斷要不要改
3. [檔案:行號] 查證後其實沒有問題,只是描述角度不同 → 不需要修改」
→ 協調者可以直接看著這份清單,
對第 1 項直接動手、對第 2 項判斷或詢問使用者、
對第 3 項確認不用處理,三種情況分得清清楚楚
「只讀不寫」這條限制真正保護的不是檔案本身,是協調者的判斷權——它確保「這裡有沒有問題」跟「這個問題該怎麼處理」這兩個決定,不會被同一次動作悄悄綁在一起做完。
光是心裡想著「這個 agent 不要亂改」還不夠,這條規則要明確寫進委派指令裡,而且最好用強調過的措辭,因為 agent 在完成任務的過程中,很容易把「我發現問題」自然延伸成「我順手解決」。具體的寫法通常包含三個要素:
這三個要素缺一不可——只講「不要改檔案」沒有講清楚為什麼,agent 遇到「這個錯誤看起來很明顯」的情況時,還是容易忍不住動手;只要求「回報結果」但沒規定格式,回報可能會太簡略,協調者一樣要重新查證一次才能判斷。
回想你上一次委派別人(不管是 AI 還是團隊裡的人)去「檢查」某件事的時候:你的指令有沒有明確講清楚「檢查完之後是要回報給我,還是可以直接動手處理」?如果沒有講清楚,對方多半會照著自己覺得「比較有效率」的方式去做,而那個判斷標準未必跟你想要的一樣。
明天要看一個更棘手的情況:一個 agent 明明被要求只讀不寫,卻還是違反指示動手改了——而改的內容,剛好是對的。這種時候該怎麼處理,比單純的「agent 犯錯」複雜得多。