AI Agent 的記憶管理:短期記憶、長期記憶與自我改進
原文:Microsoft AI Agents for Beginners · MIT 授權
為什麼 AI Agent 需要記憶?
在討論 AI Agent 的獨特優勢時,兩個核心能力最常被提及:透過工具完成任務的能力,以及隨時間自我改進的能力。而記憶(Memory)正是打造這類自我改進 Agent 的基礎。
什麼是 AI Agent 的記憶?
記憶是讓 Agent 保留並回憶資訊的機制。這些資訊可以是對話細節、使用者偏好、過往行動記錄,甚至是學到的行為模式。
沒有記憶的 AI 應用通常是無狀態(stateless)的——每次互動都從零開始,導致使用者不斷重複說明,體驗極差。Agent 的智慧與其回憶和利用過往資訊的能力密不可分。記憶讓 Agent 做到:
| 能力 | 說明 |
|---|---|
| 反思性 (Reflective) | 從過往行動與結果中學習 |
| 互動性 (Interactive) | 在對話中維持上下文 |
| 主動/被動 (Proactive/Reactive) | 根據歷史資料預測需求或適切回應 |
| 自主性 (Autonomous) | 利用儲存知識更獨立地運作 |
記憶的七種類型
1. 工作記憶 (Working Memory)
想像成 Agent 在執行單一任務時的「便條紙」。它只保留計算下一步所需的即時資訊。對 AI Agent 而言,工作記憶會從對話中提取最關鍵的元素——需求、提案、決策和行動項目。
範例:旅遊訂票 Agent 中,工作記憶保存使用者目前的需求,例如「我要訂去巴黎的機票」,作為當前互動的指引。
2. 短期記憶 (Short Term Memory)
在單次對話或會話期間保留資訊,讓 Agent 能回溯對話前面的回合。在 Microsoft Agent Framework 中,這對應到 AgentSession——框架內建的短期記憶。同一 session 內上下文有效,但 session 結束或重啟後不會保留。
範例:使用者問「去巴黎的機票多少錢?」接著問「那住宿呢?」——短期記憶讓 Agent 知道「那」指的是「巴黎」。
3. 長期記憶 (Long Term Memory)
跨越多個對話或會話持續存在的資訊。讓 Agent 記住使用者偏好、歷史互動,實現真正的個人化。通常透過資料庫、向量索引或其他持久化儲存實現。
範例:長期記憶可能儲存「Ben 喜歡滑雪和戶外活動、喜歡山景咖啡、因過去受傷要避開高級雪道」。這些資訊在未來規劃旅行時會自動影響推薦。
4. 人格記憶 (Persona Memory)
幫助 Agent 建立一致的「人格」或「角色」,記住自己的定位和風格,讓互動更流暢、更聚焦。
範例:若旅遊 Agent 設計為「專業滑雪規劃師」,人格記憶會強化這個角色,讓回應語氣符合專家定位。
5. 工作流程/情節記憶 (Episodic Memory)
儲存 Agent 在複雜任務中執行的步驟序列,包括成功與失敗。就像記住特定的「情節」或過往經驗來學習。
範例:若 Agent 嘗試訂某航班但因滿位失敗,情節記憶記錄這次失敗,下次會自動嘗試替代航班或更有條理地告知使用者。
6. 實體記憶 (Entity Memory)
從對話中提取並記住特定實體(人物、地點、事物)和事件,建立對關鍵元素的結構化理解。
範例:從過往對話中提取「巴黎」、「艾菲爾鐵塔」、「Le Chat Noir 餐廳」。未來互動中 Agent 可主動提議「要再訂 Le Chat Noir 嗎?」
7. 結構化 RAG (Structured RAG)
從多種來源(對話、郵件、圖片)提取密集且結構化的資訊,在精確度、召回率和速度上超越傳統 RAG。不像經典 RAG 只依賴語義相似度,結構化 RAG 利用資訊的內在結構。
範例:不只做關鍵字比對,而是從郵件中解析航班細節(目的地、日期、時間、航空公司)並結構化儲存,支援「我週二訂了哪班去巴黎的飛機?」這類精確查詢。
記憶的實作與管理
為 AI Agent 實作記憶涉及系統化的記憶管理流程:生成、儲存、檢索、整合、更新,甚至是「遺忘」(刪除)資訊。其中檢索是最關鍵的環節。
Mem0:持久化記憶層
Mem0 是一個專門的持久化記憶工具,讓無狀態 Agent 變為有狀態。它透過兩階段記憶管線運作:
- 提取階段:訊息傳送至 Mem0 服務,由 LLM 摘要對話歷史並提取新記憶
- 更新階段:LLM 驅動判斷該新增、修改或刪除哪些記憶,儲存在混合資料儲存(向量 + 圖譜 + 鍵值資料庫)
Mem0 支援多種記憶類型,並可整合圖譜記憶來管理實體間的關係。
本課提供完整 Notebook:13-agent-memory.ipynb
Cognee:語義記憶 + 知識圖譜
Cognee 是開源語義記憶工具,將結構化與非結構化資料轉換為可查詢的知識圖譜(搭配 embeddings)。其雙儲存架構結合向量相似度搜尋與圖譜關係:
- 混合檢索:融合向量相似度、圖譜結構與 LLM 推理——從原始區塊查詢到圖譜感知問答
- 活記憶 (Living Memory):記憶持續演化成長,同時保持為一個可查詢的連通圖譜
- 雙模式:支援短期 session 上下文與長期持久化記憶
本課提供完整 Notebook:13-agent-memory-cognee.ipynb
Azure AI Search 作為記憶後端
除專用記憶工具外,也可用 Azure AI Search 作為記憶儲存和檢索後端,特別適合結構化 RAG。它能:
- 用自有資料為 Agent 回應提供 grounding,確保更相關、更準確的答案
- 儲存使用者特定的旅行記憶、產品目錄或任何領域知識
- 支援結構化 RAG,從大量對話歷史、郵件甚至圖片中提取密集結構化資訊
讓 AI Agent 自我改進
自我改進 Agent 的常見模式是引入一個「知識 Agent」。這個獨立 Agent 觀察使用者與主要 Agent 之間的對話,負責:
- 識別有價值資訊:判斷對話中哪些部分值得儲存為通用知識或使用者偏好
- 提取與摘要:將對話中的關鍵學習濃縮
- 存入知識庫:將提取的資訊持久化(常使用向量資料庫)
- 增強未來查詢:新查詢時,知識 Agent 檢索相關儲存資訊並附加到使用者 prompt,為主要 Agent 提供關鍵上下文(類似 RAG)
記憶優化策略
| 策略 | 做法 |
|---|---|
| 延遲管理 (Latency) | 先用便宜、快速的模型快速判斷資訊是否值得儲存或檢索,只在必要時才觸發複雜的提取/檢索流程,避免拖慢使用者互動 |
| 知識庫維護 | 對持續成長的知識庫,將不常用資訊移至「冷儲存」以控制成本 |
本課重點回顧
- 記憶是 Agent 自我改進的基礎——沒有記憶的 Agent 只是無狀態的問答機,有了記憶才能真正學習和個人化
- 七種記憶類型涵蓋從即時工作記憶到跨會話長期記憶,每種都有特定用途
- 工作記憶是當前任務的便條紙;短期記憶維持單次對話上下文;長期記憶跨越多次會話實現個人化
- Mem0 提供兩階段記憶管線(提取+更新),Cognee 用知識圖譜實現混合檢索,Azure AI Search 是結構化 RAG 的強大後端
- 知識 Agent 模式:獨立觀察對話、提取有價值資訊、儲存並在未來查詢中增強上下文
- 記憶系統需要成本管理:快模型做初篩,慢模型做深層處理;冷儲存管理長期成本