AI 智能體長期記憶系統架構設計 原創
大語言模型(LLM)在理解和生成連貫對話方面取得了顯著成就。但是,它們存在一個內在的“記憶缺陷”,即它們擁有的上下文窗口是有限的,這嚴重限制了它們在多輪次、多會話的長期交互中維持一致性的能力。當對話內容超出了上下文長度時,LLM 可能會像一個“健忘”的伙伴一樣,忘記用戶的喜好、重復提問,甚至與之前確認的事實相沖突。
設想這樣一個場景:你告訴一個 AI 助手你是一個素食者,不食用乳制品。然而,幾天后當你向它詢問晚餐建議時,它卻推薦了烤肉。這種體驗無疑會減少用戶對 AI 的信任和依賴。
缺少記憶能力的 AI(圖左)會忘記用戶的關鍵信息,而擁有有效記憶能力的 AI (圖右)則能夠在不同會話間保持上下文連貫性,提供精確、定制化的服務。
為了解決這一根本性問題,業界開發和開源了 Mem0 長期記憶系統(Github 地址:https://github.com/mem0ai/mem0),這是一個以記憶為核心的可擴展架構。它通過動態地提取、整合和檢索對話中的關鍵信息,賦予了 AI 智能體可靠的長期記憶能力。
本文將詳細探討 Mem0(基于向量數據庫)和 Mem0-g(基于知識圖譜)的架構設計、技術原理、性能表現及其實際應用價值。
下文詳細剖析之。
1、為什么擴大上下文窗口無法根本解決記憶問題?
最近,各個大模型開發商不斷發布具有更大上下文窗口的模型,上下文長度從128K 擴展到甚至達到千萬級別的 Token。但是,這些做法僅僅是“延遲”了問題的發生,并沒有真正解決問題。在企業業務場景實際使用中,增加上下文窗口的大小會面臨兩大障礙:
- 信息丟失和噪聲干擾:在跨越數周或數月的交流中,對話歷史最終會超出任何大小的上下文窗口。更關鍵的是,對話內容通常天馬行空。比如:用戶可能在討論飲食偏好后,又進行了數小時關于編程的對話。當話題再次回到食物時,重要的“素食”信息可能已經被大量無關的編程討論所淹沒,這即是所謂的“大海撈針”難題。
- 性能和成本的挑戰:處理極長的上下文不僅顯著增加了打模型的推理延遲,還帶來了高昂的 Token 成本。此外,研究顯示,LLM 的注意力機制在處理極長序列時會出現性能退化,大模型難以有效利用那些距離當前上下文很遠的信息。
因此,我們需要一種更智能的記憶機制,它應該能夠模擬人類的認知過程:有選擇性地保存關鍵信息,整合相關概念,并在需要時精確地檢索信息。
2、Mem0 長期記憶系統架構設計
Mem0 架構設計采用“增量處理”范式,在持續對話中無縫運行。其核心架構設計由兩個主要階段構成:提取(Extraction) 和 更新(Update)。
第一、提取階段:動態捕捉關鍵信息
當 Mem0 系統接收到新的對話內容(比如:用戶的提問和 AI 的回答)時,提取階段開始工作。為了準確理解當前對話的上下文,Mem0 系統結合以下兩種信息:
- 全局上下文:從數據庫中檢索整個對話的摘要,提供對話的宏觀主題。
- 局部上下文:最近的幾條消息,提供細粒度的即時背景。
這兩種上下文與新消息共同構成一個完整的提示詞(Prompt),輸入到一個大語言模型(比如:DeepSeek R1)中,以執行提取功能。該大模型從最新的交流中提煉出關鍵事實(比如:“用戶是素食主義者”),形成一組候選記憶。
第二、更新階段:智能管理記憶庫
提取出的候選記憶并不會直接存入數據庫,而是進入更新階段,以確保記憶庫的一致性和無冗余。這個過程通過一個智能的“工具調用(Tool Call)”機制實現,具體流程如下:
- 對于每一個候選記憶,系統會在向量數據庫中檢索出語義最相似的已有記憶。
- 將候選記憶與這些相似記憶一同提交給大語言模型。
- 大模型會自主決策執行以下四種操作之一:
- ADD:如果候選記憶是全新的信息,則添加。
- UPDATE:如果候選記憶是對現有信息的補充或更新,則進行修改。
- DELETE:如果候選記憶與現有信息相矛盾,則刪除舊信息。
- NOOP:如果候選記憶是重復或無關的,則不執行任何操作。
通過這種方式,Mem0 能夠動態維護一個精煉、準確且與時俱進的長期記憶庫。
3、Mem0-g 長期記憶系統架構設計
為了更好地理解信息之間的復雜關系,推出了 Mem0 的升級版:Mem0-g(g代表 Graph,也就是圖)。它把記憶信息保存成知識圖譜的樣子,圖譜里的點代表不同的實體(比如:人、地方),點與點之間的連線代表它們之間的關系(比如“住在”、“喜歡”)。
和 Mem0 向量數據庫相比,知識圖譜能夠記錄更復雜的關系和高級概念。當它和主要存儲事實片段的 Mem0 向量數據庫一起使用時,兩者可以互相補充,讓整個記憶系統更加全面。
Mem0-g 的架構設計也分為兩個階段:提取和更新:
- 圖提取:通過一個兩階段的大語言模型(LLM)流程,首先從文本中找出關鍵的實體和它們的類型(比如:“Alice - 人”),然后創建連接這些實體的關系三元組(比如: (Alice, 住在, 舊金山))。
- 圖更新與沖突解決:在加入新信息時,Mem0-g 會檢查新關系是否和圖里已有的關系有沖突。如果有沖突,一個基于 LLM 的“更新解析器”會決定是否將舊關系標記為“過時”,而不是直接刪除。這樣的設計保留了信息的時間順序,為進行更復雜的時間推理提供了可能。
通過結合結構化的圖表示和語義的靈活性,Mem0-g 能夠支持更高級的推理,特別是在需要跨越多個相關事實進行推斷的情況下。
4、Mem0 與主流方案對比
通過在長對話評測基準 LOCOMO 上,對 Mem0 和 Mem0-g 進行了全面的比較測試,對比的對象包括六種不同類型的基線方法,比如:現有的記憶增強系統、不同設置的 RAG、處理整個對話歷史的全上下文方法、開源的記憶解決方案以及商業平臺。
核心發現一:Mem0 實現了效率與效果的最佳平衡
測試結果(如下表和圖展示的)清楚地顯示,與那些簡單直接的 RAG 和全上下文方法相比,Mem0 的性能優勢非常明顯。
第一、Mem0 vs. RAG
- 質量評分(J score):Mem0 的質量評分比最佳配置的 RAG 高出近10%。
- 效率:這證明了提取精煉事實遠比檢索包含大量噪聲的原始文本塊更有效。
第二、Mem0 vs. 全上下文方法
- 質量評分:雖然全上下文方法憑借完整信息獲得了最高的質量評分。
- 延遲:但其延遲是 Mem0 的近12倍。
- Token 成本:Token 成本也極高,完全不適用于生產環境。
- 性能與成本:Mem0 以極小的性能犧牲換來了91%的延遲降低和超過90%的 Token 成本節省,展現了卓越的實用性。
第三、圖表分析
上圖展示了不同方案的端到端延遲(線圖,越低越好)和響應質量(柱狀圖,越高越好):
- Mem0 和 Mem0-g:在保持高質量的同時,延遲遠低于全上下文方法。
核心發現二:Mem0 與 Mem0-g 各有所長
第一、Mem0:簡單高效的自然語言記憶
- 表現最佳:在處理單跳問題(只需一個事實)和多跳問題(需要整合多個分散的事實)時表現出色。
- 快速響應:搜索延遲極低,非常適合需要快速反應的互動應用。
第二、Mem0-g:圖結構記憶的威力
- 時間推理和開放域問題:在處理需要理解事件順序和關系的問題時表現出色。
- 提升判斷力:結構化的關系表示顯著提高了大模型在這些復雜任務上的表現力。
第三、圖表分析:搜索/檢索延遲對比
上圖展示了各方案的搜索/檢索延遲。Mem0 的搜索延遲(0.148秒)是所有方法中最低的,顯示了其高效的檢索能力。
核心發現三:Mem0 在系統開銷上的優勢
第一、系統開銷對比
- Mem0 vs. 商業記憶平臺 Zep:
Token 消耗:Zep 構建記憶圖譜每段對話平均消耗超過 600k Token,而 Mem0 僅需約 7k Token。
異步處理:Zep 的記憶構建過程涉及大量異步處理,新添加的記憶需要數小時才能被有效檢索,這對實時應用來說是不可接受的。
快速構建:相比之下,Mem0 的記憶構建在幾分鐘內即可完成。
5、總結:邁向擁有持久記憶的 AI 智能體未來
Mem0 和 Mem0-g 通過動態提取信息、智能更新和高效檢索,為解決大語言模型(LLM)的長期記憶問題提供了一個強大且實用的解決方案。它們成功地在推理精度、響應速度和部署成本之間取得了理想的平衡。
Mem0:快速、直接的事實檢索
Mem0 以其極致的效率和簡潔性,為需要快速、直接事實檢索的應用場景提供了理想選擇。
Mem0-g:深度關系理解和復雜時序推理
Mem0-g 則通過結構化的圖記憶,為需要深度關系理解和復雜時序推理的任務解鎖了新的可能性。
這項工作為構建更可靠、更高效、更具“人性”的 AI 智能體鋪平了道路,使它們能夠像人類一樣,在長時間的互動中建立連貫、有深度的關系。未來將繼續優化圖操作的效率,并探索更復雜的 AI 智能體混合記憶架構,推動 AI 智能體向著能夠進行真正長期合作的智能伙伴不斷邁進!
本文轉載自???玄姐聊AGI?? 作者:玄姐
