ai-agents-for-beginners

人工智能代理的記憶

Agent Memory

當討論建立人工智能代理的獨特優勢時,主要談及兩個方面:調用工具完成任務的能力和隨時間提升的能力。記憶是創建能自我改進、能為用戶創造更好體驗的代理的基礎。

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

介紹

本課程涵蓋:

理解人工智能代理記憶:記憶是什麼及其對代理的重要性。

實現與儲存記憶:為人工智能代理添加記憶功能的實用方法,聚焦短期與長期記憶。

讓人工智能代理自我改進:記憶如何讓代理從過去的互動中學習並隨時間提升。

可用實作

本課程包含兩個全面的筆記本教程:

13-agent-memory.ipynb:使用 Mem0 和 Azure AI 搜索配合 Microsoft 代理框架來實作記憶

13-agent-memory-cognee.ipynb:利用 Cognee 實作結構化記憶,自動構建以嵌入為後盾的知識圖譜,視覺化圖譜及智能檢索

學習目標

完成本課程後,您將了解如何:

區分各類人工智能代理記憶,包括工作記憶、短期記憶、長期記憶,以及專門形式如角色記憶和情節記憶。

使用 Microsoft 代理框架實作與管理短期及長期記憶,利用 Mem0、Cognee、白板記憶等工具,並整合 Azure AI 搜索。

理解自我改進人工智能代理的原理,以及健全的記憶管理系統如何促進持續學習與調整。

理解人工智能代理記憶

本質上,人工智能代理的記憶指的是允許其保存和回憶信息的機制。這些信息可以是對話的具體細節、用戶偏好、過去行動,甚至是學習到的模式。

沒有記憶,人工智能應用通常是無狀態的,意味著每次互動都從零開始。這導致用戶體驗重複且令人沮喪,代理「忘記」以前的上下文或偏好。

為何記憶重要?

代理的智能與其回憶並利用過去信息的能力息息相關。記憶使代理能夠:

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

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

主動及反應:根據歷史數據預測需求或適當回應。

自主:通過調用存儲的知識,更加獨立運作。

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

記憶類型

工作記憶

想像這是代理在單一、進行中任務或思考過程中使用的草稿紙。它保存計算下一步所需的即時信息。

對 AI 代理來說,工作記憶通常擷取對話中最相關的資訊,即使整個聊天記錄很長或被截斷。它專注於抽取關鍵元素,如需求、提案、決策和行動。

工作記憶範例

在旅行訂票代理中,工作記憶可能抓取用戶當前請求,如「我想訂一趟去巴黎的行程」。這個具體需求會被保存在代理的即時上下文中以指導當前互動。

短期記憶

此類記憶會保留信息於單次對話或會話期間。它是當前聊天的上下文,令代理能回顧之前的對話輪次。

短期記憶範例

如果用戶問:「飛往巴黎的機票多少錢?」接著問「那住宿呢?」短期記憶讓代理知道「那裡」指的是「巴黎」並持續在同一對話內。

長期記憶

指跨多次對話或會話持久保存的信息。它讓代理能記住用戶偏好、歷史互動或廣泛知識。這對個人化極為重要。

長期記憶範例

長期記憶可能記錄「Ben喜歡滑雪和戶外活動,喜歡在有山景的咖啡店喝咖啡,因過去受傷而避免高階滑雪道」。這些從過去互動學到的資訊會影響未來旅遊規劃,使推薦更個人化。

角色記憶

這種專門記憶幫助代理形成一致的「個性」或「角色」。它讓代理記住自身或其扮演角色的細節,令互動更自然且聚焦。

角色記憶範例

如果旅行代理被設計為「滑雪專家規劃師」,角色記憶會強化這身份,令其回應風格與專家的語調及知識一致。

工作流程/情節記憶

此類記憶保存代理在複雜任務中執行的步驟序列,包括成功和失敗。就像是記錄特定「事件」或過往經驗,並從中學習。

情節記憶範例

如果代理嘗試訂特定航班但因無空位而失敗,情節記憶可記錄此失敗,讓代理下一次嘗試時能試其他航班或更明智地通知用戶。

實體記憶

包含從對話中提取並記住特定實體(如人物、地點或事物)與事件。這讓代理建立討論關鍵元素的結構化理解。

