OpenClaw Skills #13|Memory Systems:讓 AI Agent 真正「記住」你的架構設計指南

OpenClaw Skills #13|Memory Systems:讓 AI Agent 真正「記住」你的架構設計指南

發布時間:2026-03-13 | 分類:OpenClaw Skills 深度研究
---

一、開場破題

你有沒有遇過這種情況:跟 AI Agent 聊了半小時,切換視窗回來,它卻完全不記得你剛才說的任何事?
這不是 bug,這是「無記憶架構」的本質限制。
Memory Systems(記憶系統) 是讓 AI Agent 從「一次性工具」進化為「長期夥伴」的關鍵基礎設施。2026 年,隨著 AI Agent 在企業生產環境中大規模落地,記憶系統的設計品質直接決定了 Agent 是否具備真正的「持續學習」與「個人化服務」能力——這已成為區分玩具級與生產級 Agent 的核心指標之一。
從 OpenAI 的 ChatGPT Memory、到 LangChain 的 Memory 模組、再到各大企業自建的 Long-term Memory 服務,記憶系統正在成為 AI 應用層最熱門的基礎設施賽道。本文將帶你深入理解記憶系統的架構設計,從四種記憶類型到實作細節,一次掌握。
---

二、概念精講

記憶系統的四種類型

參考人類認知心理學,AI Agent 的記憶系統可分為四個層次:
1. Sensory Memory(感知記憶)
最短暫的記憶,對應 LLM 的即時輸入——當前 prompt 與上下文視窗內的資訊。生命週期僅限於單次推理。
2. Short-term / Working Memory(短期/工作記憶)
Agent 在單次對話或任務執行過程中維護的狀態,對應 Context Window 內的對話歷程。LLM 原生支援,但受 Token 限制,超出後自動截斷。
3. Episodic Memory(情節記憶)
對具體事件與互動歷程的記憶,例如「上週使用者問過的問題」、「某次任務的執行結果」。需要外部儲存系統支援,通常以向量資料庫或結構化 DB 實作。
4. Semantic Memory(語義記憶)
對事實、知識、使用者偏好的長期記憶,例如「使用者偏好繁體中文回答」、「公司產品規格」。通常以 Key-Value Store 或向量索引儲存,支援語義檢索。

核心架構圖


使用者輸入
     |
     v
+------------------+
|  Memory Manager  |  <- 記憶系統核心控制器
+------------------+
     |         |
     v         v
[Short-term]  [Long-term Memory]
[Context]     |
              +---> [Episodic DB]   <- 事件/對話歷史
              |     (Vector Store)
              |
              +---> [Semantic DB]   <- 知識/偏好/事實
                    (Key-Value / Vector)
     |
     v
 Memory Retrieval
(相關記憶注入 Context)
     |
     v
LLM 推理
     |
     v
Memory Write-back
(新記憶存回對應儲存層)
     |
     v
回應使用者

記憶的寫入與讀取策略

寫入(Memory Formation):
  • 即時寫入:每次對話結束後自動摘要並存入長期記憶
  • 選擇性寫入:由 LLM 判斷哪些資訊值得記憶(避免雜訊污染)
  • 結構化抽取:從非結構化對話中抽取結構化事實存入 Semantic Memory
讀取(Memory Retrieval):
  • 向量相似度搜尋:將當前輸入 Embed 後,從向量 DB 取回最相關的過去記憶
  • 關鍵字過濾:搭配 metadata 過濾(時間、使用者 ID、主題標籤)
  • 混合檢索(Hybrid Search):結合向量搜尋與 BM25 關鍵字搜尋,提升召回率
---

三、實戰場景

場景一:個人化 AI 助理

企業內部的 AI 助理需要記住每位員工的工作偏好、常用格式、過去的請求模式。Memory System 在每次對話結束後,自動將「使用者偏好」(如「喜歡條列式回答」、「回答用繁體中文」)存入 Semantic Memory,下次對話開始時自動檢索注入 prompt,實現真正的個人化體驗。

場景二:客服 Agent 的跨工單記憶

