跳到主要内容
Agent Memory

第2章:Memory 分类法 —— CoALA、三维度法与人脑类比

Working / Episodic / Semantic / Procedural 四类 Memory 的定义与边界,2025 年 Forms × Functions × Dynamics 三维度法,以及不同应用场景的 Memory 偏好对照

CoALA Memory Taxonomy Episodic Semantic Procedural

要做对 Agent Memory,先要分清”哪一类记忆”。混淆的代价是高昂的——把语义事实当成事件存,后续检索就会”既不及时又不准确”;把过程性技能当成知识存,Agent 就学不会跨任务复用。本章把三套主流分类法讲透,并配一张”应用 → 偏好的 Memory 类型”对照表,让你后面看任何论文/框架时都能一秒定位它在解决什么。

📑 目录


1. 为什么需要分类法

不同类型的 Memory 在四个维度上完全不同,用同一种存储和检索方式必定吃亏:

维度一段对话事实用户偏好操作 SOP当前思考
写入频率每对话偶尔偶尔/版本管理每 turn
时间属性强时序弱时序(可演化)几乎无瞬时
存储介质KV / 向量KV / 图文档 / 代码RAM
检索方式时间 + 相似度精确 lookup + 相似度标签 / 分类不检索,直接持有
冲突处理保留多版本新覆盖旧版本控制

如果用同一个 vector store 存所有四类,就会出现”今天的偏好和昨天的对话事实在同一个相似度榜单里竞争”的混乱局面——检索准确率断崖式下降。

🌟 结论:分类先行,然后才能选合适的存储 + 检索 + 生命周期策略


2. CoALA 框架:认知科学的标准分类

CoALA(Cognitive Architectures for Language Agents,Sumers et al., 2023)是 Princeton + Anthropic 提出的语言 Agent 通用框架,把 Memory 划分为四类:

                   Memory

   ┌─────────────────┼─────────────────┐
   │                 │                 │
Working          Long-term         (Decision)

   ┌─────────────────┼─────────────────┐
   │                 │                 │
Episodic        Semantic         Procedural
"事件"          "知识"           "流程"

🍎 CoALA 的影响力:LangGraph 官方文档、Letta、LangMem 等主流框架都直接或间接采用这套四分法。理解了 CoALA,你能秒读懂大部分现代 Agent 框架的设计文档。


3. 四类 Memory 详解

3.1 Working Memory(工作记忆)

定义:Agent 当前推理 cycle 持有的信息——相当于人脑的”工作记忆环路”。

特点:

  • 时间尺度:单次 decision cycle(几秒)
  • 容量:有限(对应 LLM 的 context window)
  • 内容:当前 turn 的 input、scratchpad、tool call results、检索回来的相关 long-term memory
  • 不需要持久化

工程实现:LangGraph 的 state、AutoGen 的 messages、Mem0 的当前 session buffer。

# LangGraph state 即 Working Memory 的典型实现
class State(TypedDict):
    messages: list[BaseMessage]
    scratchpad: str
    retrieved_memories: list[Memory]

3.2 Episodic Memory(情节记忆)

定义:具体事件的记录——“什么时候、什么地点、谁、做了什么、结果如何”。

特点:

  • 强时间属性(timestamp 必须有)
  • 颗粒度细(每个事件一条)
  • 事实可演化但事件本身不被覆盖(永远是”过去发生了 X”)

例子:

  • “2026-04-15 14:32 用户咨询了产品 SKU-001 的发货时间”
  • “2026-05-01 用户对客服评分 1 星,理由是发货慢”
  • “工具调用 search_product(‘iPhone’),返回 12 条结果”

工程实现:

  • 时间戳索引的 vector store(Qdrant + payload timestamp)
  • Mem0 的 history 表
  • LangMem 的 episodic store

3.3 Semantic Memory(语义记忆)

定义:从多个事件中抽象、去时间化、高层化的事实知识。

特点:

  • 不带具体时间(或用 t_valid 范围)
  • 可被新事件更新或推翻
  • 颗粒度:从单条偏好到结构化档案

例子:

  • “用户偏好咖啡不加糖”(从多次点单事件中归纳)
  • “用户的常用配送地址是浦东新区张江”
  • “用户对价格敏感,折扣 > 20% 时转化率显著高”

工程实现:

  • 结构化 JSON / 文档(Letta 的 core memory human block)
  • KG 节点和边(Zep / Graphiti)
  • Vector store with deduplication policy(Mem0 graph mode)

🌟 关键算子:Consolidation(巩固)——把重复出现的 episodic facts 归纳成一条 semantic memory。第 6 章会详讲。

