當談論建立 AI 智能代理的獨特優勢時,主要討論兩件事:調用工具完成任務的能力,以及隨時間改進的能力。記憶是創建能自我改進並為用戶提供更佳體驗的代理的基礎。
在本課程中,我們將探討 AI 智能代理的記憶是什麼,以及如何管理和利用它來提升應用的效益。
本課程涵蓋:
• 理解 AI 智能代理的記憶:記憶是什麼,以及為什麼它對代理至關重要。
• 實現與存儲記憶:為 AI 代理添加記憶能力的實用方法,重點關注短期記憶和長期記憶。
• 讓 AI 智能代理自我改進:記憶如何使代理從過去互動中學習並隨時間改進。
本課程包含兩個全面的筆記本教學:
• 13-agent-memory.ipynb:使用 Mem0 和 Azure AI Search 搭配 Semantic Kernel 框架實現記憶
• 13-agent-memory-cognee.ipynb:使用 Cognee 實現結構化記憶,能自動建立由嵌入支持的知識圖譜,並視覺化圖譜與智慧檢索
完成本課程後,你將能:
• 區分各類 AI 代理的記憶類型,包括工作記憶、短期記憶與長期記憶,以及如人格記憶和情節記憶等專門形式。
• 使用 Semantic Kernel 框架實現並管理 AI 代理的短期和長期記憶,運用 Mem0、Cognee、Whiteboard 記憶等工具,並整合 Azure AI Search。
• 了解自我改進 AI 智能代理背後的原理,以及強大的記憶管理系統如何促進持續學習和適應。
本質上,AI 智能代理的記憶指的是讓它們能保留並回憶資訊的機制。這些資訊可以是對話的具體細節、使用者偏好、過去的行動,甚至是學習到的模式。
沒有記憶的 AI 應用通常是無狀態的,意味著每次互動都從零開始。這導致重複且令人沮喪的使用經驗,代理「忘記」先前的上下文或偏好。
代理的智能與其回憶和運用過去資訊的能力密切相關。記憶讓代理能夠:
• 反思:從過去行動與結果中學習。
• 互動:維持對話上下文。
• 主動與被動:根據歷史資料預測需求或做出適當回應。
• 自主:通過調用已存知識,能更獨立運作。
實現記憶的目標是讓代理更可靠且有能力。
可將其視為代理在單一、持續任務或思考過程中使用的草稿紙。它持有計算下一步所需的即時資訊。
對 AI 代理而言,工作記憶通常捕捉對話中最相關的資訊,即使整個聊天記錄很長或被截斷。重點是提取關鍵元素,如需求、建議、決策及行動。
工作記憶範例
在旅遊訂票代理中,工作記憶可能捕捉使用者當前的需求,例如「我想預訂一趟去巴黎的行程」。這個具體需求被保存在代理的即時上下文中,以引導當前互動。
此類記憶會在單次對話或工作階段期間保留資訊,形成當前對話的上下文,讓代理能回顧對話中的先前回合。
短期記憶範例
若使用者問「飛往巴黎的機票多少錢?」再問「那住宿費用呢?」短期記憶確保代理知道「那裡」指的是同一次對話中的「巴黎」。
這是跨多次對話或工作階段持續保留的資訊。它能讓代理記得使用者偏好、歷史互動或長期的通用知識,對個性化非常重要。
長期記憶範例
一個長期記憶可能存有「Ben 喜歡滑雪和戶外活動,喜歡帶山景的咖啡,並且因過去受傷想避免高難度滑雪道」等資訊。這些從先前互動中學到的訊息會影響未來旅遊規劃的推薦,使體驗更具個性化。
這種專門的記憶類型幫助代理建立一致的「個性」或「角色」。它允許代理記得關於自身或其預定角色的細節,讓互動更順暢且聚焦。
人格記憶範例
若旅遊代理被設計為「滑雪專家」,人格記憶可能強化此角色,讓回答更符合專家語氣與知識。
這種記憶存儲代理在複雜任務中採取的步驟序列,包括成功與失敗。就像記住特定「情節」或過去經驗以供學習。
情節記憶範例
若代理嘗試預訂特定航班但因無票失敗,情節記憶會記錄此失敗,讓代理在下一次嘗試時能嘗試其他航班,或更有根據地通知使用者問題。
涉及從對話中提取並記住特定實體(例如人、地點或物品)和事件,讓代理構建討論關鍵元素的結構化理解。
實體記憶範例
在一次關於過去旅行的對話中,代理可能提取「巴黎」、「艾菲爾鐵塔」和「在 Le Chat Noir 餐廳用餐」三個實體。未來互動時,代理可以回憶起「Le Chat Noir」並提供預訂服務。
RAG 是更廣泛的技術,「結構化 RAG」被強調為強大的記憶技術。它從各種來源(對話、電子郵件、圖片)提取密集且結構化的資訊,並用於提升回應的精確度、召回率和速度。與只依賴語意相似度的經典 RAG 不同,結構化 RAG 利用資訊的內在結構。
結構化 RAG 範例
結構化 RAG 不僅匹配關鍵字,它能解析電子郵件中的航班細節(目的地、日期、時間、航空公司)並以結構化方式存儲,從而能準確地回答「我週二訂了哪班飛往巴黎的航班?」
為 AI 代理實現記憶涉及有系統的記憶管理流程,包括生成、存儲、檢索、整合、更新,甚至「遺忘」(或刪除)資訊。其中檢索尤為關鍵。
一種儲存與管理代理記憶的專用工具是 Mem0。Mem0 作為持久記憶層,允許代理回憶相關互動、存儲使用者偏好與事實上下文,並從成功與失敗中學習。它的概念是讓無狀態的代理變成有狀態。
它通過兩階段記憶管線:擷取與更新運作。首先,向代理主題添加的訊息會送到 Mem0 服務,該服務使用大型語言模型(LLM)摘要對話歷史並擷取新記憶。接著,LLM 驅動的更新階段決定是否新增、修改或刪除這些記憶,並將其存儲在可包含向量庫、圖譜與鍵值資料庫的混合數據庫中。此系統還支持多種記憶類型,並可整合圖譜記憶以管理實體間關係。
另一個強大方法是使用 Cognee,一種開源的語意記憶工具,能將結構化與非結構化數據轉換為以嵌入為基礎的可查詢知識圖譜。Cognee 提供雙重存儲架構,結合向量相似搜索與圖譜關係,使代理能理解信息的相似性與概念間的關聯。
它在混合檢索方面表現出色,融合向量相似度、圖譜結構與 LLM 推理——從原始切片查找到基於圖譜的問答。該系統維持活躍的記憶,能隨時間演進並增長,同時保持可查詢的連續圖譜形式,支持短期會話上下文及長期持久記憶。
Cognee 筆記本教學(13-agent-memory-cognee.ipynb)示範構建此統一記憶層,包含實作示例:攝取多元資料源、視覺化知識圖譜以及以針對代理需求調整的不同搜索策略進行查詢。
除了像 Mem0 這類專用記憶工具,你還可以利用強大的搜索服務,比如Azure AI Search 作為記憶的存儲和檢索後端,尤其適用於結構化 RAG。
這讓你能基於自己的數據提供依據,確保回答更相關與精準。Azure AI Search 可用於存儲用戶特定的旅遊記憶、產品目錄或其他特定領域知識。
Azure AI Search 支援如結構化 RAG功能,擅長從大型資料集(對話歷史、郵件、圖片)中提取並檢索密集結構化資訊。與傳統文本切片和嵌入方法相比,能提供「超越人類的精確度和召回率」。
自我改進代理的一個常見模式是引入一個「知識代理」。此獨立代理會監控使用者與主要代理間的對話。其職責是:
識別有價值資訊:判別對話中哪些內容值得保存為通用知識或特定使用者偏好。
擷取與摘要:提煉對話中的核心學習或偏好。
存入知識庫:將擷取的資訊持久化,通常存於向量資料庫中,以便後續查詢。
強化後續查詢:當使用者發起新查詢時,知識代理會檢索相關存儲訊息並附加於使用者提示中,為主代理提供重要上下文(類似 RAG)。
• 延遲管理:為避免拖慢用戶互動速度,可以先使用成本較低、較快的模型初步檢查信息是否有存儲或檢索價值,僅在必要時調用複雜的擷取/檢索程序。
• 知識庫維護:面對持續增長的知識庫,使用較少的資訊可移至「冷存儲」以節約成本。
加入 Azure AI Foundry Discord 與其他學習者會面,參加辦公時間並解決你的 AI 智能代理問題。
免責聲明:
本文件係使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件之母語版本應視為權威來源。對於重要資訊,建議使用專業人工翻譯。我們不對因使用本翻譯而引起之任何誤解或誤譯負責。