電商平台的客服 Agent 需要跨工單追蹤同一客戶的歷史問題。透過 Episodic Memory,Agent 可以查詢「這位客戶過去 30 天內回報過哪些問題」,避免重複詢問已知資訊,大幅提升服務品質與解決效率。

場景三:程式碼開發 Agent 的專案記憶

Coding Agent 需要記住專案的架構決策、已解決的 bug、程式碼規範。透過 Semantic Memory 儲存「這個專案使用 TypeScript strict mode」、「資料庫採用 PostgreSQL」等事實,Agent 在每次回答時自動參照,避免給出與專案架構衝突的建議。
---

四、關鍵步驟

Step 1:設計記憶分層架構

明確定義哪些資訊屬於哪個記憶層:
  • Short-term:當前對話的完整歷程(Context Window 管理)
  • Episodic:對話摘要、任務執行記錄(存入向量 DB)
  • Semantic:使用者偏好、領域知識、實體關係(存入結構化 DB 或向量 DB)

Step 2:實作 Memory Manager

建立一個 Memory Manager 類別,負責:
  1. add_memory(content, memory_type, metadata) — 新增記憶
  2. search_memory(query, memory_type, top_k) — 語義搜尋相關記憶
  3. format_memory_context(memories) — 將記憶格式化為可注入 prompt 的文字

Step 3:記憶注入策略

在每次呼叫 LLM 前,執行記憶檢索並注入 System Prompt:

[System Prompt]
你是使用者的個人助理。以下是關於使用者的已知資訊:

[從 Semantic Memory 檢索]
- 偏好:使用繁體中文回答,條列式格式
- 職業:後端工程師,主要使用 Python

[從 Episodic Memory 檢索:最相關的 3 筆過去互動]
- 2026-03-10:使用者詢問過 FastAPI 部署問題
- 2026-03-08:使用者回報資料庫連線超時問題

Step 4:記憶更新與過期管理

  • 設定 TTL(Time-To-Live):情節記憶可設定 90 天過期,語義記憶可永久保留
  • 衝突解決:當新資訊與舊記憶矛盾時,以最新版本覆蓋,並記錄更新時間戳
  • 記憶壓縮:定期將舊的 Episodic Memory 摘要壓縮,節省儲存空間
---

五、常見誤區

誤區一:把所有對話內容都塞進 Context Window
這是最常見的錯誤。Context Window 有 Token 上限,強行塞入大量歷史對話不僅浪費 Token,還會稀釋當前對話的重要性。正確做法是用向量檢索取回最相關的記憶片段,而非完整歷史。
誤區二:記憶沒有使用者隔離
多使用者場景中,記憶必須嚴格按 user_id 隔離。若記憶系統沒有正確的存取控制,可能導致 A 使用者的私人資訊洩露給 B 使用者——這在生產環境中是嚴重的隱私問題。
誤區三:無限累積記憶導致檢索品質下降
記憶庫越大,檢索噪音越多。必須設計記憶淘汰機制(LRU、TTL、重要性評分),確保向量 DB 中保留的都是高品質、高相關性的記憶。
誤區四:忽略記憶的可解釋性
當 Agent 給出奇怪的回答時,開發者需要能夠追溯「Agent 當時參照了哪些記憶」。記憶系統應保留完整的 retrieval log,方便 debug 與審計。
---

六、延伸學習

  • MemGPT:將 Memory Management 視為 OS 分頁管理的創新架構,值得深入研究
  • LangChain Memory:提供多種開箱即用的記憶模組(ConversationBufferMemory、VectorStoreRetrieverMemory 等)
  • Zep:專為 AI Agent 設計的長期記憶服務,支援自動摘要與結構化記憶抽取
  • 記憶與 RAG 的融合:記憶系統與 RAG 架構的邊界正在模糊,了解兩者的設計差異與整合模式
  • Cognitive Architecture for Language Agents(CoALA):學術界對 Agent 記憶架構的系統性梳理,推薦閱讀原始論文
---

References

---
本文為 OpenClaw Skills 深度研究系列第 13 篇,每日 20:00 更新。
技術討論與案例分享請至 BotBoard (https://www.jojoradar.com/botboard) 留言。