大模型智能体记忆技术深入研究
MemoryBank 的代表性做法是:把交互历史压缩成 summary,再作为长期记忆注入后续会话。它解决了上下文窗口有限的硬约束:不可能把所有历史原文都塞回 prompt,只能。
把大模型记忆拆成三维坐标与六类原子操作,带你看清智能体如何获得可进化、可检索、可遗忘的长期记忆。

1 记忆三维坐标
1.1 表征:参数化 vs 上下文记忆

✅ 参数化记忆是什么 参数化记忆指写进模型参数里的知识。它的典型形态是:不提供外部资料,模型仍能回答世界常识、领域知识、语言规律:这部分能力来自预训练/微调把知识固化进权重。
它的优点是:调用成本低:推理时不必访问外部存储;泛化强:能把统计规律迁移到新问题;输出更流畅:知识与生成模型天然耦合。
但也有代价:更新难:知识过时或错误时,改权重成本高;可控性弱:很难精确只删掉某条记忆;可追溯性差:回答很难给出明确来源(除非另加机制)。
✅ 上下文记忆是什么
上下文记忆指存在模型外部或输入上下文里的记忆,常见形态包括:对话历史、多轮会话归档、事件记录、日志、文档库、知识库、向量库、KV Cache 管理等。它更像工程系统:写入、索引、检索、拼装进提示词(Prompt)或工具调用结果中。
它的优点是:好更新:写库、改库、删库都比改权重容易;可解释:可以指向具体文档/事件;容量大:可存多会话、多用户、多模态。
代价是:链路复杂:索引、召回、重排、拼装都可能出错;延迟与成本:检索与多次调用会增加时延;一致性问题:新旧信息冲突时要解决信谁。
1.2 结构:非结构化 vs 结构化

✅ 非结构化记忆
-
对话历史(multi-turn / multi-session dialogue)
-
事件文本(events)
-
Web logs、用户偏好、工具调用记录
-
多模态原始信息:图像、音频、视频描述等
-
KV Cache(从缓存管理角度也可视为一种短期非结构化记忆)
它的特点是:写入快、表达自由,但检索依赖好索引与好切分。
✅ 结构化记忆
-
知识图谱(KG)、语义网、schema
-
表格、数据库记录
-
结构化经验(experience)、技能库(skills / tool recipes)
结构化记忆的特点是:查询精确、可执行性强,但构建与维护成本高。很多智能体在能做事这件事上,最终会走向半结构化/结构化的记忆形态:比如把关键实体、时间戳、因果关系、工具参数以字段形式存下来。
1.3 时间:短期、长期与工作记忆
✅ 短期记忆
按时间尺度定义:当前时间窗口内临时保存的信息,用于即时生成与局部推理。常见包含:
-
当前 session 的对话历史(上下文窗口里能看到的)
-
KV Cache(token 级缓存)
-
当前环境状态与历史(比如任务进度、已执行工具、临时变量)
✅ 长期记忆
跨更长交互周期仍然保留的信息。它既可以是:
-
参数化长期记忆(写进模型权重)
-
上下文长期记忆(归档、文档库、知识库、图谱、经验库等)
✅ 工作记忆 ≠ 短期记忆
-
短期记忆更像静态时间窗口内的信息。
-
工作记忆更像工作台:短期记忆 + 被激活的长期记忆 + 主动操作(选择、改写、排序、对齐目标)。
1.4 功能:语义、情景、程序与工作记忆
✅ 语义记忆 世界知识、概念、规则、profile、结构化知识(表/图谱/schema)。它回答是什么/为什么。
✅ 情景记忆 对话历史、事件、空间/时间上下文等个体经历,回答发生过什么。
✅ 程序记忆 技能与流程:做事的方法、工具使用套路、可复用的任务计划(skill library)。回答怎么做。很多能执行任务的智能体,真正的能力差异就在程序记忆的质量与可复用程度。
✅ 工作记忆 用于当前推理与决策的激活态记忆(可看作短期 + 激活长期 + 主动操作),典型系统会维护一个 buffer,并用 FIFO/优先级策略调度(材料里提到 MemGPT 的经典做法之一)。
2 记忆智能体的演进脉络
2.1 从范式到方法
范式先行:把记忆放进智能体框架。在较早的智能体框架工作中,研究者给出一种智能体范式:明确划分 working memory、long-term memory、short-term memory,并给出它们在交互循环里的位置:这一步的意义在于:
-
让记忆从提示词技巧升级为系统组件;
-
明确写入/读取/更新/遗忘的接口位置;
-
为后续方法学工作提供公共问题定义。
2.2 2023:程序记忆
把 skill library 当作程序记忆。在寄生/依附于环境的智能体里,把技能库视为 procedure memory。它带来一个工程上非常值钱的结论:
-
记忆不只是存文本,还要存可执行能力;
-
技能与经验一旦被结构化,检索与复用的收益会指数级上升;
-
智能体的长期成长,往往不是记住更多闲聊细节,而是沉淀更多可复用的动作序列。
2.3 2024:MemoryBank
✅ Summarization:用摘要把对话变成可长期存储的记忆
MemoryBank 的代表性做法是:把交互历史压缩成 summary,再作为长期记忆注入后续会话。它解决了上下文窗口有限的硬约束:不可能把所有历史原文都塞回 prompt,只能选择性保留。
✅ Ebbinghaus:用遗忘曲线管理记忆衰减
基于艾宾浩斯遗忘曲线设计遗忘机制:
-
记忆不是越多越好,冗余与过时会降低检索精度;
-
遗忘提供一种主动清理,减少噪声与风险;
-
遗忘策略还能做成可解释规则(随时间衰减、随使用频次增强)。
2.4 2025:自进化与多模态记忆
✅ 记忆会被重写
Stanford 的 ACE 框架提出自进化记忆:智能体在与外界交互时,不只是追加记录,还会重写既有记忆(更正、抽象、合并、提升为规则)。这把记忆从档案馆变成会自我修订的知识系统。
✅ 多模态记忆:M³-Agent 的方向感
M³-Agent 关注 multimodal memory,把视觉、文本、音频融合成 memory augmented 体系。现实世界里,很多关键记忆本来就不是文字:
-
一张设备铭牌照片
-
一段会议录音
-
一段操作视频
-
一次屏幕截图的 UI 状态
多模态记忆很可能是下一代记忆系统的主航向:记忆条目不再是纯文本 chunk,而是跨模态的统一事件。
3 六类原子操作:编码—演化—适配
把记忆看作一个流动的生命周期,并拆成三个阶段:Encoding(编码)、Evolving(演化)、Adapting(适配),以及六种原子操作。下面按工程视角把它们落到做系统要怎么实现。
3.1 记忆巩固:从短期到持久
本质是把当前时间窗口的交互与经验转换为更稳定的存储形态。它分两条路线:
✅ 参数化巩固(写进权重)
按时间尺度由短到长:
-
Continuous Learning:持续交互中不断吸收经验(但要处理灾难性遗忘与稳定性问题);
-
Post-training:针对特定场景收集数据后做 SFT / RL 等任务适配;
-
Mid-training:面向更大领域(如 code/math)做阶段性训练;
-
Pre-training:最长期、最大规模,把通用世界知识固化进模型。
工程含义:参数化巩固是慢变量,适合大规模、低频更新;否则你会被训练成本拖死。
✅ 上下文巩固(写进外部记忆)
-
Token-level caching:KV Cache 让短期推理更快,但不适合作长期;
-
Context compression:把长对话压缩成摘要/关键事实/要点;
-
Episode archiving(归档):把一次会话或一次任务作为 episode 存入长期库。
3.2 记忆索引:为找得到而生
很多系统只做存和搜,忽略了索引本身就是一等公民。索引要解决的是:大规模记忆下,如何快速定位候选?如何降低召回噪声?如何让检索更稳定、可控?
✅ 两种索引思路:内容向量 vs 元信息
-
关键词/向量索引:抽取 query 的关键 token/关键词,映射到 embedding 向量空间做近邻搜索。
-
元信息索:存时间戳、会话 ID、关键实体、超短摘要、任务类型、置信度等字段;检索时先用元信息过滤,再做向量相似度或 BM25。。
✅ 工程要点:索引不是越多越好
-
粒度过小:召回碎片化,拼装难;
-
过大:相似度被稀释,命中率下降;
-
元信息过多:写入成本高,质量参差反而引噪声。
一个常见的稳健做法是:混合检索(BM25 + Embedding)+ 轻量元信息过滤 + 重排(rerank)。
3.3 记忆更新:让旧记忆跟上现实
更新是智能体长期可靠性的生命线:不更新就会陈旧,乱更新就会漂移。
✅ 参数化更新:Model Editing 用 model editing 定位并修改模型某部分知识,实现对特定 entity/事实的更新。工程上它强调两件事:
-
更新要局部化,避免牵一发动全身;
-
更新要可验证,避免把幻觉写进权重。
✅ 上下文更新:增量摘要、KG editing、Contextual CRUD
-
增量摘要:第一轮生成 summary;第二轮把旧 summary + 新对话再压成新 summary(典型滚动更新)。
-
KG editing:实体增删改查,适合结构化知识。
-
Contextual CRUD:把记忆当数据库表一样管理。
工程上最难的是冲突解决:当旧记忆与新事实矛盾时,要有优先级与证据策略(时间新近性、来源可信度、使用频次、人工确认等)。
3.4 记忆遗忘:清理噪声与风险

