Claude 为什么需要"做梦"?Anthropic Agent Memory 四层架构与实验解读
发布日期:2026 年 11 月 7 日
研究来源: Anthropic Engineering(2026 年 11 月 6 日)
关键词: Anthropic、Claude、Agent Memory、Dreaming、长期记忆、CL-Bench、Sleep-time Compute
一个能一次读取数百万 Token 的 Agent,为什么仍然会在下一次任务中重复犯错?原因在于:上下文容量决定模型能读多少信息,而长期记忆决定模型能否从过去的经历中筛选、验证并持续利用有价值的信息。

2026 年 11 月 6 日,Anthropic 发布工程研究文章 The components of agent memory,介绍 Claude 的跨会话记忆设计,以及一种被称为 Dreaming(离线记忆整理) 的机制。它不是新基础模型,也不是通过更新权重实现的持续学习,而是将模型过往的执行记录组织为可供未来会话检索和使用的外部记忆。
一、四层新 harness 架构:Agent 记忆新机制
Anthropic 将 Agent 记忆划分为四个相互关联的层次。

| 层次 | 英文名称 | 主要内容与作用 |
|---|---|---|
| 原始记录 | Transcripts | 保存历史对话、工具调用与执行结果,提供可追溯的事实依据 |
| 记忆笔记 | Memory Notes | 保存已确认的经验、错误原因、操作规则和任务结论 |
| 结构化表示 | Memory Representations | 使用 Wiki、索引和交叉链接组织大量知识,提高检索效率 |
| 预注入上下文 | Injected Context | 在新会话开始时主动加载少量高价值信息,减少重复检索 |
一个实用的记忆系统不是每次把所有历史记录塞进上下文,而是分层管理:少量关键事实主动加载,详细经验按需检索,原始记录作为最终核查依据。
这也意味着记忆笔记不是天然可信的"真相"。它可能过时、错误,甚至与最新环境状态冲突,因此必须有复核与更新机制。
二、Dreaming:把一部分"思考"放到会话之外
Dreaming 的核心思想是利用 Agent 不执行用户前台任务的时间,对过去的记录进行反思和整理。一个典型流程包括:
- 读取已完成会话的
Transcripts,定位重要事件与失败案例。 - 对照原始执行结果,检查现有记忆中的错误、遗漏与过时信息。
- 归纳经过验证的规则,删除冗余内容,更新
Memory Notes。 - 将相关知识整理为 Wiki、索引和跨文档链接。
- 选择极少量最重要的信息进入下次会话的
Injected Context。
其目标并非"记录得越多越好",而是让后续 Agent 更容易找到正确的经验,并更少依赖重复探索。相应代价是额外计算、数据治理和记忆维护成本。
三、实验一:跨会话持久记忆如何改善 CL-Bench 表现?
Anthropic 使用 CL-Bench 1.0 中的一项数据库任务测试模型。每个问题都在新会话中执行;允许持久记忆的实验组,可以读取此前会话留下的文件。模型在获得答案反馈后,可以将得到验证的规律写入记忆。
Claude Opus 5.5 的平均奖励:
| 运行方式 | 平均奖励 |
|---|---|
| 无跨会话记忆(Stateless) | 0.655 |
| 可访问持久记忆目录 | 0.838 |
| 绝对提升 | +0.183 |
这里的指标是 平均奖励,不是百分比任务成功率 。更重要的是,这组实验主要说明持久记忆可帮助 Agent 学习跨会话规则,不能将 +0.183 全部归因于 Dreaming 。不同 Claude 版本的效果也存在差异:较新的模型更善于把失败经验转变为经过验证的规则,而较早版本往往只是积累未经验证的猜测。
四、实验二:35 万份文档中的 Wiki,能否比直接搜索更有效?
为检验结构化记忆的作用,Anthropic 在一组内部企业资料中进行了实验,语料规模约为 35 万份文件、4.2 亿 Token 。Agent 经过 128 轮离线整理 ,逐步构建带链接的 Wiki,并在 25 道问题上评估。
| 评测条件 | 评分标准满足比例 |
|---|---|
| 仅使用 Wiki:早期构建阶段 | 13% |
| 仅使用 Wiki:128 轮后 | 48% |
| 仅使用原文搜索工具 | 53% |
| Wiki + 原文搜索:128 轮后 | 61% |
与仅使用搜索相比,Wiki + 搜索 提高了 8 个百分点,并且在该测试中每道问题大约减少 20,000 Token 的消耗。
这并不意味着 Wiki 可以替代检索。实验恰恰说明二者互补:Wiki 帮助定位相关知识与跨文档关系,原文搜索负责查证细节。 而且该实验来自内部语料和特定问答集合,仍缺少完整独立复现。
五、实验三:记忆越少,反而可能越强
Anthropic 还比较了 Claude 在《Pokémon Red》长程游戏任务中的记忆习惯。在各约 10,000 步的单次运行中:
| 模型 | 记忆文件数 | 当时获得的徽章数 |
|---|---|---|
| Claude Sonnet 3.7 | 413 | 1 |
| Claude Fable 5 | 10 | 4 |
Sonnet 3.7 记录了大量随游戏状态变化而迅速失效的细节;Fable 5 更倾向保存长期有效的策略、计划和验证过的规则。这支持一个设计原则:高质量的记忆不是信息堆积,而是对未来决策真正有用的压缩表示。
但这不是控制变量的模型对照实验,不能仅凭文件数量认定性能差异全部来自记忆设计。
六、Dreaming 真正解决了什么,又带来哪些风险?
Anthropic 展示了一个典型案例:Agent 在游戏中错误记录山洞出口方向,之后不断沿错误路线行动。离线 Dreaming 对照原始执行记录发现错误并修改记忆,使后续执行回到正确路线。
这个案例说明,Dreaming 的作用不只是压缩文本,还可以执行 记忆校验、纠错、知识结构重建与优先级调整。
与此同时,工程实现仍存在四项问题:
- 错误传播: 被提前注入上下文的错误记忆可能持续影响多个后续任务。
- 时效性: 状态快速变化的环境中,旧经验必须标注时间或及时更新。
- 额外成本: 离线整理消耗 Token 与计算资源,频率过高可能得不偿失。
- 隐私与权限: 长期保存会话和工具输出,需要合理控制敏感信息、访问范围和清理策略。
因此,Dreaming 不应被理解为"让 Agent 自动越用越聪明"的万能机制。它提升的是外部经验的维护和复用能力,并不等于模型参数得到持续训练。
七、与此前研究的关系
Anthropic 明确引用了 Letta 与 UC Berkeley 研究者提出的 Sleep-time Compute(2025)。其主要思想是在查询到来之前、利用闲置时间进行有针对性的预计算,将部分在线推理开销转移到离线阶段。
Anthropic 本次工作的侧重点不同:不是首次提出"离线思考",而是进一步阐明 Transcripts → Notes → Wiki → Injected Context 的分层关系,并通过数据库任务、企业文档和长程交互案例考察如何管理记忆。
对于长期软件工程 Agent 或机器人任务规划系统,这种架构提供了一个有价值的设计方向:让高层控制器跨任务积累经过验证的经验,同时保留原始日志和明确的纠错通道。不过,这些场景的实际收益仍需在各自环境中单独验证。
总结
Agent 长期能力的关键不只是拥有更长的上下文,而是能否持续区分重要信息与噪声,验证历史经验是否可靠,并以低成本在未来任务中重新使用。
Anthropic 的研究表明,持久记忆、结构化 Wiki 和 Dreaming 可以分别改善不同环节,但也明确暴露了记忆漂移、错误扩散与维护成本等问题。下一阶段值得关注的,是 记忆质量、跨会话任务成功率和离线计算成本之间能否形成可复现的最优权衡。
原始资料与延伸阅读
- Anthropic --- The components of agent memory(2026-11-06):四层架构、CL-Bench、Wiki 与游戏任务实验。
- Claude Cookbook --- Dreaming with a dynamic workflow(2026-11-02):可操作的离线记忆整理工作流与实现示例。
- CL-Bench 1.0 官方介绍:跨会话持续学习评测背景。
- Lin et al. --- Sleep-time Compute: Beyond Inference Scaling at Test-time(arXiv, 2025):相关离线计算研究。