会做梦的AI,记性反而更好?Anthropic新实验:写了413份笔记的,输给只写9份的

有位哲学家说,人这一辈子,很多事只有回头看才看得明白,可日子只能往前过。
这句话放在人身上是感慨,放在 AI 身上,却是个实打实的工程难题。
Anthropic 最近发了一篇文章,讲了他们给 Claude 设计记忆系统时踩过的坑和想明白的事。核心结论有点反直觉: 想让 AI 记性好,光让它「记笔记」不够,还得让它学会「做梦」。
这是怎么回事?我们慢慢说。
先看人脑是怎么记的。
人在生活里是随时随地在记东西的。这背后有个关键角色叫海马体,它负责在当下捕捉经历,让记忆快速形成、随取随用。但注意,并不是所有经历都会变成长期知识 —— 只有一部分会被「巩固」下来。
而巩固这件事,大多发生在大脑「离线」的时候。睡着时、安静休息时,海马体会「回放」最近的经历,慢慢把它们提炼、整合进新皮层,那里才是大脑存放「知识」的主仓库。
智能体的记忆,其实也可以照这个思路分工。
AI 干活时会留下大量日志和对话记录(transcripts),这相当于海马体的即时捕捉。Letta 和 UC Berkeley 的研究者提出过一个叫「睡眠时计算」(sleep-time compute)的概念:模型在交互间隙的空闲时间里,重新组织已有的上下文。同样的思路可以用来整理记忆,让 AI 在闲下来时反思日志、修正错误、产出新的笔记。这个过程,行业里通常就叫它「做梦」(dreaming)。
Anthropic 发现, 「做梦」是给 Claude 打造有效记忆的一把利器 。这篇文章,就是他们围绕智能体记忆做的一系列实验,以及每个组件到底起了什么作用。
文章链接:https://www.anthropic.com/research/components-of-agent-memory
先定义:什么算「智能体记忆」
Anthropic 说的「智能体记忆」,特指 Claude 从经验中得来的知识,包括和用户的交互、被分配的任务,以及在不同会话之间保留下来的东西。
有三种「学习」不算在内:改权重(训练时调好的内部参数)、上下文内学习(单次对话里获得的知识)以及压缩(compaction,Claude 把旧的对话轮次写成摘要,好在新上下文窗口里继续干活)。
记忆的第一层:随手记笔记
人脑里,一段经历发生前后释放的化学信号,会给这段记忆打个「重要」的标记。被标记的记忆,在离线时会被更频繁地回放,从而稳定下来、进入长期记忆。
Claude 也能做类似的事:在会话日志里给显著事件打标签,方便以后查找;或者直接写进记忆库,比如一个放记忆笔记的文件夹。
但问题来了:事情正在发生的当下,Claude 怎么知道哪件事值得记?它还不知道接下来会发生什么。
记忆,其实是对未来的预测
记忆本质上偶尔是一种预测。写下一条规则,等于在预测这个模式以后还会用上;记下一条验证过的事实,等于在预测未来的自己会想直接用这个事实、不再二次核对。而 Claude 在这类预测上,已经进步了很多。
Anthropic 用 Continual Learning Bench(CL-Bench)1.0 做了个实验。这个基准测试考察智能体利用记忆完成长程任务的能力。其中一个任务是:Claude 要查数据库回答一系列问题,答完会被告知正确答案,然后可以写一条记忆,帮自己答好后面的问题。
这里能形成一个学习闭环:答错了,就记录失败、提出「哪里错了」的假设、验证假设、把结论变成一条未来的答题规则。
实验用的是 Claude Managed Agents。每道题 Claude 都在全新会话里开始,唯一的例外是:它能读取一个跨会话保留的记忆目录。
不同模型搭学习闭环的能力差别很大:
Sonnet 4.6 走到了「提出假设」这一步,但记忆目录里是一堆零散文件,每个文件列着几条没验证过的猜测;
Opus 4.7 把笔记整合成了一份参考文档,开始标注哪些事实查过了、哪些还没确认;
Sonnet 5 会在评分器批改后把答案标记为「已确认」,答错了就写一条更正;
Opus 5 是第一个闭环的模型。它的大多数条目都包含一条规则(以及它怎么知道这条规则是对的)、之前问题的答案,还有一路上发现的坑的明确警告;
到了 Opus 5.5 和 Sonnet 5.5,两个模型都闭了环,用记忆沉淀「怎么答好未来问题」的验证过的规则。带上记忆后,它俩的得分和 Opus 5 大致相当 —— 而且它们不用记忆的基线本来就略高。
Claude 学会了判断「什么值得记」
另一个实验更有意思:让 Claude 玩《宝可梦・红》。这个游戏要导航复杂的长程任务,正好考验 Claude 判断「该往记忆里存什么」的能力。每次开局,模型都会拿到一个可以读写的记忆文件夹。
对比 Sonnet 3.7 和 Fable 5 各玩到大约一万步时的记忆文件夹,差别非常明显。
Sonnet 3.7 的假设是「所有东西都可能有用」,于是见啥记啥:每场战斗一个文件、每捡一个道具一个文件、每遇到一个 NPC 一个文件。最后它写了 413 个记忆文件、摊在 225 个文件夹里,只拿到一枚徽章(徽章代表游戏进度)。
Fable 5 呢?9 个文件、2 个文件夹,外加一个顶层的 global.md,拿了四枚徽章。
Sonnet 3.7 的打法为什么不行?因为宝可梦的游戏状态一直在变,它那份详细记录不停地过时。结果就是,越往后玩,Claude 花在翻记忆上的时间和资源越多,正经玩游戏的越少。一万步左右,Sonnet 3.7 开始建第四套「主」记忆文件夹 —— 接下来的 17 步里,它建了六个文件、删了九个,游戏里一步没动。
Fable 5 的思路是:只记游戏不会直接告诉你的东西。像「玩家有多少钱」「在地图哪个位置」这种信息,每回合屏幕上就有,存下来纯属冗余。而策略、计划、验证过的规则这些东西,Claude 不想明白就不存在,不写下来就会消失。
所以 Fable 5 是这么组织记忆的:global.md 当仪表盘,放当前目标、打道馆的预写计划、以及它给自己定的记忆使用规则;locations 文件夹放各条路线的导航方案;gameplay 文件夹放它摸出来的游戏机制策略。举个例子,连续七个精灵球没抓到鲤鱼王(最容易抓的宝可梦之一)之后,Claude 写道:「如果连续 3 个球以上失败,改变按键节奏(在菜单步骤之间插入额外的等待)—— 这么做之后立刻抓到了。」
凭着一个小得多的记忆文件夹,Fable 5 的游戏进度远超 Sonnet 3.7。Opus 5.5 的路子类似:一小叠记忆笔记,追踪当前目标和下一步,边玩边改 —— 最后通关了。
怎么「指挥」Claude 写记忆
Anthropic 发现一条规律:告诉 Claude 记忆是干嘛的,有用;告诉它具体怎么用,反而没必要。
在 CL-Bench 上,他们只是告诉 Claude「有个记忆文件夹可以用」。就这点泛泛的指引,已经够 Opus 4.7 和 Opus 5 把记忆用出效果,性能明显提升。
他们也试过给模型定具体规矩,一次测一条,对比有没有这条规矩时记忆带来的收益。结果,当规矩是「只记录失败」时,Opus 5 和 Opus 4.7 都丢掉了记忆带来的大部分增益。对更强的模型来说,让它自己判断什么重要,比事先定死规则更有效 —— 规则定不好,反而拖后腿。