CLI 裡加規範檢查,比靠 prompt 調參更能穩定 agent 輸出

在 agent 架構裡,比起在 prompt 裡堆砌規則,在 CLI 執行層加入自動驗證和子代理分工,更能穩定輸出質量,尤其在成本優化的場景。

CLI 裡加規範檢查,比靠 prompt 調參更能穩定 agent 輸出

問題在結構,不在模型

我看過很多人在 prompt 裡堆砌各種指令,試圖讓 LLM agent 更「守規矩」。什麼「你必須用 JSON 格式」、「每次回應不超過 200 字」、「一定要先驗證再執行」。結果呢?模型還是會偶爾出軌,尤其在高壓縮、快速推理的場景。

根本原因是:你在用自然語言去約束一個機率模型。那就像用口頭約定去約束一個沒有 type system 的程式——理論上可以,實際上靠不住。

把驗證邏輯搬到執行層

更可靠的方法是在 CLI 層加入自動規範檢查。這不是新概念,但在 agent 架構裡才真正有價值。

具體做法:

  • 輸出檢查 — agent 生成的每個回應,先經過 schema validator。不符合就直接拒絕,讓 agent 重新生成,而不是猜測它的意圖。
  • 子代理分工 — 不是一個 agent 做所有事,而是把不同職責拆成小 agent。比如一個負責解析輸入、一個負責決策、一個負責格式化輸出。每個 agent 的約束條件更明確,出錯機率更低。
  • 中間狀態持久化 — 每個檢查點存下來,這樣如果某一步失敗,可以直接從那裡重試,不用全部重來。

為什麼這樣做能降低「壓縮噪音」

LLM 在快速推理、低溫度設定下,容易因為 token 預算緊張或上下文長度限制而輸出不規範的結果。這不是模型爛,是約束條件變了。

把規範檢查從 prompt 層移到程式層,等於是:

  • 你不再依賴模型自己理解並遵守規則
  • 你明確定義了「合法的輸出」是什麼,用 code 去驗證
  • 失敗時有明確的重試策略,而不是祈禱下一次會好一點

結果就是回應更一致,特別是在成本敏感的場景(比如需要快速推理、token 用量要控制)。

實踐上的一個細節

子代理的分工要仔細設計。不是分得越細越好,而是要讓每個 agent 的職責邊界清楚。一個 agent 如果要同時做「理解」、「決策」、「驗證」三件事,反而容易亂。

我的經驗是:先用一個 agent 試,遇到某一類錯誤反覆出現,再考慮把那部分拆出去。不要一開始就設計成五層 agent。

這也是為什麼 CLI 層的檢查重要——它是最後一道防線。即使 agent 邏輯再複雜,到了執行層,你還有機會說「不,這不符合規範」。


我是江中喬,一位具有 TPM 與產品管理背景的 AI 系統建構者,目前專注於 AI 認知增強系統與多 Agent 協作架構的設計與實踐。

原始來源:https://www.threads.com/@partner_by_closure/post/DVroIvpkyEm