如果我把規則寫得更明確、更詳細,會不會就能撐得更久不被忘記?
寫得更明確確實有幫助,但幫助有限,因為問題的根源不是「規則寫得夠不夠清楚」,而是規則在整段輸入裡的相對位置。不管你把規則寫得多仔細,只要它是在對話早期交代的,隨著後續內容不斷累積,它在整體輸入裡的位置就會被持續往中段推移,而「迷失在中間」這個現象影響的正是位置,不是內容本身的清晰度。一段寫得再清楚的規則,一旦被推到輸入的中段,注意力還是會下降。
真正有效的做法通常是改變規則「被放置的方式」,而不是單純改善規則本身的措辭:例如把高風險規則寫進系統層級的指令(這類指令通常在架構設計上會被特別處理,不會單純混在對話歷史裡跟其他內容一起被往後推),或是設計成每隔幾輪自動重新插入提醒,讓規則反覆回到輸入的相對前段位置,而不是指望寫一次夠清楚的版本就能撐到底。
「上下文腐化」跟「迷失在中間」聽起來很像,是同一件事嗎?
兩者關係密切,但描述的層次不一樣。「迷失在中間」講的是一個更底層、更純粹的技術現象——不管對話內容品質如何,單純因為某段內容在輸入裡的位置落在中段,模型對它的注意力就會下降,這是一個位置相關的效應。「上下文腐化」則是一個更貼近實務、更綜合性的描述——它涵蓋的不只是位置問題,還包括對話裡累積的過時指令、失敗過的嘗試、雜訊般的工具輸出,這些東西持續增加,讓「有用訊號」跟「雜訊」的比例持續惡化,即使某些關鍵資訊技術上還在視窗容量範圍內,也會因為周遭雜訊太多而被實質上稀釋掉。
可以把兩者理解成因果關係的不同層次:迷失在中間是其中一個具體的、可以被量化測量的成因;上下文腐化則是這類成因加總起來,反映在 Agent 實際行為表現上的整體現象——你觀察到的「Agent 突然不對勁」,背後往往是好幾種類似迷失在中間這樣的機制同時疊加造成的。
如果 Agent 不會主動告訴我它忘記了,我該怎麼在實際使用時察覺到這個問題?
最直接的訊號是行為前後不一致:如果 Agent 開始重複一個之前已經失敗過的做法、或是把新舊需求混在一起處理、或是原本一直遵守的某個規則突然不再遵守,這些都是上下文腐化正在發生的具體跡象,值得停下來重新確認,而不是假設只是一次性的偶然失誤。另一個可以主動測試的方法,是在對話進行到一定深度後,直接問 Agent「我一開始交代你的規則是什麼」,如果它回答得含糊、不完整,或是明顯漏掉某個你確實交代過的重點,這就是一個具體、可驗證的警訊。
對牽涉實質後果的任務,更保險的做法是不要單純依賴「觀察行為是否異常」這種被動偵測,而是主動、定期地在對話裡重新確認關鍵規則,尤其是在完成幾個重要步驟之後、或即將執行不可逆動作之前——這個習慣本身不需要任何技術背景,只是把「Agent 的記憶會隨對話深度不可靠」這件事,轉換成一個具體的、你自己可以掌控的檢查點。
這個問題有沒有正在被解決的跡象,還是我只能自己想辦法應付?
業界目前處理這個問題的主流方向,是把「工作記憶」跟「持久記憶」明確拆成兩層,而不是單純想辦法把上下文視窗做得更大——研究者普遍指出,擴大視窗容量並不能真正解決遺忘問題,只是把「跨對話遺忘」這種問題,換成「視窗內表現退化、輸入成本增加」這種新問題,並沒有真正消除遺忘,只是換了一種形式。比較有效的做法是主動管理什麼內容該留在當前的工作視窗裡、什麼該摘要濃縮、什麼該完全移出視窗改成需要時才檢索的持久記憶,這也是本站另一篇詞條談過的記憶類型分類,在實務工程上真正被應用的方式。
也有更前沿的研究方向,提出讓模型定期把短期上下文「壓縮」成某種持久化的表示形式,概念上類似人類睡眠時鞏固記憶的過程,這類研究目前仍在早期階段,還沒有成為業界普遍採用的標準做法。對一般使用者而言,現階段更務實的態度,是理解這個限制目前還沒有被完全解決,主動建立前面提到的定期確認習慣,而不是等待某個技術突破讓這個問題徹底消失。
你在對話一開始交代 Agent「不要自動送出郵件,先讓我確認草稿」,前幾輪它確實照做,但到了第十幾輪,它突然開始自動送出,好像從沒聽過這個規則一樣。這不是 Agent 突然「壞掉」,而是一個有名字、有研究量化過的技術現象——不理解這個現象,你很難判斷什麼時候該信任 Agent、什麼時候該重新確認它還記得規則。
要理解這個現象,得先知道一件反直覺的事:語言模型本身是無狀態的——它不會像人一樣「記得上次說過什麼」,每一次生成回應,模型看到的都是你這次連同過去對話一起送進去的完整文字。如果一個 Agent 看起來「連貫」,那是因為系統把之前的對話內容重新組裝、跟這次的新輸入一起送進模型的上下文視窗裡,讓模型「重新看一遍」整段歷史,才產生出「它記得」的錯覺。這代表你交代的那條規則,並不是被模型「學會」了,而是一直懸浮在對話歷史裡,靠它「還留在視窗裡」這件事撐著。
你可能以為,只要對話沒有超過廣告出來的視窗容量上限,規則就一定還在、一定有效。但獨立研究發現事情沒這麼單純:模型對埋在輸入中段的內容,注意力會隨著周圍累積的文字增加而下降,這個現象被稱為「迷失在中間」(lost in the middle),最早由史丹佛與加州大學柏克萊分校的研究團隊在 2023 年提出並量化,他們發現檢索準確度呈現一個 U 型曲線——放在輸入最開頭跟最尾端的內容最容易被模型準確抓到,埋在中間的內容則明顯被忽略。你在對話一開始交代的規則,正好符合「開頭」這個相對安全的位置,但隨著對話持續累積,這條規則在整段輸入裡的相對位置會被越推越往中間,注意力也隨之下降。
2026 年一項研究,針對六種不同對話深度、累計 4,416 次測試,具體量化了這個現象對 Agent 實際行為的影響:在沒有任何記憶緩解機制的情況下,Agent 對規則的遵守率從第五輪對話的 73%,掉到第十六輪的 33%。這不是模型突然「壞掉」,也不是隨機出錯,而是一個隨對話深度可預測地惡化的曲線。這個現象業界也稱為「上下文腐化」(context rot)——隨著對話紀錄、過時指令、工具輸出、失敗的嘗試不斷累積,有用訊號跟雜訊的比例持續下降,模型表現隨之惡化,而且這件事不需要等到視窗真正被填滿才會發生,在視窗還沒滿的時候,退化就已經悄悄開始。
這個現象最讓人措手不及的地方,是它不會產生任何錯誤訊息。多數正式運作的 Agent 系統,遇到上下文超出容量時,做法是靜默地捨棄最舊的內容——Agent 不會當機、不會跳出警告,它只是繼續運作,帶著錯誤的假設,充滿自信地繼續往下做,你完全不會收到任何「我忘記某件事了」的訊號,只會看到它的行為突然變得不對勁——重複同一個已經失敗過的做法、把新舊需求混在一起、或者像文章開頭那個例子一樣,不再遵守你早就交代過的規則。
如果你正在用 Agent 處理任何有實質後果的任務(寄送郵件、修改資料、執行交易),理解這個現象能幫你建立一個具體的使用習慣:不要假設「我交代過一次,它就會一直記得」,尤其是在對話已經進行了十幾輪、或是任務牽涉大量工具呼叫跟文件讀取之後。對高風險的規則(例如「不要自動送出」「金額超過某個數字要先問我」),比較務實的做法是定期在對話裡重新提醒一次,或是確認你使用的產品有沒有把這類規則寫進更靠前、更不容易被擠到中間位置的系統層級指令,而不是單純混在對話歷史裡,指望它能撐到任務結束。