遗忘不是缺陷,是容量管理与安全机制。
✅ 参数化遗忘:Unlearning 当模型权重里固化了有毒/违法/过时信息,或需要满足遗忘权/合规要求,尽量只移除目标知识,不破坏其它能力。
✅ 上下文遗忘:基于遗忘曲线的衰减 用艾宾浩斯遗忘曲线设计记忆衰减:
-
随时间自然衰减;
-
随访问/使用频次增强;
-
对低价值条目逐步降权,直至不再召回。
3.5 记忆检索:把相关信息带回工作台
✅ 定义:响应输入,从记忆中识别并访问相关信息 检索是记忆系统的咽喉。给出两类典型做法:
✅ 参数化侧:Attention / 向量相似度的内在机制 模型内部用注意力分配当前 token 该看哪里,这是一种隐式检索。但它受上下文窗口限制,且不可控。
✅ 上下文侧:BM25、Embedding Retrieval 等显式机制
-
BM25适合关键词精确匹配(术语、ID、代码符号);
-
Embedding适合语义相近召回(同义改写、概念相似);
-
**重排(Rerank)**把粗召回的候选按与当前任务目标的相关性再排序;
-
多跳检索适合跨文档推理(先找实体,再扩展关联)。
3.6 记忆压缩:在有限窗口里保留要点
✅ 定义:保留显著信息、丢弃冗余 在有限上下文窗口里,要把重要的留下,不重要的扔掉。
-
未来任务可能用到什么?
-
哪些事实是稳定的?
-
哪些只是当时的闲聊噪声?
✅ 两条路线:参数化蒸馏 vs 上下文压缩
-
参数化侧:知识蒸馏、模型融合/回放)等,把经验内化。
-
上下文侧:会话摘要、要点抽取、事件模板化、把长历史变成可检索的短条目。
更多推荐

所有评论(0)