Gary
Hsieh
2026 · taipeiloading
回到文章列表
軟體工程AI 趨勢2026-05-27

AI 從 Stateless 到 Stateful,Memory 系統設計整張地圖長這樣 — 從認知科學引入、到 representation 演進、到 library 落地,整理一條完整的生態系脈絡

AI 從 Stateless 到 Stateful,Memory 系統設計整張地圖長這樣 — 從認知科學引入、到 representation 演進、到 library 落地,整理一條完整的生態系脈絡

AI 從 Stateless 到 Stateful,Memory 系統設計整張地圖長這樣——從認知科學引入、到 representation 演進、到 library 落地,整理一條完整的生態系脈絡。

LLM 是 stateless 的——每次 API call 都是全新的。既然 AI / LLM 不會記得任何東西,為什麼我們今天用 ChatGPT、用 Claude,感覺它好像「記得」上次聊過什麼?因為記憶不在 LLM 裡,記憶在外面。Application layer 在每一次 call 時把外部資訊重新塞回去——也就是「inject」這個動作。

而過去兩年,「外面那一層」已經發展成一整片生態。各種 library、各種 representation、各種 retrieval 策略——多到眼花撩亂😵‍💫。這篇想把這張地圖畫出來。

一、認知科學引入 — 定義 Memory 開始

學界討論 agent memory 的時候,多半從認知心理學引入。1972 年 Tulving 提出 Episodic vs Semantic 的區分,後來慢慢擴展成三類:

  • Semantic — 我知道什麼(事實、知識、偏好;我是誰,我喜歡什麼)
  • Episodic — 發生過什麼(有時間戳的具體事件;我上週看了一場電影)
  • Procedural — 怎麼做(工作流程、SOP;我坐捷運上班)

這個三分法在 2023 年的 CoALA 論文(Princeton)被正式帶進 LLM agent 領域,之後:

  • 2023 年 AAAI Fall Symposium 的《Memory Matters》
  • 2025 年 8 月的 MemP(procedural memory 的代表作)
  • 2025 年 12 月 position paper《Episodic Memory is the Missing Piece》
  • 2026 年 2 月的《Anatomy of Agentic Memory》

——這條 timeline 把學界對 agent memory 的理解一步步推到今天。

之前在 Meta《HyperAgents》聊過第四類——Strategic Memory(或叫 Operational Knowledge)——三分法裝不下的「實驗結果 + 因果推論」這種決策知識。Strategic Memory 工程界早就在做了。Martin Fowler 在他的部落格寫過 ADR(Architecture Decision Record)的觀念——記錄做了什麼決策、考慮過哪些替代方案、為什麼選這個。Code comment 也是同類載體。這些都是工程版的 strategic memory,學界沒給它正式分類。

二、另一種視角 — Memory 的存取階層

除了「內容類型」這個視角,還有另一種來自 OS 的視角——Letta(前 MemGPT)團隊提出的:

  • Core memory — 永遠在 context 裡,像 RAM
  • Archival memory — 存在外部,要 retrieve 才能用,像 disk
  • Recall memory — conversation history,最近的對話紀錄;或是需要時提取 / 丟棄

這個視角為什麼重要?因為它直接決定 retrieval 怎麼做:

  • Core 不需要 retrieve(永遠都在)
  • Archival 才需要 retrieve(外部存儲,要主動去找)
  • Recall 是 sliding window(最近的留著、舊的壓縮或丟)

同一筆記憶可以同時用「類型」和「階層」兩個維度描述——例如「user 偏好 dark mode」是 Semantic + Core,「上週討論了 code review framework」是 Episodic + Archival。

三、所有 memory 系統做的,本質都是同一個動作

無論你用 Mem0、Letta、Zep、agentmemory,做的本質動作就一個——把外部資訊 inject 進 context window。差別只在三件事:

  1. 呈現形式(Representation)
  2. 消化方式(Synthesis timing)
  3. 誰主動(Agency)

