當討論建立 AI 代理人的獨特優勢時,主要會討論兩件事:呼叫工具以完成任務的能力,以及隨著時間改進的能力。記憶是建立能自我改進、並為使用者創造更好體驗的代理人的基礎。
在本課中,我們將探討 AI 代理人的記憶是什麼,以及我們如何管理和使用它來利於應用程式。
本課將涵蓋:
• 了解 AI 代理人的記憶:什麼是記憶以及為何對代理人至關重要。
• 實作與儲存記憶:為你的 AI 代理人新增記憶功能的實務方法,重點放在短期與長期記憶。
• 使 AI 代理人自我改進:記憶如何使代理人從過去互動中學習並隨時間改進。
本課包含兩個完整的 notebook 教學:
• 13-agent-memory.ipynb:使用 Mem0 和 Azure AI Search 與 Microsoft Agent Framework 實作記憶
• 13-agent-memory-cognee.ipynb:使用 Cognee 實作結構化記憶,自動建立由嵌入支援的知識圖、視覺化圖譜,以及智慧檢索
完成本課後,你將知道如何:
• 區分各種 AI 代理人記憶類型,包括工作記憶、短期記憶與長期記憶,以及像人格記憶與情節記憶等專門形式。
• 為 AI 代理人實作與管理短期與長期記憶,使用 Microsoft Agent Framework,運用 Mem0、Cognee、Whiteboard memory 等工具,並與 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,一個為 AI 代理人設計的開源語意記憶,它將結構化與非結構化資料轉換成由嵌入支援且可查詢的知識圖。Cognee 提供一個 雙存儲架構,結合向量相似度搜尋與圖譜關係,使代理人不僅能理解資訊的相似性,還能理解概念之間的關聯。
它擅長 混合式檢索,融合向量相似度、圖譜結構與 LLM 推理——從原始資料塊查找到具圖譜意識的問答。系統維持著一個會演化並成長的 活體記憶,同時保持作為一個連結圖而可查詢,支援短期會話上下文與長期持久記憶。
Cognee 的 notebook 教學(13-agent-memory-cognee.ipynb)示範了建立此統一記憶層的方式,並提供從導入多樣化資料來源、視覺化知識圖,到根據特定代理人需求使用不同搜尋策略進行查詢的實務範例。
除了像 mem0 這類專門記憶工具之外,你也可以利用像 Azure AI Search 這樣強大的搜尋服務作為儲存與檢索記憶的後端,特別適合結構化 RAG。
這讓你能以自己的資料為基礎來落地代理人的回應,確保更相關且更準確的答案。Azure AI Search 可用於儲存使用者特定的旅遊記憶、產品目錄或任何其他領域特定知識。
Azure AI Search 支援像 結構化 RAG 這類能力,擅長從大型資料集(例如對話歷史、電子郵件或影像)中萃取與檢索密集、結構化的資訊。相較於傳統的文本分段與嵌入方法,這提供了「超越人類的精準度與召回率」。
一個常見的自我改進代理人模式是引入一個 「知識代理人」。這個獨立的代理人會觀察使用者與主要代理人之間的主要對話。它的角色是:
識別有價值的資訊:判斷對話的哪一部分值得儲存為一般知識或特定使用者偏好。
萃取與摘要:將對話中的重要學習或偏好精簡提取出來。
儲存於知識庫:將這些萃取資訊持久化,通常存到向量資料庫,以便日後檢索。
增強未來查詢:當使用者發起新查詢時,知識代理人檢索相關儲存資訊並將其附加到使用者的提示中,為主要代理人提供關鍵上下文(類似 RAG)。
• 延遲管理:為避免降低使用者互動速度,可先使用較便宜且較快的模型來快速檢查資訊是否值得儲存或檢索,僅在必要時才調用更複雜的萃取/檢索流程。
• 知識庫維護:對於成長中的知識庫,較少使用的資訊可以移到「冷存儲」以管理成本。
加入 Microsoft Foundry Discord 與其他學習者交流,參加辦公時間並獲得你的 AI Agents 問題解答。
免責聲明: 本文件係使用 AI 翻譯服務 Co-op Translator 進行翻譯。雖然我們力求準確,但請注意自動翻譯可能包含錯誤或不精確之處。原始文件的母語版本應視為具法律效力或權威性的來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而導致的任何誤解或誤釋負責。