昨天講完「違規但結果正確」該怎麼處理,今天要往前退一步:與其事後判斷該不該接受違規,不如先想辦法讓違規發生的機率降到最低。
第一次委派 agent 執行單一任務時,直覺的寫法是在指令裡加一句「請只做這件事」。聽起來已經講得很清楚了——但實際跑過幾次就會發現,這句話幾乎攔不住任何逾越行為。「只做這件事」是一句期待,不是一道邊界。它沒有告訴 agent 具體有哪些常見的逾越管道,也沒有明講違反之後該怎麼處理,agent 在遇到「這個任務好像該連帶做一下別的事」的判斷點時,完全沒有明確的訊號告訴它該停下來。
逾越範圍不是單一原因造成的,不同管道要用不同的具體措辭去堵:
管道一:agent 覺得「幫忙做完整套」比較貼心。 一個任務如果邏輯上跟另外幾個任務有關聯,agent 容易主動把相關的都做掉,覺得這樣「更有效率」。要堵住這個管道,指令裡要明講「只寫這一個檔案,不要碰或覆寫任何其他既有檔案」——把「相關」跟「該不該做」明確切開。
管道二:agent 想用委派解決問題,但工具鏈上剛好無法委派。 有些情況下 agent 原本想把子任務再分給別的執行單位,但因為某種限制走不通,於是自己動手把子任務也做了,範圍就這樣悄悄擴大。要堵住這個管道,指令裡要明講「不要委派子任務、不要委派其他 agent」——不是禁止委派這件事本身合不合理,是禁止「因為委派走不通就自己動手」這條退路。
管道三:任務完成後,agent 覺得「順便看一下有沒有其他地方也要改」。 這是最隱蔽的一種——agent 已經把指定的任務做完了,但在檢查產出的過程中,順手動了旁邊看起來相關的東西。要堵住這個管道,指令裡要明講「完成後立刻結束回報,不要做任何額外的事」——把「任務完成」的時間點定義得很清楚,一過那個點就不該再有任何動作。
管道四:檔名不夠精確,agent 自己判斷該取什麼名字。 如果指令只講「寫一篇關於某主題的文章」,agent 可能自己想一個看起來更貼切的檔名,跟其他人事先協調好的命名不一致,事後就變成兩份內容相近但檔名不同的檔案。要堵住這個管道,指令裡要明講「檔名必須完全照下面指定的路徑,不要自己改檔名」。
❌ 籠統的指派:
「請幫我處理某個主題的內容,只做這件事就好。」
→ 沒有講清楚「這件事」的邊界在哪裡,
agent 遇到「這個算不算這件事的一部分」的判斷點時,
完全沒有依據,容易往「應該算」的方向猜
✅ 具體堵住逾越管道的指派:
「只寫這一個檔案,檔名必須完全照指定的路徑,不要自己改檔名。
不要委派子任務、不要委派其他 agent。
不要碰或覆寫任何其他既有檔案。
完成後立刻結束回報,不要做任何額外的事。」
→ 每一句話對應一個具體的逾越管道,
agent 遇到判斷點時有明確的規則可以依循,
不用靠自己猜「這樣算不算超出範圍」
這些具體措辭不是一次寫好就永遠夠用的清單,是從實際發生過的逾越案例反推出來的——每次發現一種新的逾越管道,就該把對應的堵法加進委派指令的固定寫法裡,讓下一次的委派自動涵蓋這個教訓。
第一次看到這種列了四五條具體限制的委派指令,會覺得囉唆、覺得「講一句『只做這件事』不就好了」。但每一條具體限制,背後都對應一次真的發生過的逾越——囉唆的具體規則,是用一次次的教訓換來的,不是憑空想像出來的保險措施。 省略掉任何一條,都是在賭這次不會剛好踩到那個管道。
這也解釋了為什麼委派指令沒辦法「寫一次、用一輩子」——隨著委派的任務類型越來越多、規模越來越大,會遇到越來越多種沒預料到的逾越方式,每次都要把新學到的教訓補進固定寫法裡,這份清單會持續變長,不是一次到位的產物。
回想你上一次委派別人(不管是 AI 還是真人)做一件事:你的指令裡有沒有明確講到「這件事的邊界在哪裡」,還是只講了「請做這件事」?如果對方後來做超出你預期的範圍,你事後回頭看,能不能指出是指令裡的哪一句話不夠具體?
明天要講一個更難察覺的協作情境:不是自己派出的 agent 逾越範圍,而是發現真的有另一個完全獨立的協作過程,在同一個工作目錄裡同時進行——這種情況該怎麼發現、發現後該怎麼處理。