Agent 的记忆如何分层
一句话速记
按时间范围与可检索性分:短期/工作记忆(当前会话与 scratchpad)、长期/语义(向量库、文档)、过程/情节(按 episode 或轨迹存,用于复盘与少样本学习);工程上常再加结构化**(表、图)与事实校验层。**
与认知科学名词类比,实现不必一一严格对应,讲清每类管什么、怎么写怎么读即可。
分层(常考名与用途)
| 层级 | 常叫法 | 存什么 | 怎么读 | 风险 |
|---|---|---|---|---|
| 工作记忆 | context window, scratchpad, short-term | 最近若干轮、当前子目标、中间结论 | 直接拼进 prompt | 长度上限;要摘要与裁剪 |
| 语义 / 长期 | RAG, knowledge base, doc store | 领域文档、手册、跨会话知识 | 检索 top-k 再注入 | 过时/冲突;需重排 |
| 情节 / 轨迹 | episodic, trajectory log | 过去任务的 action-observation、成败 | 少样本、反思、调参 | 隐私、合规、体积;要脱敏 |
| 工作记忆摘要 | summary memory | 对长对话的压缩段落 | 替代原始轮次 | 摘要丢细节;可多层摘要 |
程序性(procedural)记忆在系统里多体现为固定代码、工作流配置、工具 schema——不放在 LLM 里背,别和向量库混成一类;可总结一句**「规则与代码算系统记忆,模型侧记检索类」**。
和「向量库=记忆」的纠偏
- 向量库只解决 O(1) 语义检索 的一种长期形态;键值、图、关系库 同样可以是长期记忆。
- 记忆写入策略:实时写、定期 consolidation(合并重复)、遗忘(LRU、重要性抽样)。
延伸追问
-
Q:记忆和 RAG 何异?
答:RAG 是查外部知识的一种读路径;记忆在 Agent 里还包含本任务中间状态、跨轮承诺、自生成 scratchpad——范围更大;Agentic RAG 则把「何时查、改 query、多跳」也交给策略。 -
Q:多智能体共用一个记忆还是隔离?
答:可 共享知识库 + 每角色私聊 scratchpad;冲突需 锁 或 归并者 角色设计。 -
Q:长上下文=不用分层?
答:检索与摘要仍要:成本、首 token 时延、注意力分散、关键事实定位 都不随窗口线性变好。
我的记法
TODO
状态
- 已背速记
- 能讲通俗版
- 能答追问
参考资料
- 综述类 Memory in LLM Agents 主题;实现层面见各框架的 memory module 设计说明。