索伦·克尔凯郭尔曾言:“生命只能向后理解,但必须向前生活。”在为AI智能体设计记忆系统时,我们面临着类似的困境。

人类通过海马体捕捉当下体验,并在睡眠等离线状态下重放这些体验,将其巩固为新皮层中的长期知识。受此启发,智能体记忆也可采用类似的分工模式:Letta与加州大学伯克利分校研究人员提出的“睡眠计算”概念,即利用交互间的空闲时间重新组织上下文。这一过程被称为“做梦”,它能帮助智能体通过反思日志来纠正错误、生成新笔记,从而优化记忆结构。

本文旨在分享我们对智能体记忆的探索,特别是“做梦”机制如何帮助Claude获得更有效的记忆,以及各组件对记忆组织的贡献。

记忆笔记:对未来需求的预测

所谓“智能体记忆”,指Claude从经验(如用户交互、分配任务)中获取并跨会话保留的知识,保存为后续可读的上下文。它不同于模型权重调整、单次对话内的上下文学习或用于压缩上下文的摘要。

在人脑中,化学信号会将重要记忆标记为优先重放。同理,Claude可在会话中标记显著事件,写入如“记忆笔记文件夹”的存储中。然而,在未知未来的情况下,如何判断当下的显著性?

记忆本质上是对未来需求的预测。记录一条规则,意味着智能体预测该模式将在未来再次相关。随着迭代,Claude在此类预测上愈发精准。

在Continual Learning Bench (CL-Bench) 1.0基准测试中,Claude需通过数据库查找信息回答问题。答错后,它会记录失败、提出理论、测试并转化为规则。不同模型表现各异:

  • Claude Sonnet 4.6能生成错误理论,但记忆文件分散且未经测试;
  • Claude Opus 4.7将笔记整理为单一文档,标记已确认与未确认事实;
  • Claude Sonnet 5在评分器检查后标记答案,并在错误时编写更正;
  • Claude Opus 5首个形成闭环,其条目包含规则、验证依据及对陷阱的警告。

Claude Opus 5.5和Sonnet 5.5同样形成了闭环,利用记忆捕获已验证规则。尽管无记忆基线性能略高,但借助记忆,它们的得分与Opus 5相当。

Claude已学会判断显著性

我们通过《宝可梦红》游戏评估Claude对“什么值得记忆”的判断力。游戏挑战复杂的长周期导航,模型需在运行中读写记忆文件夹。

对比Claude Sonnet 3.7与Claude Fable 5各运行约10,000步后的结果,差异显著:

  • Sonnet 3.7假设一切皆相关,不加选择地记录每场战斗、每件物品,最终在225个文件夹中生成413个文件,仅获一枚徽章。由于游戏状态不断变化,其详细记录迅速过时,导致后期大量资源耗费在浏览记忆而非玩游戏上。
  • Fable 5仅生成9个文件及一个global.md顶级文件,获得四枚徽章。它仅记录游戏未明确告知的信息(如策略、计划),而忽略每回合可读取的状态(如金钱、位置)。

Fable 5的global.md充当仪表板,保存目标与计划;locations文件夹保存导航计划;gameplay文件夹保存策略。例如,在连续多次捕捉失败后,它记录下“改变时机”的有效策略。凭借精简的记忆,Fable 5进展远超Sonnet 3.7。Opus 5.5采取类似方法,最终击败了游戏。

引导策略:自主判断优于硬性规则

实验发现,告知Claude记忆的用途但不规定具体用法效果更佳。在CL-Bench中,仅提示“有记忆文件夹可用”,便使Opus 4.7和Opus 5性能显著提升。

相比之下,设定硬性规则(如“仅记录失败”)反而削弱了强模型的性能,使其失去大部分记忆带来的提升。对于较弱模型(如Sonnet 4.6),明确提示“回答前读取记忆并测试理论”可使其基准分数翻倍;而Sonnet 5则能自动执行此操作。

对于前沿Claude模型,最佳实践是提供简单指导,将显著性判断权留给模型自身。

“做梦”纠正记忆偏差

基于会话中即时判断写入的记忆可能存在错误或漂移。“做梦”允许Claude对照原始转录文件验证笔记。

在《宝可梦红》月见山关卡中,Claude曾错误记录宝可梦中心位置,导致反复陷入单向平台陷阱。在未纠正的运行中,它三次掉落并试图放弃。而在引入“做梦”机制后,Claude对照转录文件发现并修正了位置错误,随后顺利通关。

“做梦”构建新的记忆表征

通过“做梦”,Claude可构建如wiki般的记忆表征,即一组链接到其他笔记的页面集合,形成知识地图。

在使用Stainless内部文档语料库(约35万文件)的测试中,随着“做梦”会话从2次增至128次,Claude在25个问题上的性能从13%提升至48%。结合搜索工具与wiki,综合得分从54%升至61%,且每题节省约20,000个令牌。

在Harvey LAB法律简报基准测试中,对于需跨文档整合信息的并购问题,查阅wiki的得分(87%)显著高于仅使用搜索(73%)。但在仅需单文档检索的任务中,wiki优势不明显,甚至可能因过度详细而变得冗余。

“做梦”优化记忆层级与焦点

“做梦”可将关键笔记提升至记忆层级顶部,作为上下文注入新会话。为避免消耗过多令牌,顶层记忆需保持精简。Claude Code仅加载MEMORY.md的前200行或25 KB作为索引,其余细节置于下层并通过链接访问。

此外,“做梦”可使记忆聚焦特定目标。在LAB基准测试中,初始生成的wiki因共享表总结不佳,仅覆盖72%的合同条款事实。经“做梦”循环反思后,Claude重写指令,为每个合同创建独立页面并逐字引用,使事实覆盖率提升至100%。

“做梦”还能填补会话留下的空白。在构建wiki时,第二轮“做梦”发现了缺失页面链接,将其重新指向现有文档或新增索引页,完善了知识结构。

结语:向后思考,向前生活

智能体记忆系统设计仍面临诸多挑战:何时创建记忆?如何保持更新?虽然实时记录能捕获显著性,但会分散注意力;“做梦”虽将记忆创建推至后台,却需消耗计算资源。

将转录搜索作为基础,结合wiki等表征,是当前有效的路径。但维护表征需防止错误积累。“做梦”赋予了Claude“向后看”的机会,利用算力组织记忆、纠正错误并维护高效的知识地图。随着模型能力演进,记忆系统的设计也将持续迭代。