一個一個來看。

四、Representation — 從 Vector 到 Knowledge Graph

最早期的記憶系統用 vector——把文字轉成向量,靠語意相似度去找相關內容。簡單、好實作、適合「找跟這個問題相關的內容」。但 vector 有個天生侷限——它只能告訴你「A 和 B 語意相似」,沒辦法告訴你「A 怎麼跟 B 相關」。

舉個例子,問「賈伯斯的接班人是哪裡人?」這種問題:

  • Vector 能找到「賈伯斯」「庫克」「Apple」這些相關詞,但拼不出答案
  • Knowledge Graph 可以直接走「賈伯斯 → 接班人 → 庫克 → 出生於 → Alabama」這條路徑

這種「關係性的查詢」就是 vector 解決不了的問題——也是 KG 開始被引進 memory 系統的原因。

Knowledge Graph 的起源其實要追溯到 2012 年 Google 發表的《Introducing the Knowledge Graph: things, not strings》——那是 KG 這個概念主流化的關鍵時刻。從那之後,各大廠 Service 都做了自己的 KG,到 2020 年代 LLM 興起,KG 跟 LLM 的結合變成熱門研究。

之後 Zep 又再加了一層——Temporal Knowledge Graph,每條 edge 都帶「有效時間」。這樣就能回答「前一版實作我們用什麼?」「上週這個關係還在嗎?」這種時序推理。

到了 2026 又出現 Multi-strategy retrieval——代表作是 Hindsight(vectorize.io, 2026/03),四個策略並行:semantic search、BM25 keyword、entity graph traversal、temporal filtering,最後用 cross-encoder 重排。在 LongMemEval 上拿到 91.4%。Mem0 2026 版本也走類似路線,把 semantic + BM25 + entity 三種訊號融合成單一 score。

(簡單補充:semantic 是 embedding 語意搜尋;BM25 是字串比對;Entity 是記憶做 tagging,搜尋 tag。)

演進路線是:Vector → Knowledge Graph → Temporal KG → Multi-strategy。不同的 representation 對應不同的 retrieval 策略——這也是為什麼 representation 的選擇這麼重要。

五、Synthesis Timing — 什麼時候動用LLM 消化

第二個關鍵差異是——LLM synthesis 發生在什麼時候?

  • Retrieval-time synthesis(傳統 RAG) — 每次 query 都讀 raw、現場 LLM 合成答案
  • Ingest-time synthesis(2026 主流) — 一次性處理 raw、之後 query 直接打已經處理好的 derived layer

2026 主流的 memory 系統(Mem0、Zep、Cognee、agentmemory)幾乎都走 ingest-time synthesis,RAG 變成 fallback,不是核心。為什麼?因為 bookkeeping cost 比 retrieval cost 低很多倍——每次 retrieval 就要花一次 LLM 整理資訊,讀的次數預期比寫多很多。而且 cross-reference 在 ingest 時就建好的話,之後 query 可以多次受惠。

六、Memory Digestion — 不吃 vs 消化

Inject 是動作,但 memory 不會自動變好,要主動「消化」它。兩種完全不同的動作拆開來看:

  • Compaction — 為了不爆 context 而做的壓縮(被動)。代表:Anthropic / OpenClaw auto-compact
  • Consolidation — 為了重組知識而做的蒸餾(主動)。代表:A-MEM 的 memory evolution、OpenClaw 的 Dreaming、MemP 的 procedural distillation

兩者本質差很多。如果只是純文本記憶,做 inject 層級的調整就夠了——該丟的丟、該留的留,這是 compaction。但如果要做真正的「forget 機制」、要讓 memory 之間產生新的連結、要從 episodic 慢慢蒸餾成 strategic——就需要 consolidation(也可以真正解決 memory conflict 的問題)。

