刚刚,Anthropic 公开 Claude 记忆设计,Agent 也会离线做梦
AINLP · 人工智能
原创 NLPer 2026-11-07 12:11 江苏 记住之后还得会整理 Anthropic 刚刚发布了一篇新文章《The components of agent memory》,公开了 Claude 的记忆设计。 这套设计把记忆分成四层:会话记录保留经历,笔记提炼值得记的内容,wiki 组织知识之间的关系,少量启动上下文则告诉下一次会话该去哪里找。 Dreaming 在任务之外回看这些材料,纠错、重组,并更新后续会话要读取的内容。 作者 Lance Martin 把其中的 dreaming 解释为离线计算。它可以改正记忆里的错误,生成新记忆,也可以重新组织知识。 四层记忆各管一件事 原文图一 会话记录 笔记 wiki 与启动上下文组成的记忆层级 先从图的底部看。 会话记录 Transcripts 保存的是经历。 Agent 与用户的交互、任务执行和工具反馈,留在可搜索的日志里。它提供了回查入口:一条经验是从哪次操作得来的,当时看到了什么,后续有没有被推翻,都可以重新寻找依据。 记忆笔记 Memory notes 保存的是筛选后的经验。 Claude 可以在工作时标记重要事件,也可以直接把规则、计划和发现写进文件。笔记的价值在于省去未来重复摸索的过程,例如保留一条已经测试的规则,以及它为什么成立。当前屏幕每轮都会显示的信息,就不必不断抄进文件。 记忆表示 Memory representations 负责重新组织知识。 原文重点讨论 wiki:围绕一个主题建立页面,把相关事实、笔记和其他页面连接起来。单条笔记回答“以前发现了什么”,wiki 则进一步帮助 Claude 判断“这件事还和什么有关,接下来去哪里找”。 预载上下文 Injected context 是每次启动就带上的少量内容。 Harness 在会话开始时把它放进模型上下文,Claude 不必先猜到有一份笔记值得搜索。但这一层占用每次任务的上下文预算,所以适合放索引和立即需要知道的事项,细节留在下面几层,按需读取。 Claude Code 的自动记忆就是一个具体实现:每次会话只加载 MEMORY.md 的前 200 行或 25KB,用这部分内容告诉 Claude 已经知道什么、到哪里查找,而非把所有记忆文件一起塞进窗口。 这几层之间可以跨层读写。Dreaming 可以从原始会话记录补笔记、构建 wiki,也能把重要内容提升到启动层,再把过细的内容下移,只留下链接。 下一次会话的读取路径因此是:先拿到小型索引,再根据当前问题读取笔记、沿 wiki 找关系,必要时搜索原始记录。 经验通过可读的外部上下文跨会话保留,模型权重并不因此更新。会话压缩用摘要替换旧轮次,让工作能在新的上下文窗口继续;这里讨论的则是哪些知识应该跨会话留下来。 Dreaming 负责离线重组 会话中记笔记有一个天然限制:Agent 必须一边完成当前任务,一边预测哪些发现以后会有用。来不及验证的判断、已经过时的状态,都可能被写进去。 Dreaming 把一部分工作移出了这个前台循环,让 Claude 在之后重新查看历史。它仍然要调用模型、消耗推理计算,只是不必把每次整理都插进当前任务。 回看时,Claude 能把旧笔记与原始记录放在一起检查:事实是否写反,规则是否真的经过测试,多份笔记是否重复;再按用途合并、修正或删减。对于 wiki,还要维护页面之间的连接,补缺失页面、改错误指向,并把索引留给后面的会话。 这里的输入不局限于某次会话的笔记。原文强调,单次写入只能看到当时的上下文,dreaming 可以跨多个会话寻找共同模式,发现同一条错误怎样反复出现。 一项 wiki 实验就检查出了九条指向不存在页面的链接。第二轮 dreaming 把它们改到对应同一份文档的现有页面,又补上索引等三个页面。 原文图十五 第二轮整理纠正缺失页面链接并补充索引 如果把这套思路落到现有产品接口,Managed Agents 的 Dreams 提供了明确的版本边界:异步任务读取一个已有记忆库和 1~100 个历史会话,以输入库的副本为基础,在独立的输出记忆库中整理; 原输入库不变 。开发者检查输出后,再决定让未来会话挂载哪一份。 这个接口目前处于研究预览。它的 instructions 用来指导整理方向,包括重点关注什么、合并或舍弃什么、按什么结构组织输出。文档建议给出这类目标层面的要求;精确修改某条记忆,则使用记忆库本身的编辑接口。 原始记录、整理后的记忆和新会话采用的版本,由此可以分开处理。一次离线整理完成后,后续任务才会在采用新版本时读到它。 写入记忆也需要学习 离线整理之外,还有一个前置问题:Claude 当场怎么判断哪些东西值得写? Anthropic 把它描述为对未来需求的预测。写下一条已验证的规则,就是判