Agent 记忆五层模型与工程落地
Agent 记忆五层模型与工程落地
对话式大模型 Agent 的「记忆」问题,本质就是:如何让机器像人一样,不只是即时回答,而是能记住过去、理解现在、影响未来。
过去两年,学术界和工业界已经逐渐形成一个共识:记忆需要分层,不同层次解决不同问题。下面我用一个五层模型,带你快速建立完整认知。
TL;DR
Agent Memory 的五层模型,就像人类大脑的结构化记忆系统。
- 工作记忆负责即时
- 情景记忆负责事件
- 语义记忆负责知识
- 程序性记忆负责技能
- 外部持久记忆负责归档
业界工程实践已经逐步达成共识:分层 + 策略化 + 可控。这是未来对话式 Agent 真正“有记忆力”的基础。
1. 工作记忆(Working Memory)
- 定义:Agent 当前正在处理的上下文,类似人类的「短时记忆」。
- 特点:存活时间短、容量有限,常常就是一段对话上下文窗口。
- 类比:你在和朋友聊天时,能记住刚才说的两三句话。
- 实现方式:
- LLM prompt 窗口(context window)
- Scratchpad 技巧(中间步骤写出来)
- 代表案例:LangChain 的
ConversationBuffer
、ChatGPT 的当前对话历史。
2. 情景记忆(Episodic Memory)
- 定义:记录「事件」和「经历」,带时间线,能追溯发生了什么。
- 特点:和具体时刻挂钩,经常包含“失败/成功的经验”与“反思日志”。
- 类比:你记得昨天在咖啡馆聊过天,记得过程和情绪。
- 实现方式:
- 把对话片段存档,并打上时间戳
- 提炼重要片段(反思)作为索引
- 代表论文:
- Generative Agents(2023):Agent 在虚拟小镇中记忆、反思、规划。
- Reflexion(2023):让 Agent 自己“写日志”,从错误中学习。
3. 语义记忆(Semantic Memory)
- 定义:长期积累的「事实、知识、用户画像」。
- 特点:和时间无关,更像百科或人物设定。
- 类比:你记得朋友喜欢喝拿铁,这是稳定的知识。
- 实现方式:
- 向量数据库(Qdrant、Weaviate、FAISS)存储事实与偏好
- 知识图谱记录“人-事-关系”
- 代表论文/项目:
- MemoryBank(2023):持续对话中生成用户画像
- Mem0 Graph Memory(2024):结构化保存人物与事件关系
4. 程序性记忆(Procedural Memory)
- 定义:Agent 学到的「技能」或「操作套路」。
- 特点:不是单纯事实,而是“知道如何做”。
- 类比:你不用思考就能骑自行车、写一封邮件。
- 实现方式:
- 把常见操作总结成工具调用范式
- 动态 Few-Shot 示例库(常用推理模板)
- 工程案例:
- LangGraph 中,Agent 会学习常用任务的状态流转
- Copilot/AutoGen 把编辑-执行-调试形成可复用的模式
5. 外部持久记忆(External/Persistent Memory)
- 定义:超越上下文的长期存储,像“硬盘”。
- 特点:支持无限扩展,必须解决检索与整理问题。
- 类比:你写日记、建笔记本,未来可以随时翻查。
- 实现方式:
- 向量库 + 图数据库 + 文档存储
- 分层存储(高频缓存 vs. 历史归档)
- 代表论文/工程:
- MemGPT(2023):提出“内存分页/中断”机制,像操作系统一样管理记忆
- LangGraph × MongoDB(2024):提供标准化的 Memory Store
工程落地的常见共识
1. 分层设计
人类的记忆本来就是分层的:我们能在几秒钟里复述一串电话号码,却会在多年后仍然记得一次重要的旅行。工程上的 Agent 也是这样。短期的、随时会遗忘的“工作记忆”,与长期的、可以反复翻阅的“档案室”,需要用不同的方式去保存与检索。于是,分层设计成为共识:即时信息放在快取里,长期知识则交给更稳定的存储系统。就像书桌上的便签和书架上的厚厚档案,功能完全不同,却缺一不可。
短期记忆 vs 长期记忆,采用不同存储与检索策略。
2. 写入策略
想象一下,如果我们把每一句废话都写进日记,很快就会被无穷无尽的记录淹没。Agent 也是如此,它不能也不应该记住一切。于是,工程师们给它设定了选择标准:只有重要的(关系到目标或用户画像)、新颖的(之前未曾出现)、高频的(重复多次的事实)才会进入长期记忆。换句话说,Agent 的记忆更像是一本精选集,而不是毫无筛选的逐字稿。
写入策略不是所有内容都要保存,只记“重要/新颖/高频”的。
3. 检索策略
当记忆被写入,另一个问题随之而来:如何在需要时找到它?最初的做法往往依赖语义相似度,把提问和记忆做 embedding 比较。但很快,人们发现这还不够。因为有些信息不仅要“像”,还要“新”——时间因素不可或缺;有些信息要靠“重要性”来区分,避免被琐碎淹没。所以今天的检索策略更像是一场多维度的评分:语义相关、时间新鲜、重要程度,三者一起决定结果。
检索策略不仅仅靠语义相似度,还要结合时间性和重要性。
4. 整理与巩固
长久使用下来,任何系统都会遇到“记忆漂移”的问题:重复、矛盾、甚至遗忘关键信息。解决办法和人类差不多——定期整理。工程实践里,这意味着定时运行批处理,把零散的对话压缩成主题摘要,把重复的事实合并为一个清晰的条目。就像我们清理电脑文件夹,把散落各处的文档归档成整洁的文件夹,方便未来的自己。
定期把零散内容压缩为摘要,避免“记忆漂移”
5. 透明与可控
最后,还有一个关乎信任的问题。人们普遍认为,Agent 的记忆不能是“黑箱”,用户必须能看见并掌控。用户应该知道系统记住了什么,也能在必要时删除、修改或屏蔽。ChatGPT、Claude 等主流产品已经在这一点上给出实践:用户可以进入设置界面,看到自己的“记忆”,甚至要求系统“忘掉”某些事实。这种透明和可控,不仅是工程最佳实践,更是赢得用户信赖的关键。
产品化下用户能看到、编辑甚至删除 Agent 的记忆。
延伸阅读与资料
- 论文:
- 框架文档: