AI 的记忆进化史:从金鱼记忆到学会"做梦"
一只金鱼的记忆,与一个 Agent 的困境
有一个流传甚广的说法:金鱼的记忆只有七秒。虽然科学研究早已证明这是个谣言------金鱼其实能记住数月前的事情------但这个比喻却精准地刻画了今天大多数 AI Agent 的处境。
你在和 AI 助手推进一个复杂项目,聊了一个多小时,确认了技术方案、梳理了需求、定下了关键决策。然后某一刻,AI 突然开始"忘事",把你早就敲定的方案搞错,重新提出已经被否决的思路。你困惑:明明刚才还在聊,它怎么就不记得了?
根源在于一个被反复提及却很少被真正理解的概念:上下文窗口。

LLM 的"记忆"到底是什么
在我们的日常认知里,"记忆"意味着信息的持久储存和随时调用。但这一常识在神经网络中并不成立。大语言模型本身其实并不具备"记住某个具体事实"或"反复调用某段对话"的内建机制。它们所谓的"记忆",更多体现在参数记忆的层面------通过反复训练,将海量语料信息固化在数百亿乃至万亿级的参数中,形成对语言结构、事实知识乃至人类行为模式的"潜在记忆"。
这种参数记忆赋予了模型前所未有的知识广度,但它是静态的,只能反映训练阶段接触的信息,无法根据用户即时输入动态调整,也无法在多轮对话间保持状态。换言之,大模型在默认状态下是无记忆、无连续性的。
为了制造"AI 记得我说过什么"的体验,系统引入了最直接的补丁:上下文管理。它把用户与模型的多轮对话打包成一个"对话上下文窗口"一并输入模型,从而模拟出"记得过去"的效果。这不是模型主动"记住"了内容,而是每次调用时都把过去发生的事情重新喂给它。这也就解释了为什么 API 调用费用会滚雪球式增长------每一轮都要携带之前的全部对话内容。
但这个窗口是有硬上限的。GPT-4o 是 128K token,Claude 家族默认 200K token,部分型号在付费计划里能扩展到 1M token。超过上限就得截断,默认策略是"从最老的对话开始丢"。于是三十分钟前确认的技术方案,就这么被扔掉了。
有意思的是,人类大脑的记忆机制与此惊人地相似。神经科学告诉我们,人类的记忆分为感觉记忆、工作记忆和长期记忆三个阶段。感觉记忆只持续数毫秒,登记原始的视觉、听觉信息;工作记忆是大脑的"心理工作台",能在数十秒内保存并处理少量信息,主要依赖前额叶皮层;长期记忆则从几分钟保存到一生,依赖海马体与颞叶进行事实和事件的编码与巩固。
更关键的是,工作记忆容量极其有限。1956 年,心理学家乔治·米勒提出:我们的工作记忆一次只能保存大约 7 个信息块。重要的短期记忆需要经过海马体进一步加工,才能转化为长期记忆,储存到大脑皮层中。海马体受损的人,会丧失近期记忆能力,但久远的记忆却不受影响------因为远期记忆早已转移到了新皮层。
LLM 的上下文窗口,本质上就是它的"工作记忆"。它容量有限,信息需要在"内存"和"外部存储"之间搬运,否则就会被丢弃。问题在于:谁来扮演海马体?谁来决定什么该被巩固、什么该被遗忘?