3.4 Procedural Memory(过程记忆)

定义:Agent 完成任务的操作流程、技能、SOP——“怎么做”的知识。

特点:

  • 通常以代码、prompt template、playbook 形式存在
  • 跨任务复用
  • 可以从成功案例中”沉淀”出来,也可以由人类预写

例子:

  • “处理退款请求的 5 步 SOP”
  • “调用 X API 时必须先 auth、再 query、最后 logout”
  • “代码生成时,先读 imports → 写函数签名 → 写实现 → 写测试”

工程实现:

  • LLM 的 system prompt(最朴素的 procedural memory)
  • 工具/函数库(每个 tool 即一种程序)
  • ACE / LangMem 中可被 agent 自动更新的 instructions
  • Voyager(Minecraft agent)的 skill library

🍎 趋势:可演化的 Procedural Memory——2025 年的 ACE(Agentic Context Engineering)论文展示 Agent 可以自我修改 system prompt(被誉为”agent 的微调”)。


4. 一个完整例子:客服退货请求

把四类 Memory 串起来看一个具体场景:

┌─────────────────────────────────────────────────────────┐
│ User: 我想退掉上周买的咖啡机,不好用                       │
└─────────────────────────────────────────────────────────┘

【Working Memory(当前 cycle)】
  - 当前消息: "我想退掉..."
  - Agent 临时变量: { intent: "refund", tone: "negative" }

【Episodic Memory(检索)】
  匹配: "2026-04-28 用户购买 SKU-coffee-pro,金额 ¥1299"
        "2026-05-01 物流签收"

【Semantic Memory(检索)】
  匹配: { user_id: 123, lifetime_value: ¥8500, vip_tier: gold,
          preferences: { return_method: "上门取件" } }

【Procedural Memory(应用)】
  SOP: refund_v3
    1. 验证订单存在 → ✓
    2. 验证签收时间 < 7 天 → ✓
    3. VIP 用户走快速通道 → ✓(查 semantic)
    4. 询问退款原因(简短)
    5. 安排上门取件(查 semantic 偏好)
    6. 标记 case,写回 episodic
    
┌─────────────────────────────────────────────────────────┐
│ Agent: 已为您发起退款。考虑到您是 Gold 会员,我们已安排  │
│        明天上午上门取件,无需您寄回。退款将在收到商品后   │
│        24h 内退回原账户。这次不愉快很抱歉,有什么具体     │
│        是哪方面体验不好,方便简单告诉我吗?                │
└─────────────────────────────────────────────────────────┘

【写回】
  Episodic: "2026-05-04 用户 123 发起退款 SKU-coffee-pro,
            原因待补充(已询问)"
  Semantic: 暂不更新(等用户回复后判断要不要新增"对咖啡机品类不满")

四类 Memory 各司其职、协同工作——这就是真正的 Agentic Memory System。


5. Memory in the Age of AI Agents:三维度法

CoALA 给出”功能”分类,2025 年的最新综述 Memory in the Age of AI Agents(arXiv 2512.13564)更进一步,从三个正交维度描述任意一个 Memory 系统:

5.1 Forms(形式)— “记忆物理上是什么”

形式物理介质例子
Token-level文本 / JSONMem0 / Letta 的事实文本
Parametric模型权重LoRA 微调后嵌入用户偏好
Latent中间向量 / KV cacheCached prefix、压缩 latent state

🌟 趋势:2025 年开始出现”hybrid form”——把高频访问的 fact 留 token 形式,把稳定的群体偏好烧入 parametric。

5.2 Functions(功能)— “记忆做什么用”

功能对应 CoALA
FactualSemantic
ExperientialEpisodic + Procedural
WorkingWorking

⭕ 注意综述把 Episodic 和 Procedural 合并成 Experiential(强调”经验”维度),颗粒度比 CoALA 略粗。

5.3 Dynamics(动态)— “记忆怎么演化”

阶段关键问题
Formation(形成)从 raw 数据怎么变成结构化 memory?
Evolution(演化)如何更新、合并、推翻、衰减?
Retrieval(检索)如何在合适时机拿出合适的 memory?

把这三维度套到任何框架,都能给出一份精确的”画像”:

框架FormsFunctionsDynamics 强项
Mem0TokenFactual + ExperientialEvolution(自动 dedup/merge)
LettaToken + Latent(prefix cache)All fourFormation + Retrieval
Zep / GraphitiToken + KGFactual + ExperientialEvolution(bi-temporal)
ACEToken(prompt)ProceduralEvolution(self-edit)