Compaction 是為了不脹——排掉吃不下的;Consolidation 是為了變聰明——吸收成養分。

七、Agency — 誰主動管理記憶

最後一個差異是「誰主動」?三種設計哲學:

  • Transparent — LLM 不知情,application layer 在背後 inject(mem0 風格)
  • Agent-aware — Agent 主動 call tool 管理 memory(Letta 風格,memory 操作是 tool)
  • Meta-managed — Meta agent 在更高層 orchestrate(MIRIX 風格)

mem0 為什麼能成為最廣泛採用的方案?因為它選了 Transparent——任何 LLM 都能用,不需要 LLM 配合,掛個 browser extension / Claude Code Hook 就能提取記憶、修改記憶。Letta 選 Agent-aware——控制力強,但他幾乎是設計一個 Agent,並不只是讓你外掛記憶,所有記憶操作都被封裝在 agent 裡。根據對於記憶抓手的深度來看,決定管理的層級。

八、Library 落地的三個層級

從前面這幾個維度(representation、synthesis、agency)展開,現在可以看整個 library 生態:

  • Developer 層(個人開發、自架、coding agent) → mem0、Cognee、Zep、agentmemory、OpenClaw、LLM Wiki
  • Agent Product 層(產品級、multi-tenant) → Letta、mem0 cloud (可搭配 Supabase)、Zep cloud
  • Self-improving 層 → MIRIX、HyperAgents、Hindsight、Hermes Agent、OpenClaw

Developer 層的四個我都試過了,給點個人推薦:

  • Mem0 — 最簡單,掛 extension / Hook 就能用。如果你只是想讓 Claude Code 記得你的偏好、或產品使用者偏好,Mem0 幾乎是最容易上手。
  • Cognee — 想做 local 的話很容易上手。完整本地部署、自動 ontology 生成,私人場景的好選擇。
  • Zep — Knowledge Graph 的設計很漂亮,bi-temporal model 對時序推理很有用。我用下來覺得它在「institutional knowledge」這種需要關係性查詢的場景很強。
  • agentmemory — 本質上是 Karpathy 的 LLM Wiki 概念的延伸實作。如果你不想搞懂 LLM Wiki 那篇 gist 在做什麼,直接裝 agentmemory 是最快的捷徑(但需要 LLM API key)。

Self-improving 那層的 MIRIX 跟 HyperAgents 還在研究階段,目前 production-ready 的還不多。但這個方向就是——不只是「用 memory」,而是「memory policy 本身可以被學習、被優化——meta cognitive」。

九、怎麼把這張地圖用起來

整個 conceptual map 的意義不是「哪個 library 最好」——而是讓你看到每個選擇背後的差異化:

  • 選 Mem0 vs Letta,本質是選 Transparent vs Agent-aware
  • 選 vector vs KG,本質是選「語意相似」vs「關係性推理」
  • 選 retrieval-time vs ingest-time,本質是選 per-query LLM cost vs per-ingest LLM cost
  • 選 self-host vs cloud,本質是選 data sovereignty vs scale

每個 library 都隱含一組 use case 差異,根據這組差異來選擇適合的 library。

What Now?

  • 純粹搞懂 AI memory 怎麼運作
  • 找個 library 試試看,串 Coding Agent w. Cross Platform
  • 評估自架 vs SaaS,搭設 Product 記憶服務
  • 為自己的 agentic workflow 設計記憶層

都可以從這張 conceptual map 出發——找到對應的 library,動手裝來試看看哪個最適合你的環境。我自己做的事就是把整個生態系畫成這張地圖,然後跑了幾個工具確認 framework 的個別優勢。

Memory 這塊還在快速演進中——我目前的體感是 2026 是 ingest-time synthesis 變成主流的一年,KG 開始挑戰 vector 的主導地位,self-improving 慢慢從學界走向 production。

Have Fun. 🫪😑

#AI#Agent#LLM#Claude Code#Claude