“在對話開始時,你的智能體能完美遵循某條規則,但聊著聊著,它就忘了。”這不是你的提示詞寫得不夠好,也不是上下文窗口不夠大。問題在于,你一直把上下文窗口當成數據庫在用,而它從一開始就不是為持久記憶而設計的。
很多開發者在構建智能體時,會設定一些很簡單的規則:不要泄露用戶聯系方式、別預約非工作時間外的會議、下架產品別推薦。前幾輪對話,智能體嚴格遵守。但隨著對話越來越長,工具返回的信息越堆越多,用戶需求也變了幾次,到第15輪時,那條最開始的約束指令雖然技術上還在上下文里,但模型已經不再把它當作最重要的指令來對待了。
![]()
這種“遺忘”很容易被誤判,相關數據顯示,這并不是單純的提示質量問題,換一個擁有更大上下文窗口的模型也解決不了問題。真正的原因在于,上下文窗口的工作機制更接近易失的工作記憶,而不是可持久存儲的數據庫,具體體現在三個層面。
第一個層面,上下文是易失的。一旦會話結束,存在上下文里的所有信息就徹底消失,沒有自動的持久化機制,更沒有恢復的可能。你關掉對話框,再打開一個新的,智能體對你和之前的對話內容就完全沒有記憶了。這不是bug,這是上下文窗口的基礎設計邏輯。
第二個層面,信息位置至關重要。有研究記錄了名為《迷失在中間》的現象:模型對放在上下文開頭和結尾信息的關注度,遠高于被夾在中間的信息。對于智能體記憶來說,這會直接導致一種可以預見的失效模式——對話剛開時設定的約束,會隨著對話內容越來越多,逐漸被擠出模型的注意力焦點。佛羅里達大學2026年的一項研究對12個模型進行了測試,得出的數字很直觀:在長上下文中,隱藏在大量信息里的禁止性指令,在第5輪對話時尚有73%的概率被遵守,但到了第16輪,遵守概率驟降至33%。值得注意的是,更大的上下文窗口并沒能修復這個陡峭的下降曲線。關鍵變量不是窗口有多大,而是那條關鍵指令放在什么位置,以及它周圍堆砌了多少其它信息。
第三個層面是成本。每一次調用模型,都需要重新處理整個上下文窗口里的所有內容。這意味著,包含5萬詞匯單元的上下文,無論最后500個詞匯單元是全新的還是原本就存在于歷史里的,每次調用的成本都一樣高。而這個處理過程并不會區分哪些是必須記住的長期規則,哪些是早已過時的閑聊。
基于此,文章提出了一種為智能體構建的雙層記憶架構:一層負責管理當前活躍的對話狀態,另一層專門用來存儲那些需要跨會話持久保留的事實、偏好和硬性約束。該架構的具體代碼實現涉及Python和Actian VectorAI向量數據庫,但文章強調,這套設計模式是獨立于具體開發框架的,開發者完全可以在LangChain、LangGraph、LlamaIndex、AutoGen或者Mastra等不同框架中落地這套想法。核心邏輯始終不變:停止把模型的工作記憶當作長期檔案來用,讓只負責對話的歸對話,讓需要銘記的歸記憶。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.