6. 人类记忆神经科学的类比

🧠 这套分类法不是凭空想的——它直接对应人类大脑的解剖学结构。

人脑结构主要负责Agent 对应
海马体(hippocampus)短期编码、新事件巩固Episodic Memory + Consolidation 算子
大脑皮层(neocortex)长期事实、语义网络Semantic Memory(KG)
小脑(cerebellum)+ 基底神经节程序性技能、运动模式Procedural Memory
前额叶工作记忆环路当前任务的活跃信息Working Memory
遗忘机制突触修剪、Ebbinghaus 曲线Decay / Forgetting 策略
睡眠中的记忆巩固episodic → semantic 的离线转换Reflection / 离线 batch consolidation

🍎 HippoRAG 论文的核心:用图算法(Personalized PageRank)模拟海马体的”模式分离 + 模式补全”机制,用于多跳检索。 🍎 MemoryBank 论文的核心:把 Ebbinghaus 遗忘曲线 R=et/SR = e^{-t/S} 直接搬到向量库的衰减权重里。 🍎 A-MEM 论文的核心:借用人类的 Zettelkasten 卡片盒方法(Niklas Luhmann 的笔记法),让记忆之间自动建立连接并演化。

当下最前沿的 Agent Memory 设计,几乎都借了人类记忆/认知科学的某一种机制。理解这些类比,论文读起来会顺畅很多。


7. 不同应用对 Memory 的偏好

不是所有应用都需要全部四类 Memory。下表是一份实战偏好对照:

应用类型主导 Memory次要 Memory典型设计
Personal Assistant(Siri-like)SemanticEpisodic偏好库 + 历史回溯
Customer Service AgentSemantic + EpisodicProcedural(SOP)用户档案 + 工单历史 + 流程引擎
SWE / Code Agent(Cursor / Devin)ProceduralEpisodic(成功 trace)工具技能库 + 历史 PR/commit
Game / RPG NPCEpisodic + ProceduralSemantic(人格设定)Memory Stream + Reflection
Scientific Research AgentSemantic(带不确定性)Procedural(实验流程)KG + uncertainty tracking
Multi-user SaaS(教育/医疗)Semantic 强 user 隔离Episodic多租户 namespace
Multi-Agent 协作(团队)Shared SemanticEpisodic per-agentG-Memory 三层图

🌟 设计 Agent 的第一步:先确定属于哪一类应用,再决定四类 Memory 的优先级。这能避免”什么都做但什么都做不好”的工程灾难。


✅ 自我检验清单

  • CoALA 四分:能不看资料默写 Working / Episodic / Semantic / Procedural 的定义和典型例子
  • 边界识别:给 5 条具体信息(“用户喜欢辣”、“昨天点了麻辣火锅”、“如何处理退款”、“当前对话历史”等),能正确归类
  • 客服例子:能复述四类 Memory 在退货请求中如何协同
  • 三维度法:能用 Forms × Functions × Dynamics 描述 Mem0 / Letta / Zep
  • 神经科学类比:能讲清海马体 / 皮层 / 小脑 / 前额叶各对应哪类 Memory
  • HippoRAG / MemoryBank / A-MEM 启发:能说出每个论文借鉴了哪条神经科学/认知科学原理
  • 应用偏好:能为”Cursor 这种代码 Agent”和”小红书种草 Agent”给出不同的 Memory 优先级
  • 反直觉:解释为什么”游戏 NPC 比通用助理更看重 Procedural Memory”

📚 参考资料

论文

  • CoALA: Cognitive Architectures for Language Agents (Sumers et al., 2023):arXiv 2309.02427
  • Memory in the Age of AI Agents (2025):arXiv 2512.13564
  • A Survey on the Memory Mechanism of LLM-based Agents (TOIS 2025):ACM 链接
  • Generative Agents (Park et al., 2023):arXiv 2304.03442 —— Memory Stream + Reflection 的灵感来源
  • HippoRAG (Gutiérrez et al., 2024):海马体启发
  • MemoryBank (Zhong et al., 2023):Ebbinghaus 曲线
  • A-MEM (Xu et al., NeurIPS 2025):arXiv 2502.12110 —— Zettelkasten 启发

神经科学与认知科学背景(选读)

  • Tulving (1972) Episodic and Semantic Memory —— 这一对名词的鼻祖论文
  • Squire (1992) Memory and Brain Systems —— Procedural / Declarative 划分的经典综述
  • Niklas Luhmann’s Zettelkasten —— A-MEM 借鉴的笔记方法学

框架文档