脈絡,而非管控
你代理提示詞裡的每一條規則,最初都源自一個 bug。
有人看到不良行為,寫了一條規則,然後繼續往前走。另一個人如法炮製。第三個人加了一條「絕對不能做 X」,只因為某個週二模型出現了一次奇怪的舉動。沒有人刪掉任何東西。
六個月後,代理把大部分的上下文視窗都耗在翻閱規則手冊上,而不是真正思考手頭的任務。
這就是管控式思維。我認為這是團隊在打造 AI 代理時最常犯的設計錯誤之一。
一個小例子,揭示更大的模式
我們曾遇到一個問題:由排程任務觸發的代理,在執行過程中不斷建立新的排程任務,形成無限遞迴,而且還帶有真實世界的副作用。
面對這個問題,有兩種應對方式。
管控式: 直接禁止。寫程式碼阻止排程建立排程。在提示詞中加一條規則:「絕對不能在排程內建立排程。」上線。
脈絡式: 告訴代理實際發生了什麼。
你是由太平洋時間凌晨 3:00 的排程任務觸發的。排程 ID:sched_29x8f。排程執行是一次具有明確範圍的隔離執行,該範圍由使用者最初授權。建立新的排程任務將使範圍超出原始授權。
第一種方式修補了一個行為。第二種方式給了代理一個對當前情境的理解模型。
有了這個模型,代理也能推理周邊的問題:我應該在凌晨 3 點發送通知嗎?我應該建立一個使用者沒有明確要求的後續流程嗎?我應該修改超出本次執行範圍的東西嗎?
不需要任何規則,代理自己想清楚了。
很多團隊在需要脈絡的時候,卻伸手去拿管控。
同樣的區別,也出現在提示詞內部
這不只是系統層面的執行問題。脈絡與管控的分野,同樣存在於提示詞內部。
脈絡式提示詞: 以事實為主,意見極少:
你正在執行,因為一個排程任務觸發了你。 觸發時間:北京時間凌晨 3:00。 任務 ID:sched_29x8f。 使用者授權本次執行的範圍是特定的。
管控式提示詞: 充滿主觀判斷,規定性強:
避免建立排程。 你應該用工具 X 通知使用者。 除非 Z,否則絕對不能做 Y。
規定性指令有時是有用的。但很多時候,它們只是在彌補缺失的事實。而一旦你開始這樣彌補,就會越陷越深。
提示詞如何變成官僚體制
這是更深層的失敗模式。
團隊發現問題,加一條規則。然後再加一條。又加一條。每一條都修補了一個局部問題,但合在一起,卻建立了一個充滿代理指標的系統。
貝佐斯在 2016 年的股東信中描述了這個模式:好的流程是為了服務你,讓你能服務客戶。但如果不小心,流程本身就會變成目的。
這正是代理系統中發生的事。
規則本身不是目的。規則是你想要的結果的代理指標。而代理指標會不斷疊加。一條規則製造出邊緣案例,需要更多規則來處理。很快,代理就要在層層累積的指令中艱難推理,而每一層都是因為某個早已無人記得的歷史原因而加上去的。
在人類組織中,這會變成官僚體制。在代理系統中,這會變成一個塞滿傷疤組織的巨大提示詞。
事實會老化,意見會腐爛
「本次執行由凌晨 3 點的排程任務觸發」這樣的事實是穩定的。無論哪個模型讀到它——Claude、GPT、Gemini,或下個季度發布的任何模型——它都是真的。
「你應該避免建立子排程」這樣的陳述則很脆弱。它依賴於詮釋。在某個情境下可能有效,在另一個情境下卻可能悄悄失靈。
當你更換模型時,提示詞中的每一個意見都是潛在的地雷。新模型有不同的推理傾向,你精心校準的「避免」對它來說可能意味著完全不同的東西。
但關於環境、權限、範圍和限制的具體事實,往往能跨模型、跨邊緣案例地通用。這就是為什麼事實是更好的建材。
模型怪癖陷阱
這或許是管控問題中最隱蔽的版本:團隊不斷把暫時性的模型缺陷,固化成永久性的系統結構。
模型在某個狹窄的案例中表現不佳。團隊加了一個護欄:一個提示詞補丁、一個程式碼檢查、一個奇怪的分支,它存在的唯一目的就是阻止某一個特定的失敗模式。
這個補丁是一個賭注,賭的是這個怪癖會持續存在。它幾乎從不會。
三個月後,模型更新了。原本的行為消失了。但補丁還在。沒有人想刪掉它,因為也許它當初是有原因的。
這就是系統提示詞變成遺留程式碼的過程。
抽象地說,我們很容易認識到這種危險。但在實踐中,一遍又一遍地在提示詞中修補 Sonnet 當前的推理傾向,其實是同一個模式換了個面目。
記錄穩定的系統行為是有價值的。修補模型的推理傾向則是一場跑步機。 模型的變化速度,會比你維護補丁的速度更快。
一個好的測試案例:權限被拒
在工具診斷中,你可以清楚地看到這種區別。當代理遇到權限錯誤時:
管控式:
TOKEN 缺失。執行「zero permissions request gmail.send」來修復。
直接,但代理什麼都沒學到。下次遇到不同的權限錯誤,它還是束手無策。
脈絡式:
process.env.GMAIL_TOKEN → 存在 zero connectors inspect gmail → 已連接 zero permissions inspect gmail.send → 被拒絕
選項:
- 請求使用者授權 gmail.send
- 如果存在已授權的路徑,則使用該路徑
代理現在知道 token 存在、連接器正常運作、而特定權限被拒絕。它理解了系統的狀態,能夠推理規則制定者從未預料到的新情境。
啟發式原則
這是我一再回想的一點:
每當你準備在提示詞中寫下「不要」、「避免」或「絕對不能」的時候,停下來。問自己:這條規則在彌補什麼缺失的事實?
通常都有一個缺失的事實。代理不了解自己所處的環境、使用者授權了什麼、哪些操作是不可逆的,或者為什麼這次執行與普通的對話互動不同。
把那個事實寫下來。刪掉那條規則。
有時你仍然會需要那個限制,尤其是涉及破壞性操作、資金移動或安全邊界的情況。硬性管控仍然重要。
但很多提示詞規則並不是真正的邊界。它們是對缺失理解的彌補。而正是這些規則,會不斷堆積、不斷腐爛。
目標
目標不是一個背熟了檢查清單的代理。
目標是一個對自身處境有足夠理解、能在清晰邊界內做出良好決策的代理。
一種哲學透過堆疊規則來管控行為。另一種哲學透過讓世界變得清晰可讀來改善行為。
前者趨向官僚體制。後者趨向理解。
建立脈絡。刪除傷疤組織。打造真正會思考的代理。