记忆压缩:四种方法,三个维度
面对"上下文窗口撑满"这个工程现实,业界发展出了四条思路清晰的方法路径。它们并非互斥,而是从不同维度切入同一问题。
滑动窗口:最简单的方案,也是最粗糙的
滑动窗口是最符合直觉的做法,就像手机聊天记录默认只显示最近若干条:超出就从最老的开始删,只保留最近 N 轮对话。好处是实现极简,不需要额外 LLM 调用,零开销。坏处是"硬截断"------对话按时间一刀切,三周前确认的关键决策和昨天的一句闲聊被同等对待,超出窗口就都消失了。它的特性可以用一个词概括:"金鱼记忆",只记得最近发生的事。
摘要压缩:丢之前先提炼一遍
摘要压缩是对硬截断的改进。核心思路是不直接丢弃即将超出窗口的历史,而是先让 LLM 把这段历史总结成精华摘要,用摘要替换原始对话。代价是细节丢失------LLM 按"重要性"决定保留什么,有些当时看起来不重要的细节被略过了,后来却恰好需要,就找不回来了。
进阶的做法是层级式摘要:最近几轮保持原文,稍远的历史压缩成"中期摘要",更远的进一步压缩成"长期摘要"。每一层信息密度不同,越久远越精炼,但核心决策始终保留。这就像公司的会议纪要体系:今天有详细记录,上个月只留要点,去年只留关键决策备忘。在实际工程中,滑动窗口和摘要压缩通常组合使用------滑动窗口控制总量,摘要负责在丢弃前做一次提炼。
重要性过滤:按价值筛选,不按时间筛选
前两种方法都在"时间维度"处理历史,但时间不等于重要性。三周前的一句关键决策可能比昨天几句闲聊更有价值,但在滑动窗口里它会先被丢掉。重要性过滤换了角度:给每条记录打重要性分数,低于阈值淘汰。
打分方式有两种:规则打分------包含"决定""确认""需求"等关键词的加分,被后续引用多的加分,纯闲聊降分,快但粗糙;LLM 打分------逐条判断重要程度,准确但开销大,通常批量清理时用而非实时处理。
还有一种更激进的思路叫观察遮蔽(Observation Masking)------不删除低分内容,而是在构造 prompt 时选择性"隐藏"某些条目。当前任务是写代码时,把之前需求讨论的对话标记为"与当前步骤无关"直接跳过;进入测试阶段时再把测试相关历史"显示"出来。信息没有被真正删除,只是在不同阶段动态选择"当前最需要看到什么"。
与之相关的概念是主动压缩(Proactive Compression):不等上下文快满才压缩,而是 Agent 每步执行完后主动判断哪些中间过程可以压缩。比如搜索工具返回了 2000 token 的原始结果,Agent 读完后立刻压缩成 200 token 的要点摘要替换原始内容,从源头控制 context 增长速度。
结构化抽取:换一种载体存信息
前三种方法有一个共同前提:历史信息以"对话文本"形式保留。结构化抽取打破了这个假设------它先问一个更本质的问题:我们真的需要保留对话文本本身吗?
很多场景里,真正有价值的不是对话文字,而是其中传递的事实和状态:"用户偏好用 Python""预算上限 5 万""已确认方案 B""需要兼容移动端"。把这些信息主动提取出来,存成结构化字段,后续注入 prompt 时直接用这些字段,比传一大段对话文本高效得多,信息密度也高得多。
这就像医生记录病历------不会把和病人的对话逐字记录,而是整理成结构化档案:"主诉:头痛三天;现病史:无发热;过敏史:青霉素;初步诊断:紧张性头痛"。信息密度远高于原始对话,下次就诊直接读病历,不用重听录音。这种方案信息损失最小,只要字段定义合理,重要信息被精确保留,没有摘要带来的模糊化。代价是开发成本最高:你需要预先定义"什么是重要字段",需要对业务有深入理解,通用性较低。
这四种方法不是互斥的,它们从三个维度解决不同问题:滑动窗口和摘要压缩解决"历史太长怎么截",前者直接截、后者截前先提炼;重要性过滤解决"内容不等价怎么挑",打破时间顺序按价值筛选;结构化抽取解决"对话文本是不是最佳载体",换一种信息密度更高的形式。实际系统中往往多种方法配合使用。

