ai-agents-for-beginners

AI 代理的記憶

Agent Memory

談論建立 AI 代理的獨特優勢時,主要討論兩件事:呼叫工具完成任務的能力,以及隨時間改進的能力。記憶是創建自我改進代理,為用戶創造更好體驗的基礎。

在本課程中,我們將探討 AI 代理的記憶是什麼,以及如何管理和利用記憶來提升應用程式的效益。

介紹

本課程將涵蓋:

理解 AI 代理的記憶:什麼是記憶,以及為何對代理至關重要。

實作與儲存記憶:針對 AI 代理加入記憶功能的實用方法,聚焦短期記憶和長期記憶。

讓 AI 代理自我改進:記憶如何使代理從過去互動中學習並隨時間改進。

可用的實作方式

本課程包含兩個完整的筆記本教程:

13-agent-memory.ipynb:使用 Mem0 和 Azure AI Search,以 Semantic Kernel 框架實現記憶功能

13-agent-memory-cognee.ipynb:使用 Cognee 實現結構化記憶,自動建立以嵌入為基礎的知識圖譜,視覺化圖譜並進行智慧檢索

學習目標

完成本課程後,您將能夠:

區分各種 AI 代理記憶類型,包括工作記憶、短期記憶、長期記憶,以及專門形式如人格記憶和情節記憶。

為 AI 代理實作與管理短期和長期記憶,使用 Semantic Kernel 框架,利用 Mem0、Cognee、Whiteboard 記憶,並整合 Azure AI Search。

理解自我改進 AI 代理背後的原理,以及健全記憶管理系統如何促進持續學習和適應。

理解 AI 代理的記憶

從本質而言,AI 代理的記憶指的是讓它們保留和回憶資訊的機制。這些資訊可能是關於對話的具體細節、用戶偏好、過去行動,甚至是學習到的模式。

沒有記憶,AI 應用通常是無狀態的,意味著每次互動都從零開始。這會導致重複且令人沮喪的用戶體驗,因為代理“忘記”了之前的上下文或偏好。

為何記憶重要?

代理的智慧與其回憶並利用過去資訊的能力息息相關。記憶讓代理能夠:

反思:從過去的行動和結果中學習。

互動:維持持續對話的上下文。

主動與反應:根據歷史資料預測需求或適當回應。

自主:依靠儲存的知識,更獨立地運作。

實作記憶的目標是讓代理更 可靠且有能力

記憶的種類

工作記憶

可將其視為代理在單一持續任務或思考過程中使用的草稿紙。它保有運算下一步所需的即時資訊。

對 AI 代理而言,工作記憶通常捕捉對話中最相關的資訊,即使完整聊天記錄很長或被截斷,也聚焦於提取需求、提案、決策和行動等關鍵元素。

工作記憶範例

在旅遊訂票代理中,工作記憶可能會捕捉用戶當前的請求,例如「我想訂去巴黎的行程」。此特定需求被保存在代理的即時上下文中,以引導當前互動。

短期記憶

此類記憶在整個單一對話或會話期間保留資訊。它是當前對話的上下文,使代理能回顧先前對話輪次。

短期記憶範例

如果用戶問「去巴黎的機票多少錢?」然後接著說「那住宿呢?」短期記憶能確保代理知道「那裡」指的是同一對話中的「巴黎」。

長期記憶

這類資訊跨多次對話或會話持續存在。它允許代理記住用戶偏好、歷史互動,或長時間的通用知識。這對個人化非常重要。

長期記憶範例

長期記憶可能會記住「Ben 喜歡滑雪和戶外活動,喜歡有山景的咖啡,因過去受傷避開高難度滑雪場」。這些訊息由先前互動學習,影響未來旅遊規劃時的推薦,讓服務更個人化。

人格記憶

這種專門的記憶類型幫助代理建立一致的「個性」或「人格」,記住自身或其設定角色的細節,使互動更流暢和聚焦。

人格記憶範例

若旅遊代理設計為「滑雪專家」,人格記憶可能強化此角色,令回應符合專家口吻與知識。

工作流程/情節記憶

此記憶保存代理在執行複雜任務過程中采取的步驟序列,包括成功與失敗。好比記住特定「事件」或過去經驗,從中學習。

情節記憶範例

如果代理嘗試訂某班機但失敗因為無法訂到,情節記憶能記錄此失敗,使代理在下次嘗試時嘗試替代航班或以更有情報的方式告知用戶。

實體記憶

此類記憶涉及從對話中抽取並記住特定實體(如人物、地點或物件)與事件,使代理能建立對討論關鍵元素的結構化理解。

實體記憶範例

