AI 智能體記憶系統(tǒng)的10大關(guān)鍵技術(shù) 原創(chuàng)
關(guān)于 AI 智能體的記憶系統(tǒng)架構(gòu)設(shè)計和落地實現(xiàn)可以參考這兩篇文章:《??AI 智能體長期記憶系統(tǒng)架構(gòu)設(shè)計????》和《???AI 智能體的長期記憶系統(tǒng)架構(gòu)設(shè)計與落地實現(xiàn)???》,今天我們詳細剖析下 AI 智能體記憶系統(tǒng)的10大關(guān)鍵技術(shù)。
一、AI 智能體記憶系統(tǒng)10大關(guān)鍵技術(shù)
1、關(guān)鍵技術(shù)一:為什么長期記憶很重要?
我們構(gòu)建的 AI 智能體存在以下三個關(guān)鍵問題:
第一、丟失上下文:AI 智能體忘記了過去互動中的重要信息;
第二、通用回應(yīng):沒有適當(dāng)?shù)挠洃洠珹I 智能體的回復(fù)變得不個性化且不準(zhǔn)確;
第三、信任侵蝕:當(dāng) AI 智能體無法記住基本偏好時,用戶失去信心。
這肯定不是通往通用人工智能的道路,或者更實際地說,不是留住客戶的方法。
2、關(guān)鍵技術(shù)二:為什么 RAG 不適合作為長期記憶系統(tǒng)?
讓我用一個具體的例子來說明為什么 RAG 作為記憶系統(tǒng)是不合適的?
考慮一個電商場景:
- 用戶表達對阿迪達斯運動鞋的喜愛;
- 他們的鞋子兩個月后壞了,導(dǎo)致沮喪;
- 用戶將偏好轉(zhuǎn)向彪馬;
- 用戶問:“我應(yīng)該買什么運動鞋?”
在一個基于 RAG 的系統(tǒng)中,“我應(yīng)該買什么運動鞋?”這個查詢在語義上最接近最初的阿迪達斯偏好。向量數(shù)據(jù)庫返回了這個過時的事實,AI 智能體錯誤地推薦了阿迪達斯:完全忽略了偏好變化。
核心問題是:
- 時間順序:哪個事實先出現(xiàn)?
- 因果關(guān)系:鞋子壞了→失望→偏好變化;
- 事實失效:“喜歡阿迪達斯”應(yīng)該被后來的事件覆蓋。
3、關(guān)鍵技術(shù)三:向量嵌入 VS 知識圖譜
這是以上問題的向量嵌入可視化表示:
在向量空間中,這些事實作為孤立的點存在,沒有明確的關(guān)系。查詢找到了最相似的向量嵌入,但完全錯過了因果鏈和時間上下文。
然而,知識圖譜可以明確地用時間有效期來建模這些關(guān)系。如下圖中顯示:
Graphiti動態(tài)知識圖譜
- “喜歡”關(guān)系在特定日期失效;
- “壞了”關(guān)系創(chuàng)建了一個因果鏈接;
- 新的“喜歡”彪馬的關(guān)系目前是有效的。
4、關(guān)鍵技術(shù)四:知識圖譜開源實現(xiàn) Graphiti
Graphiti 是Zep 的開源框架,用于構(gòu)建實時、動態(tài)的知識圖譜。它專門設(shè)計來解決以上探討的記憶問題。
Graphiti 關(guān)鍵特點:
- 時間感知:跟蹤事件發(fā)生的時間以及它們被學(xué)習(xí)的時間;
- 關(guān)系性:實體+關(guān)系+社區(qū);
- 實時性:動態(tài)更新無需昂貴的重新計算
- 秘密武器:雙時間記憶
5、關(guān)鍵技術(shù)五:秘密武器:雙時間記憶
這就是 Graphiti 的時間模型的工作方式。每個事實跟蹤四個時間戳:
- created_at:Graphiti 學(xué)習(xí)這個事實的時間;
- valid_at:事件實際發(fā)生的時間;
- invalid_at:事實變得不真實的時間;
- expired_at:Graphiti 學(xué)習(xí)到它不再有效的時間。
這使得強大的時間推理成為可能:“用戶在二月份的偏好是什么?”變得可以回答。
6、關(guān)鍵技術(shù)六:智能沖突解決
當(dāng) Graphiti 遇到?jīng)_突信息時,它不會簡單地添加另一個嵌入。相反:
- 新事實:“阿迪達斯鞋壞了,[用戶不高興]”;
- 檢測到?jīng)_突:這使得“喜歡阿迪達斯”的關(guān)系失效;
- 時間解決:設(shè)置 invalid_at 日期并創(chuàng)建因果邊;
- 結(jié)果:為每個偏好設(shè)置清晰的時間邊界。
如上結(jié)果圖保留了歷史,同時清楚地表明了當(dāng)前的有效性。這是“更接近人類處理和回憶隨時間變化的狀態(tài)的方式”。
7、關(guān)鍵技術(shù)七:混合檢索
Graphiti 并沒有拋棄向量嵌入,它使它們變得更智能。Graphiti 系統(tǒng)采用混合方法,使得檢索結(jié)果:快速、準(zhǔn)確、上下文相關(guān)的檢索,操作時間以毫秒為單位,而不是秒。
- 語義搜索:通過嵌入向量找到相關(guān)內(nèi)容;
- 關(guān)鍵詞搜索:BM25 全文搜索特定術(shù)語;
- 子圖遍歷:從初始結(jié)果導(dǎo)航關(guān)系;
- 結(jié)果融合:結(jié)合所有方法以獲得全面的上下文。
8、關(guān)鍵技術(shù)八:特定領(lǐng)域的記憶
Graphiti 的一個強大功能是領(lǐng)域建模。心理健康應(yīng)用程序需要存儲與電商 AI 智能體非常不同的記憶類型。
Graphiti 允許你使用熟悉的工具(比如:pydantic)定義自定義實體和邊,為你提供:
- 任何數(shù)據(jù)源:動態(tài)整合對話和業(yè)務(wù)數(shù)據(jù);
- 相關(guān)檢索:只檢索與你的應(yīng)用程序相關(guān)的實體和事實;
- 熟悉的工具:使用 pydantic 定義你的實體和邊本體。
9、關(guān)鍵技術(shù)九:適合工作的工具
我并不是主張到處替換 RAG。每種方法都有其優(yōu)勢,如下表所示:
AI 智能體應(yīng)用程序可以使用 RAG 方法用于靜態(tài)知識,使用 Graphiti 用于動態(tài)記憶。
10、關(guān)鍵技術(shù)十:記憶 ≠ 知識檢索
總之,AI 智能體記憶不是知識檢索,而是需要一個能夠處理時間序列、因果關(guān)系和動態(tài)更新的系統(tǒng)。Graphiti 正是這樣一個系統(tǒng),它能夠提供更準(zhǔn)確、更個性化的服務(wù)。
基于Graphiti的Agent智能體架構(gòu)圖
本文轉(zhuǎn)載自???玄姐聊AGI?? 作者:玄姐
