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 代理記憶類型,包括工作記憶、短期記憶和長期記憶,以及如個性記憶和情節記憶等專門形式。

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

理解自我改進 AI 代理的核心原理,以及穩健的記憶管理系統如何促進持續學習與調適。

理解 AI 代理的記憶

本質上,AI 代理的記憶是讓它們能保留與回想資訊的機制。這些資訊可包含對話的特定細節、用戶偏好、先前行為,甚至是已學習的模式。

沒有記憶,AI 應用往往是無狀態的,意即每次互動都從頭開始。這會導致用戶體驗重複且挫折感高,因為代理「忘記」之前的上下文或偏好。

為何記憶重要?

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

反思:從過往行動及結果學習。

互動連貫:在持續的對話中維持上下文。

主動與反應:根據歷史數據預判需求或作出適當回應。

自主性:透過調用存儲知識更獨立運作。

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

記憶類型

工作記憶

可視為代理在單一進行中任務或思考過程中用的草稿紙,持有運算下一步即時所需的資訊。

對 AI 代理而言,工作記憶往往捕捉對話中最相關的資訊,即使完整聊天記錄冗長或被截斷。重點萃取需求、提案、決策與行動。

工作記憶範例

在旅行預訂代理中,工作記憶可能持有用戶當前需求,例如「我想預訂巴黎之行」。此具體需求在代理即時上下文中被保存,以引導當前互動。

短期記憶

此類記憶保留資訊於單一會話或場次期間,是當前聊天的上下文,讓代理可參照先前對話輪次。

短期記憶範例

用戶問「飛往巴黎的機票多少錢?」後續又問「那住宿呢?」短期記憶確保代理知道「那裡」指的是同一對話中的「巴黎」。

長期記憶

這是跨多次對話或場次持續存在的資訊。它讓代理記住用戶偏好、歷史互動或一般知識,甚具個人化作用。

長期記憶範例

長期記憶可能記錄「Ben 喜歡滑雪與戶外活動、喜歡山景咖啡,且因過去受傷想避免高難度滑雪道」。這些先前學習自互動的資訊,影響未來旅遊規劃建議,令推薦更貼心。

個性記憶

此專門記憶協助代理發展一致的「個性」或「角色」。讓代理記得有關自身或其角色扮演的細節,令互動更流暢且聚焦。

個性記憶範例

若旅行代理被設計成「滑雪專家規劃師」,個性記憶會加強此角色情境,影響其回應更符合專家語氣及知識。

工作流程/情節記憶

此記憶記錄代理在複雜任務中所採取的步驟序列,包括成功與失敗。像記住特定「情節」或過去經驗,方便從中學習。

情節記憶範例

代理嘗試訂購某航班但因無法訂票失敗,情節記憶會紀錄此失敗,讓代理於未來嘗試時得以試 alternative flights 或更明智地告知用戶狀況。

實體記憶

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

實體記憶範例

對談中提及過去旅程時,代理可能提取「巴黎」、「艾菲爾鐵塔」與「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 Translator 進行翻譯。儘管我們努力確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議聘請專業人工翻譯。我們不對因使用此翻譯而產生的任何誤解或誤釋負責。