從談論過去旅行的對話中,代理可能抽取「巴黎」、「艾菲爾鐵塔」和「Le Chat Noir 餐廳晚餐」等實體。未來對話時,代理能回想「Le Chat Noir」並提供訂位服務。

結構化 RAG(檢索增強生成)

雖然 RAG 是較廣泛的技術,結構化 RAG 特別強調為強大的記憶技術。它從多種來源(對話、電子郵件、圖片)抽取稠密、結構化的資訊,用來提升回答的精確度、回憶率與速度。與傳統僅靠語義相似度的 RAG 不同,結構化 RAG 運用資訊的內在結構。

結構化 RAG 範例

結構化 RAG 可以從電子郵件中解析航班細節(目的地、日期、時間、航空公司)並結構化存儲。如此能精確回應「我星期二訂了到巴黎的哪班機?」類的查詢。

實作與儲存記憶

為 AI 代理實作記憶涉及系統化的記憶管理流程,包括生成、儲存、檢索、整合、更新,甚至「遺忘」(或刪除)資訊。其中檢索尤為重要。

專門記憶工具

Mem0

儲存和管理代理記憶的一種方式是使用專門工具如 Mem0。Mem0 作為持續存在的記憶層,允許代理回憶相關互動、儲存用戶偏好與事實背景,並從成功或失敗中學習。概念是將無狀態代理轉成有狀態代理。

它通過兩階段記憶管線:抽取與更新工作。首先,代理線程中新加入的訊息會送到 Mem0 服務,該服務使用大型語言模型(LLM)摘要對話歷史並抽取新記憶。接著,LLM 驅動的更新階段判斷是否新增、修改或刪除這些記憶,並存入可包含向量、圖譜和鍵值資料庫的混合資料庫。此系統亦支持多種記憶類型並能整合圖形記憶管理實體間關係。

Cognee

另一強大方式是使用Cognee,開源的 AI 代理語義記憶,將結構化與非結構化資料轉成嵌入支持的可查詢知識圖譜。Cognee 採用雙存儲架構結合向量相似度搜索和圖譜關係,讓代理不僅理解資訊的相似性,還明白概念間的聯繫。

它擅長混合檢索,融合向量相似度、圖譜結構與 LLM 推理,從基礎資料塊查找到具圖譜感知的問答。系統維持活記憶,隨著時間演化成長,同時保持可查詢的連接圖,兼顧短期會話上下文和長期持續記憶。

Cognee 筆記本教程(13-agent-memory-cognee.ipynb)示範如何構建此統一記憶層,實例涵蓋多元資料來源的導入、知識圖譜視覺化及針對特定代理需求設計的不同檢索策略查詢。

使用 RAG 儲存記憶

除 Mem0 等專門記憶工具外,您還可利用強大搜尋服務如 Azure AI Search 作為記憶的後端儲存與檢索,特別是結構化 RAG。

此方式可讓代理回答根據您自己的資料基礎,確保答案更相關且準確。Azure AI Search 可用於儲存用戶的旅遊記憶、產品目錄或任何其他領域相關知識。

Azure AI Search 支援類似 結構化 RAG 的功能,擅長從大型數據集(對話歷史、電子郵件、甚至圖片)抽取與檢索稠密結構化資訊,提供相較傳統文字切塊與嵌入法更「超越人類的精準和回憶率」。

讓 AI 代理自我改進

自我改進代理的典型模式是引入「知識代理」。該獨立代理觀察用戶與主代理間的對話。其角色是:

  1. 辨識有價值的資訊:判定對話中是否有值得存為通用知識或特定用戶偏好的內容。

  2. 抽取與摘要:萃取並總結對話的核心學習或偏好。

  3. 儲存於知識庫:將抽取資訊持續保存,通常於向量資料庫中,以便後續檢索。

  4. 增強未來查詢:當用戶發起新查詢時,知識代理會召回相關儲存資訊並附加於用戶提示,提供主代理關鍵上下文(類似 RAG)。

記憶優化

延遲管理:為避免拖慢用戶互動,可先使用成本低、反應快的模型快速檢查資訊是否值得存取,僅在必要時調用更複雜的抽取/檢索過程。

知識庫維護:隨著知識庫增長,較少使用的資訊可移至「冷儲存」以節省成本。

對代理記憶還有更多問題?

歡迎加入 Azure AI Foundry Discord,與其他學習者交流,參加辦公時間並獲得 AI 代理相關問題的解答。


免責聲明
本文件經由 AI 翻譯服務 Co-op 翻譯器 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議聘請專業人工翻譯。本公司對因使用本翻譯而產生的任何誤解或誤譯概不負責。