AI 智能體的長期記憶系統(tǒng)架構(gòu)設(shè)計與落地實現(xiàn) 原創(chuàng) 精華
無論是 DeepSeek 還是 GPT,隨著大模型性能的提升,其能夠處理的上下文長度也不斷增加。然而,一旦超出上下文窗口的限制,大模型就需要重新開啟一個對話,就像“失憶”一樣,忘記之前交流的內(nèi)容。
但從用戶的角度來看,AI 智能體應(yīng)該能夠記住之前的全部對話。因此,如何高效地管理和利用對話歷史,成為了提升 AI 智能體用戶體驗的關(guān)鍵所在。擁有長期記憶后,Ai 智能體能夠回憶過去的對話,從而減少幻覺、延遲和成本。
將聊天記錄作為文本導(dǎo)入,然后使用 RAG 來“恢復(fù)長期記憶”,是讓大模型具備長期記憶的一種常見方法。但這種方法通常需要額外的工程支持,而且構(gòu)建 RAG 也存在不容忽視的時間差。
傳統(tǒng) RAG 系統(tǒng)本質(zhì)上是一個"文檔圖書館",它假設(shè)知識是固定不變的,這在處理動態(tài)業(yè)務(wù)場景時就顯得力不從心了。
其次,當(dāng)新信息與舊信息發(fā)生沖突時,RAG 系統(tǒng)無法智能地判斷哪個更可信,往往會把矛盾的信息一股腦兒返回給用戶。
最后,RAG 缺乏時間維度的理解讓系統(tǒng)無法區(qū)分"用戶去年的偏好"和"用戶現(xiàn)在的需求",導(dǎo)致推薦結(jié)果偏離實際情況。
在企業(yè)級應(yīng)用中,RAG 作為長期記憶的這種局限性會被無限放大。
比如:在開發(fā)一個客戶服務(wù) AI 智能體,客戶 A 在過去一年中經(jīng)歷了從創(chuàng)業(yè)公司到中型企業(yè)的轉(zhuǎn)變,其需求從成本控制轉(zhuǎn)向了效率提升,但傳統(tǒng) RAG 系統(tǒng)仍然會基于歷史文檔推薦成本優(yōu)化方案。
這種脫節(jié)不僅影響用戶體驗,更可能造成企業(yè)業(yè)務(wù)損失。
為了解決 AI 智能體長期記憶的這些痛點,最近,一家名為 Zep AI 的初創(chuàng)公司推出了為 AI 智能體打造的記憶層,通過回憶聊天歷史,可以自動生成摘要和其他相關(guān)信息,使 AI 智能體能夠在不影響用戶聊天體驗的情況下,異步地從過去的對話中提取相關(guān)上下文。
下文詳細(xì)剖析之:Zep 長期記憶系統(tǒng)的架構(gòu)設(shè)計、Zep 長期記憶系統(tǒng)的關(guān)鍵技術(shù)設(shè)計、基于 Zep 構(gòu)建 AI 智能體的代碼級落地實現(xiàn)。
一、Zep 長期記憶系統(tǒng)的架構(gòu)設(shè)計
Zep 能自動從 AI 智能體的用戶互動以及不斷變化的業(yè)務(wù)數(shù)據(jù)中構(gòu)建一個時間知識圖譜。這個圖譜包含了與用戶和業(yè)務(wù)背景相關(guān)的實體、關(guān)系以及事實。Zep 借鑒了 GraphRAG,但與 GraphRAG 不同的是,Zep 能夠很好地理解信息隨時間的變化。當(dāng)事實發(fā)生改變或者被新的事實取代時,圖譜就會更新,以反映新的狀態(tài)(如下動圖展示)。
Graphiti 是 Zep 記憶層背后的技術(shù)。它是一個開源的庫,能夠構(gòu)建動態(tài)的、具有時間意識的知識圖譜,用以表示實體之間復(fù)雜且不斷變化的關(guān)系。它可以處理非結(jié)構(gòu)化和結(jié)構(gòu)化的數(shù)據(jù),生成的圖譜可以通過時間、全文、語義以及圖算法等多種方式進(jìn)行查詢。
Zep 架構(gòu)設(shè)計系統(tǒng)的核心是 Graphiti 引擎,它采用了一個巧妙的三層知識圖譜架構(gòu)來解決傳統(tǒng) RAG 的痛點,如下圖所示:
第一層:Episode 子圖
- 功能:完整地存儲原始對話、文本或 JSON 數(shù)據(jù),不丟失任何信息。
- 特點:類似于人類的情景記憶,能夠保留完整的上下文信息。
第二層:Semantic Entity 子圖
- 功能:從原始數(shù)據(jù)中提取實體和關(guān)系。
- 特點:利用實體解析技術(shù),將新舊信息有機地整合在一起。
第三層:Community 子圖
- 功能:通過標(biāo)簽傳播算法對相關(guān)實體進(jìn)行聚類。
- 特點:形成高層次的概念理解。
這種架構(gòu)設(shè)計使得 Zep 系統(tǒng)既能保留細(xì)節(jié)信息,又能進(jìn)行抽象推理。
二、Zep 長期記憶系統(tǒng)的關(guān)鍵技術(shù)設(shè)計
1、關(guān)鍵技術(shù)一:雙時間軸建模:從根本上解決信息更新問題
Zep 最具創(chuàng)新性的技術(shù)設(shè)計在于其獨特的雙時間軸建模機制,具體如下:
這種設(shè)計使 Zep 系統(tǒng)能夠精準(zhǔn)處理諸如“用戶兩周前提到的那個項目其實是三個月前開始的”這類復(fù)雜的時間關(guān)系。
2、關(guān)鍵技術(shù)二:智能的邊失效機制
傳統(tǒng)系統(tǒng)在面對信息沖突時常常無計可施,而 Zep 憑借 LLM 驅(qū)動的邊失效機制,以一種優(yōu)雅的方式解決了這一難題,具體流程如下:
- 沖突檢測:當(dāng) Zep 系統(tǒng)發(fā)現(xiàn)新事實與現(xiàn)有知識圖譜中的信息存在語義沖突時。
- 自動標(biāo)記:將存在沖突的舊信息自動標(biāo)記為失效狀態(tài)。
- 時間記錄:精準(zhǔn)記錄下信息失效的具體時間點。
憑借這一機制,AI 智能體能夠精準(zhǔn)回答諸如“用戶什么時候改變了偏好”這類涉及時間推理的復(fù)雜問題。
3、關(guān)鍵技術(shù)三:三步走的內(nèi)存檢索
第一步:混合搜索策略
Zep 的檢索系統(tǒng)融合了三種互補的搜索方法,以實現(xiàn)最大化的召回率:
- 余弦相似度搜索:精準(zhǔn)捕捉語義相關(guān)性,理解用戶問題的深層含義。
- BM25 全文搜索:高效處理關(guān)鍵詞匹配,快速定位關(guān)鍵信息。
- 廣度優(yōu)先搜索:深入發(fā)現(xiàn)圖結(jié)構(gòu)中的隱含關(guān)聯(lián),挖掘潛在聯(lián)系。 這種設(shè)計尤其適用于處理用戶詢問“那個項目的進(jìn)展如何”時的指代消解問題,能夠準(zhǔn)確理解并回應(yīng)用戶的意圖。
第二步:智能重排序
在檢索到候選結(jié)果后,Zep 運用多種重排序策略來提升精確度:
- RRF 和 MMR 算法:傳統(tǒng)的重排序方法,經(jīng)過驗證的有效手段。
- 基于圖距離的重排序:考慮實體間的關(guān)聯(lián)程度,優(yōu)化信息的相關(guān)性。
- 頻次權(quán)重調(diào)整:讓經(jīng)常被用戶提及的信息獲得更高優(yōu)先級,確保重要信息不被遺漏。 通過這些策略,Zep 能夠更精準(zhǔn)地呈現(xiàn)用戶所需的信息,提高檢索結(jié)果的質(zhì)量。
第三步:上下文 Prompt 構(gòu)造
最后一步是將檢索和重排序后的節(jié)點和邊轉(zhuǎn)換為 LLM 友好的文本格式:
- 為每個事實標(biāo)注有效時間范圍:明確信息的時效性,確保 AI 智能體能夠準(zhǔn)確理解信息的時效性。
- 為每個實體提供簡潔的摘要描述:讓 AI 智能體快速把握關(guān)鍵信息,提高生成回復(fù)的效率。
- 確保 AI 智能體在生成回復(fù)時能夠準(zhǔn)確理解信息的重要程度:讓 AI 智能體能夠根據(jù)信息的重要性進(jìn)行合理的回應(yīng)。 通過這種上下文構(gòu)造模板,Zep 能夠清晰標(biāo)注事實的時間范圍和實體信息,為 AI 智能體生成準(zhǔn)確、及時的回復(fù)提供有力支持。
4、關(guān)鍵技術(shù)四:AI 智能體長期記憶領(lǐng)域新標(biāo)桿
在更具挑戰(zhàn)性的 LongMemEval 測試中,加入了更長、更連貫的對話內(nèi)容以及更多樣化的評估問題,從而更好地反映真實場景的需求,Zep 的優(yōu)勢得到了充分體現(xiàn),實驗結(jié)果如下表所示:
可以看到,相比基線方法,Zep 不僅提升了結(jié)果的精度,而且將響應(yīng)時間減少了約 90%,相比其他 LLM 供應(yīng)商也有約 80% 的提升。
三、基于 Zep 構(gòu)建 AI 智能體的代碼級落地實現(xiàn)
接下來,讓我們來構(gòu)建一個具有類似人類記憶的 AI 智能體。
第一、使用的技術(shù)棧
- 開源的 Zep 作為我們 AI 智能體的記憶層。
- AutoGen 用于 AI 智能體編排。
- Ollama 用于本地提供 Qwen 3服務(wù)。
第二、基于 Zep 的 AI 智能體系統(tǒng)架構(gòu)設(shè)計
- 用戶提交查詢。
- AI 智能體保存對話并將事實提取到記憶中。
- AI 智能體檢索事實并進(jìn)行總結(jié)。
- 使用事實和歷史記錄做出準(zhǔn)確的回應(yīng)。
第三、基于 Zep 的 AI 智能體代碼級落地實現(xiàn)
1、設(shè)置 LLM(大語言模型)
我們通過 Ollama 使用本地提供的 Qwen 3。
2、初始化 Zep 客戶端
利用 Zep 的基礎(chǔ)記憶層,為我們的 Autogen AI 智能體賦予真正的任務(wù)完成能力。
3、創(chuàng)建用戶會話
為用戶創(chuàng)建一個 Zep 客戶端會話,AI 智能體將使用該會話來管理記憶。一個用戶可以有多個會話!
4、定義 Zep 對話 AI 智能體
我們的 Zep 記憶 AI 智能體基于 Autogen 的對話 AI 智能體,每次用戶查詢時,從 Zep Cloud 獲取實時記憶上下文。它通過利用我們剛剛建立的會話來保持高效。
5、設(shè)置 AI 智能體
初始化對話 AI 智能體和一個代理人類 AI 智能體,以管理聊天互動。
6、處理 AI 智能體聊天
Zep 對話 AI 智能體介入,創(chuàng)建一個連貫、個性化的回應(yīng)。它無縫整合了記憶和對話。
7、Streamlit 用戶界面
創(chuàng)建了一個簡化的 Streamlit 用戶界面,以確保與 AI 智能體的互動順暢且簡單。
8、可視化知識圖譜
通過 Zep Cloud 的用戶界面,交互式地映射用戶在多個會話中的對話。這個強大的工具使我們能夠通過圖譜可視化知識的演變。
第四、基于 Zep 的 AI 智能體完整代碼
完整代碼獲取地址:
???https://github.com/patchy631/ai-engineering-hub/tree/main/zep-memory-assistant??
總之,本文介紹了如何構(gòu)建一個具有類似人類記憶的 AI 智能體,使用的技術(shù)棧包括開源的 Zep 記憶層、AutoGen 用于 AI 智能體編排以及 Ollama 用于本地提供 Qwen 3服務(wù)。AI 智能體系統(tǒng)通過保存對話、提取事實到記憶中、檢索事實并總結(jié),最終生成基于事實和歷史記錄的明智回應(yīng)。此外,通過 Zep Cloud 的用戶界面,可以交互式地映射用戶在多個會話中的對話,可視化知識的演變。整個過程通過 Streamlit 用戶界面實現(xiàn)順暢且簡單的交互。
本文轉(zhuǎn)載自???玄姐聊AGI?? 作者:玄姐