从压缩到架构:四层记忆体系
当 Agent 的任务从"聊几轮天"变成"跑三小时的行业报告"时,单纯的压缩策略就不够了。某团队做过调研报告 Agent,用户要求"写一份 10 章的行业报告",跑了 3 小时后,Agent 忘了要写 10 章,输出 3 章就结束了。这就是传统两层架构的死穴------长任务跑着跑着就忘了最初的目标。
2025-2026 年的工业级实践已收敛到四层记忆架构,核心是按访问频率和生命周期从热到冷分层:
| 层级 | 定位 | 存储介质 | 核心职责 |
|---|---|---|---|
| 第 0 层 上下文窗口 | 热记忆/当前交互 | LLM 原生上下文 | 承载当前对话直接输入 |
| 第 1 层 工作记忆 | 任务认知黑板 | 内存/文件/任务状态 | 锚定任务目标、中间产物、实体关系 |
| 第 2 层 会话记忆 | 单会话完整历史 | SQLite/本地文件 | 承接上下文溢出的历史内容 |
| 第 3 层 长期记忆 | 跨会话持久沉淀 | 向量库/图数据库 | 跨会话知识沉淀与检索 |
这个架构的精妙之处在于,它不再把记忆当作"一整段对话历史"来管理,而是像操作系统管理内存一样,按访问频率和生命周期分层。热数据在上下文窗口里直接推理,温数据在工作记忆中作为任务黑板,冷数据溢出到会话记忆,而真正需要跨会话保留的知识则沉淀到长期记忆的向量库或图数据库中。
这恰好呼应了 MemGPT 的核心思想。2023 年,加州大学伯克利分校的研究者将 LLM 与操作系统巧妙地联系在一起,提出了 MemGPT------一个受传统操作系统分层内存管理启发的系统。它将上下文窗口视为"主存",将外部存储视为"磁盘",通过函数调用在主上下文和外部上下文之间"分页"进出信息,使固定上下文长度的模型能够处理远超其限制的文本内容。
MemGPT 的主上下文分为三部分:系统指令(固定只读的控制逻辑)、对话上下文(FIFO 队列,超限裁剪前段)、工作上下文(读写临时存储,模型可通过函数调用自主写入)。外部上下文则包括回溯存储(完整历史无压缩版)和归档存储(通用读写数据库,保存用户事实和偏好)。创新点在于系统指令中详细描述了内存体系结构和功能调用方法,指导大语言模型学习使用这些工具管理自己的内存,并根据反馈调整调用策略------当主上下文空间不足时,系统会提醒模型及时保存重要信息。
这与人类大脑的机制异曲同工:工作记忆容量有限,重要信息需要通过海马体巩固到长期存储中,否则就会遗忘。MemGPT 让 LLM 学会了"自主记忆管理",而不再被动地等待被截断。

当 AI 开始"做梦"
如果说压缩和架构是在"工程层面"做优化,那么 2025 年 AI 记忆领域最引人注目的变化,发生在"产品层面"------OpenAI 给 ChatGPT 加上了"做梦"功能。
ChatGPT 的记忆功能经历了三个阶段。2024 年以前,它没有任何记忆,每次会话彼此独立。2024 年 4 月,OpenAI 引入了"已保存记忆"功能------本质上是一张事实清单,用户需要用"记住我七月要去新加坡旅行"这样的强提示才能触发写入。它像"记了几条笔记",但没写下来的内容仍被忽略,而且随着时间推移,保存的记忆会变得陈旧、不准确。
2025 年 4 月,OpenAI 引入了"做梦"(Dreaming)功能的第一个版本。与已保存记忆不同,做梦不需要用户主动触发,它在后台自动扫描用户的聊天历史,合成 ChatGPT 的记忆状态,让模型在后续对话中获得最新、最相关的上下文。它让记忆更容易纳入对话中自然出现的上下文,而不必依赖明确要求记住某件事。
到 2026 年,OpenAI 推出了基于 Dreaming 构建的全新记忆架构(Dreaming V3),能力更强、计算效率更高。新系统中,Dreaming 合成的记忆会通过"记忆摘要"页面展示给用户,可以快速查看、新增或更新个人信息。据 OpenAI 的评估数据,新版记忆的任务回忆准确率从 41% 提升到了 82%。
"做梦"这个名字并非偶然。在神经科学中,睡眠期间的大脑会进行记忆巩固------海马体在睡眠中"回放"白天的经历,将重要信息转移到新皮层进行长期储存,同时清除不重要的临时信息。OpenAI 的 Dreaming 机制在功能上模仿了这一过程:在后台("睡眠"时)扫描历史对话,整合出稳定的记忆状态,为"醒来"后的对话提供更连贯的上下文。AI 终于有了自己的"海马体"。