實體記憶範例

從一次旅行對話中,代理提取「巴黎」、「埃菲爾鐵塔」及「Le Chat Noir餐廳晚餐」等實體。未來互動時,代理能回憶「Le Chat Noir」並建議重新訂位。

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

RAG 是較廣的技術,而「結構化 RAG」則被強調為強大記憶技術。它從各種來源(對話、電郵、圖像)中提取密集且結構化的信息,用於提升回應的精度、召回率和速度。不同於只依賴語義相似度的傳統 RAG,結構化 RAG 利用資訊本身的結構。

結構化 RAG 範例

不只是匹配關鍵字,結構化 RAG 能從電郵中分析航班詳情(目的地、日期、時間、航空公司),並以結構化方式儲存。這允許精確查詢如「我週二訂了哪班去巴黎的航班?」

實現與儲存記憶

為人工智能代理實現記憶涉及系統性的記憶管理流程,包括生成、儲存、檢索、整合、更新甚至「遺忘」(刪除)信息。檢索部分尤其重要。

專用記憶工具

Mem0

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

它通過兩階段記憶管線:抽取與更新運作。首先,添加到代理執行緒的訊息會發送到 Mem0 服務,該服務利用大型語言模型(LLM)摘要對話歷史並抽取新記憶。隨後,由 LLM 驅動的更新階段決定是否新增、修改或刪除這些記憶,將其存儲在可包含向量、圖譜及鍵值資料庫的混合儲存中。該系統也支持多種記憶類型,並可結合圖譜記憶以管理實體關係。

Cognee

另一強大方法是使用Cognee,這是面向 AI 代理的開源語義記憶,將結構化與非結構化數據轉換為基於嵌入的可查詢知識圖譜。Cognee 採用雙存儲架構,結合向量相似搜索與圖譜關係,讓代理不僅理解信息相似度,還能理解概念彼此間的關聯。

它擅長混合檢索,融合向量相似、圖譜結構與 LLM 推理—從原始資料塊查詢到具備圖譜意識的問答。系統維護可演化且增長的活記憶,同時作為一個連結圖譜保持可查詢狀態,支持短期會話上下文和長期持久記憶。

Cognee 筆記本教程(13-agent-memory-cognee.ipynb)示範建立此統一記憶層,並提供多元資料源輸入、知識圖譜視覺化以及針對特定代理需求客製化的查詢策略範例。

使用 RAG 儲存記憶

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

這讓您的代理能以自有數據為基礎生成回應,確保更相關且精確的答覆。Azure AI 搜索可用於存儲用戶專屬旅行記憶、產品目錄或任意領域專知識。

Azure AI 搜索支援結構化 RAG功能,擅長從大型數據集(如對話歷史、電郵乃至圖片)抽取並檢索密集、結構化信息。這相比傳統文本分塊與嵌入方法,提供「超越人類的精準度與召回率」。

讓人工智能代理自我改進

自我改進代理的一個常見模式是引入一個「知識代理」。此獨立代理觀察主要代理與用戶間的對話。其角色是:

  1. 識別有價值信息:判斷對話中哪部分值得作為通用知識或特定用戶偏好保存。

  2. 提取與摘要:濃縮對話中的關鍵學習或偏好。

  3. 存入知識庫:將提取信息保存,通常是向量數據庫,方便日後檢索。

  4. 增強未來查詢:當用戶發起新查詢時,知識代理調取相關存儲信息並附加至用戶提示,為主代理提供關鍵上下文(類似 RAG)。

記憶優化策略

延遲管理:為避免拖慢用戶互動,可先使用更便宜、更快的模型快速檢查存儲或檢索信息的價值,僅在必要時調用更複雜的抽取/檢索流程。

知識庫維護:針對不斷擴大的知識庫,較少使用的信息可移至「冷存儲」以節省成本。

有更多代理記憶相關問題?

加入Microsoft Foundry Discord與其他學習者交流,參加辦公時間並獲得您的人工智能代理問題解答。


免責聲明
本文件是使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原文件的原始語言版本應被視為權威來源。對於重要信息,建議採用專業人工翻譯。對於因使用本翻譯而引致的任何誤解或誤譯,我們概不負責。