Agent 時代的校正難題:為什麼它會一再犯下相同錯誤?

Agent 為什麼知道失敗後,仍會反覆採取相同策略?從自我反思的限制、錯誤記憶的強化,到 mk-agentos Corrective Trace,探討如何建立可觀測、可撤銷的校正回路。

Agent 時代的校正難題:為什麼它會一再犯下相同錯誤?

當 AI Agent 開始操作工具、修改程式碼,甚至跨越多個 session 累積記憶之後,一個令人困擾的現象會變得越來越明顯:它不是不知道剛才失敗了,而是知道失敗後,仍然用幾乎相同的方法再做一次。

有時候只是重新執行同一條命令;有時候它會換一種說法,底層假設卻完全沒有改變。更麻煩的是,每次重試都會留下新的對話、推論與記憶,讓原本未經驗證的判斷看起來越來越像事實。

這不只是「模型不夠聰明」。真正的問題是:Agent 系統可能把自己的輸出,變成下一輪決策的證據,形成一個錯誤的自我強化回路。

為什麼 Agent 知道失敗,卻還會重複同一個動作?

LLM 本質上是在既有上下文中預測下一步。當一次操作失敗後,如果系統只是把錯誤訊息追加到對話裡,卻沒有明確改寫問題假設、標記已失敗路徑,或要求提出新的可驗證差異,那麼下一輪生成仍會受到前一輪推理軌跡的強烈影響。

換句話說,Agent 看到的不是一張乾淨的問題描述,而是一段已經朝某個方向傾斜的歷史。前一次的工具選擇、參數與解釋,都會繼續留在上下文中。模型即使說「我要換一個方法」,也可能只改變表面措辭,實際執行的仍是相同策略。

近期針對 Web Agent 的研究也觀察到類似現象。StressWeb 將連續相同操作視為一項失敗訊號,並發現在語意擾動下,Agent 更容易陷入持續的 action loop。這提醒我們:重複不一定只是偶發的生成瑕疵,也可能是環境回饋、上下文累積與決策策略共同造成的 policy collapse。

「請你反省一下」為什麼不一定有用?

一個直覺做法,是要求模型檢討自己的答案。

ReflexionSelf-Refine 都顯示,語言化回饋與反覆修訂可以提升特定任務的表現。這也是許多 Agent framework 加入 reflection、critic 或 episodic memory 的理論基礎。

但關鍵不在於有沒有反思,而在於反思依據是什麼。

Large Language Models Cannot Self-Correct Reasoning Yet 指出,在缺乏外部回饋時,模型的內在自我校正可能無法改善推理,甚至讓結果退步。2026 年的工具使用研究 Do LLMs Catch Their Own Mistakes? 也發現,模型辨識自己造成的工具錯誤,比評論他人的錯誤更困難。

這其實不難理解。如果同一個模型同時扮演行動者、批評者與裁判,它可能會沿用同一組盲點。反思文字因此不等於校正證據;一段聽起來合理的檢討,也可能只是替原本的錯誤補上一個更完整的故事。

Agent 真正需要的不是更多自我解釋,而是能夠推翻自身假設的外部證據。

記憶為什麼可能讓錯誤越來越穩固?

Agent memory 經常被視為解決上下文限制的方法:保存成功經驗、抽取規則,下一次遇到相似問題時再取回。

但如果寫入記憶前沒有區分「發生過的事」「Agent 的解釋」與「已驗證的結論」,記憶就可能把一次錯誤歸因保存成長期規則。未來檢索到這段內容時,模型又會把它當成先驗知識,形成「錯誤推論 → 記憶寫入 → 再次檢索 → 更相信原推論」的回路。

2026 年的研究 Useful Memories Become Faulty When Continuously Updated by LLMs 進一步指出,持續由 LLM 整併經驗所產生的 consolidated memory,效用可能先上升、之後下降;研究者因此主張保留原始 episode 作為第一級證據,並對 consolidation 設置明確 gate。

這也是為什麼記憶治理不能只問「要記住什麼」,還必須問:

  • 這是原始觀察、Agent 假設,還是已驗證結論?
  • 它適用於哪個 session、環境與問題版本?
  • 新證據出現時,誰有權修正或撤銷?
  • 一段失敗經驗可以影響未來,但能不能直接成為未來的規則?

如何建立「反向自我強化」的校正機制?

我最近在 mk-agentos 做了一個 Corrective Trace 的 offline shadow spike。它目前不會自動阻擋 Agent,也不宣稱能讀懂模型的內部信念;它只記錄外部可觀測事件,嘗試辨識「相同問題、相同動作、相同失敗」是否正在重複。

我們刻意把第一階段限制在幾個原則:

  1. 保留原始證據:工具輸入、環境狀態與結果先進 Evidence Vault;Agent 的解釋只能是 candidate。
  2. 隔離作用範圍:重複計數必須區分 session、run、問題版本與 runtime,避免把合理重試誤判成撞牆。
  3. 驗證是否真的有進展:不能只計算呼叫次數;下一階段需要加入 verified progress,確認狀態是否產生可證明的改變。
  4. 先 shadow,再 enforcement:在 legitimate retry、誤判率與跨環境行為尚未量測前,不讓 detector 自動改變記憶、分數或執行權限。

這裡的「反向自我強化」不是把失敗永久寫成禁令,而是讓每一次失敗提高下一次重試的證據門檻。第一次可以嘗試;第二次必須說明改變了哪個條件;若觀察、動作與結果都沒有差異,第三次就不應只是再次相信自己。

這對企業導入 Agent 意味著什麼?

企業通常會監控 Agent 的成功率、延遲與 token 成本,但重複錯誤需要另一組可觀測性:問題識別、動作指紋、環境指紋、狀態差異,以及校正依據。

這些紀錄會直接影響幾個治理問題:

  • 成本控制:避免 Agent 在無進展狀態下持續消耗 API、運算與外部工具配額。
  • 安全邊界:高風險操作不能因模型「反思過了」就獲得再次執行的資格。
  • 責任歸屬:必須分辨失敗來自模型判斷、工具回傳、環境變動,還是記憶中的過時資訊。
  • 持續改善:保留成功打破迴圈的證據,才能知道哪一種校正真的有效,而不是只累積更多文字。

Agent 的自主性越高,系統越不能把自我反思當成自我證明。可信任的 Agent 不只是會從過去學習,也必須能證明自己沒有把過去的錯誤,包裝成未來的經驗。

下一個真正值得解決的問題,不是如何讓 Agent 記得更多,而是如何讓它在記憶、重試與校正之間,建立一條可觀測、可撤銷、可由外部證據推翻的路徑。

延伸閱讀


我是江中喬,專注於 AI Agent Architecture、Memory Governance 與 Cognitive Diversity,持續研究如何打造能夠長期協作、可信任且可治理的 AI 系統。