另一条路:Anthropic 的 Context Editing
就在 OpenAI 选择"主动做梦"的同时,Anthropic 走了另一条路。他们为 Claude 平台引入了 Context Editing(上下文编辑)和基于文件的记忆工具,让 Agent 能在长会话中自动清理陈旧的上下文内容。
Context Editing 的核心机制是:当 token 接近上限时,自动裁剪陈旧的工具输出和其他旧内容。Claude Sonnet 4.5 会跟踪可用的 token 数量来引导裁剪。更细粒度的控制包括:工具结果清理------针对重度工具调用的场景,旧的工具结果不再需要时自动清除;思考块清理------使用扩展思考时管理思考块,可选择保留关键推理。
与之配套的文件记忆工具提供了客户端的、基于文件的 CRUD 接口,让 Agent 能跨会话持久化知识,长期存活的知识通过工具调用来卸载,持久化和留存策略由开发者基础设施管理。
Anthropic 的内部测试显示,同时使用这两个特性带来了最高 39% 的性能提升,单独使用 Context Editing 也有 29% 的提升。
两家公司的思路差异耐人寻味。OpenAI 选择让模型"主动做梦",在后台自动整合记忆,对用户透明;Anthropic 则更偏向"开发者可控",把记忆管理的策略交还给工程基础设施,让 Agent 学会自己清理上下文。前者更像一个自动化的海马体,后者更像一套可编程的内存管理 API。

遗忘,也是一种智慧
然而,记忆增强并非全然是好事。有测试者发现,ChatGPT 的新记忆功能存在明显错误:AI 根据过时信息生成了从未发生的使用记录。更令人担忧的是,用户几乎无法彻底清除已存储的数据,AI 的"个人化"回答可能因偏差记忆而产生严重误导------它记得你"喜欢"某个东西,但你早就改主意了,它仍然执着地推荐。
这引出了一个常被忽视的问题:遗忘不是缺陷,而是特性。
回到人类大脑。研究发现,海马体中存在一种蛋白质,它的激活会启动遗忘的分子进程。清华大学科研人员发现,伤害性刺激或应激激素能短暂关闭这种蛋白质的激活,也就是关闭了遗忘进程------这解释了为什么痛苦记忆通常难以遗忘。
换言之,大脑的遗忘不是"记不住"的失败,而是一种主动的、有机制调控的过程。它防止信息过载,让重要记忆更突出,让过时信息自然衰减。一个什么都忘不掉的大脑,反而会陷入混乱------这正是一些记忆超常者所报告的痛苦:他们无法忘记任何细节,每一条记忆都同等鲜明地涌来,让他们无法分辨什么是重要的。
AI 的记忆系统正面临着同样的悖论。记得太少,会"忘事"惹恼用户;记得太多太死板,会"困住"用户,用三个月前的偏好绑架今天的对话。理想的状态不是"记住一切",而是像人一样------在合适的时机记住合适的事,在合适的时机遗忘不再相关的事。
OpenAI 的 Dreaming V3 试图通过后台"整理"来解决记忆陈旧的问题,但它引入了新的风险:AI 自动合成的记忆可能包含推断甚至编造的内容,而用户难以审查和清除。Anthropic 的 Context Editing 则更为保守,它只清理不创造,把"记住什么"的决定权留给开发者和用户。

尚未抵达的终点
从滑动窗口的"金鱼记忆",到摘要压缩的"会议纪要",到四层架构的"内存管理",再到 OpenAI 的"做梦整理"和 Anthropic 的"上下文编辑",AI Agent 的记忆系统走过了一条从粗暴截断到精细管理的进化之路。
但这条路远未走完。真正的挑战在于三件事的平衡:记什么、忘什么、谁来决定。当前的方案各自在某个维度上做得不错,但没有一个同时解决好了全部三个问题。记忆压缩技术在"信息层"工作,决定哪些内容值得保留;Prompt Caching 在"计算层"工作,对已决定带入的内容减少重复计算------两者互补而非替代。 但在更上层的"决策层"------什么该被记住、什么该被遗忘、谁拥有这个决定权------目前的系统大多把答案留给了模糊的工程妥协或模型自己的"判断"。
也许,当 AI 真正学会像人一样做梦------不仅仅是后台整理数据,而是理解什么是重要的、什么是已过时的、什么应该被温柔地放下------它才算是真正拥有了"记忆",而不只是"存储"。
在那之前,我们和 AI 的对话,仍然是在和一个记性不太好但很努力的朋友聊天。它偶尔忘事,偶尔记岔,但一直在学习怎么更好地记住你。这大概就是 2026 年 AI 记忆的现状:已经不差,但还谈不上好。