记忆系统综述
引言
记忆是智能的基石。没有记忆,Agent 无法从经验中学习,无法维持对话的连贯性,也无法在复杂任务中保持一致的行为。本节从人类记忆的心理学模型出发,建立 Agent 记忆系统的概念框架。
人类记忆模型
Atkinson-Shiffrin 模型(多重存储模型)
1968 年,Atkinson 和 Shiffrin 提出了经典的多重存储模型,将人类记忆分为三个阶段:
- 感觉记忆(Sensory Memory):持续时间极短(<1秒),容量大但衰退快
- 短期记忆(Short-term Memory):容量有限(7±2 项),持续约 20-30 秒
- 长期记忆(Long-term Memory):容量几乎无限,可持续数年甚至终生
graph LR
A[外部刺激] --> B[感觉记忆<br/>< 1秒]
B -->|注意| C[短期记忆<br/>7±2 项<br/>20-30秒]
B -->|未注意| D[遗忘]
C -->|编码/复述| E[长期记忆<br/>容量无限<br/>持久存储]
C -->|未复述| D
E -->|提取| C
Baddeley 工作记忆模型
Baddeley(1974, 2000)扩展了短期记忆的概念,提出工作记忆包含:
- 中央执行系统:注意力控制与协调
- 语音回路:语言信息的临时存储
- 视觉空间画板:视觉和空间信息处理
- 情景缓冲区:多模态信息的整合
Tulving 的长期记忆分类
- 情景记忆(Episodic):个人经历和事件
- 语义记忆(Semantic):一般知识和事实
- 程序记忆(Procedural):技能和操作方式
从人类记忆到 Agent 记忆
映射关系
| 人类记忆 | Agent 记忆 | 实现方式 |
|---|---|---|
| 感觉记忆 | 输入缓冲 | 原始输入(用户消息、API 返回) |
| 短期/工作记忆 | 上下文窗口 | LLM 的 context window(4K-128K tokens) |
| 长期记忆 - 情景 | 对话历史/经验库 | 向量数据库存储的历史交互 |
| 长期记忆 - 语义 | 知识库 | 知识图谱、结构化数据库 |
| 长期记忆 - 程序 | 学习到的工作流 | 存储的 prompt 模板、工具调用模式 |
Agent 记忆的核心挑战
- 容量限制:上下文窗口有限,不可能记住一切
- 检索效率:如何快速找到相关记忆
- 记忆更新:如何处理过时或矛盾的信息
- 重要性评估:哪些信息值得长期保存
Agent 记忆架构
graph TB
subgraph 输入层
U[用户输入] --> WM
T[工具返回] --> WM
E[环境观察] --> WM
end
subgraph 工作记忆
WM[上下文窗口<br/>Context Window]
end
subgraph 长期记忆
WM -->|存储| VDB[(向量数据库<br/>情景记忆)]
WM -->|存储| KG[(知识图谱<br/>语义记忆)]
WM -->|存储| PM[(工作流库<br/>程序记忆)]
end
subgraph 检索
VDB -->|相似性搜索| R[检索模块]
KG -->|结构化查询| R
PM -->|模式匹配| R
R -->|注入上下文| WM
end
WM --> LLM[LLM 推理]
LLM --> OUT[输出/行动]
记忆类型详解
按时间跨度分类
| 类型 | 时间跨度 | Agent 中的体现 |
|---|---|---|
| 即时记忆 | 当前轮次 | 当前 prompt 中的信息 |
| 短期记忆 | 当前会话 | 对话历史(session 内) |
| 中期记忆 | 跨会话 | 用户偏好、任务进度 |
| 长期记忆 | 永久 | 知识库、学习到的技能 |
按内容类型分类
- 事实性记忆:用户告诉 Agent 的具体信息("我的名字是...")
- 过程性记忆:Agent 学习到的操作模式("处理这类问题应该先...")
- 元记忆:关于记忆本身的记忆("这个信息之前讨论过")
记忆系统的评价指标
- 召回率(Recall):能否检索到相关记忆
- 精确率(Precision):检索到的记忆是否相关
- 延迟(Latency):检索速度
- 一致性(Consistency):记忆之间是否矛盾
- 时效性(Freshness):是否能反映最新信息
本章结构
本章将深入探讨 Agent 记忆系统的各个方面:
- 工作记忆与上下文管理 - 上下文窗口的高效利用
- 长期记忆与向量数据库 - 持久化存储与检索
- RAG 增强记忆 - 检索增强生成的完整管线
- 情景与语义记忆 - 不同类型记忆的设计
- 记忆架构设计 - 综合架构与前沿方案
参考文献
- Atkinson, R. C., & Shiffrin, R. M. (1968). "Human memory: A proposed system and its control processes"
- Baddeley, A. (2000). "The episodic buffer: A new component of working memory?"
- Tulving, E. (1972). "Episodic and semantic memory"
- Sumers, T. R., et al. (2023). "Cognitive Architectures for Language Agents"
- Zhang, Z., et al. (2024). "A Survey on the Memory Mechanism of Large Language Model based Agents"