Anthropic智能体记忆架构:少即是多的记忆哲学

Anthropic实验揭示智能体记忆应少而精,四层架构与Dreams离线修正机制是关键。
Anthropic通过Pokemon Red实验发现,保存413个记忆文件的Claude仅获1个徽章,而维护简短仪表盘的Claude获得4个徽章,证明记忆多不如记得巧。文章提出四层记忆架构(转录记录、记忆笔记、记忆表示、注入上下文),并强调顶层注入内容每次会话都消耗token且错误会被反复加载。Dreams作为会话间的离线修正机制,对照转录检查并重写错误笔记,写入独立新存储而非原地修改,按token计费。闭环原则要求保存推导出的规则及验证方式,而非未经测试的猜测。实践建议包括将CLAUDE.md控制在200行以下、砍掉可查资料、告诉智能体记忆用途而非固定记录规则。
当你的编程智能体在会话间忘记一切,并且不断忽略你添加到CLAUDE.md的规则时,问题可能不在于记忆太少,而在于记忆方式错了。Anthropic在11月6日发布的一篇关于智能体记忆的帖子,通过一场Pokemon Red实验揭示了一个反直觉的结论:保存413个记忆文件的Claude,表现反而落后于一个只维护简短仪表盘的Claude。
这背后是Anthropic提出的四层记忆架构,以及一个被称作"做梦"(Dreams)的离线整理机制。对于任何使用Claude Code或构建长期运行智能体的人来说,理解这套设计比安装任何记忆插件都更重要。
Pokemon Red实验:记忆多不如记得巧

Anthropic进行了一场约10000步的Pokemon Red实验,让不同模型各自维护一个记忆文件夹。Sonnet 3.7假设一切都可能重要,几乎不加选择地保存信息——玩家的金钱和地图位置每回合都直接显示在屏幕上,它却仍做了非常详细的笔记,最终只获得一个徽章。Fable 5则采取了完全不同的策略:它只写一个简短的文件列表,外加一个名为global.md的文件,Anthropic将其描述为"仪表盘"。这个仪表盘包含当前目标、预先写好的宝石计划,以及模型自己的规则。同样的游戏进度下,Fable 5获得了四个徽章。
这个模式的核心洞察很简单:金钱和地图每回合都免费可见,而道馆计划必须经过推理才能得出。保存你不得不计算出来的东西,而不是你能直接看到的东西。 你可能没注意到,Anthropic自己也承认这是其内部测试,尚未被独立复现,但模式本身很容易借鉴。
开源插件如claude-mem(GitHub上超过十万星标)主张捕获智能体的一切行为、压缩后注入后续会话,许多热门视频也推荐这种做法。遗忘确实有代价,但无差别的保存同样有代价,而且可能更隐蔽。
四层记忆架构:从原始日志到注入上下文
Anthropic将记忆分为四个层次,可以用一张带抽屉的桌子来理解。
- 最底层是转录记录(transcripts):每个会话中发生事件的可搜索日志,这是原始事实记录。
- 往上一层是记忆笔记(memory notes):Claude自己判断值得写下的观察。
- 再往上是记忆表示(memory representations):更大、更有组织的结构,类似百科词条。
- 桌面最上层是注入上下文(injected context):在任何工作开始前就加载的内容。在Claude Code中,这包括你编写的CLAUDE.md和Claude自己写的auto-memory。
两者都在每次会话开始时加载,其中auto-memory有200行或大小上限的截断,而你的CLAUDE.md不会被这个限制切掉。Claude Code文档建议将CLAUDE.md控制在200行以下,因为更长的文件消耗更多上下文并降低遵循度。文档没有解释为什么长度会损害遵循度,但Anthropic的论证很直接:注入的记忆每次都消耗token,错误的笔记会被带入每个会话,而加载笔记并不保证Claude会采取行动。Claude Code文档明确指出,Claude将这些文件视为上下文,而非强制配置。
auto-memory 是 Claude Code 中由 Claude 自主维护的记忆文件,与用户手写的 CLAUDE.md 并列,在每次会话开始时自动加载。它记录了 Claude 在过往交互中认为值得保存的观察、规则或上下文摘要,但受 200 行或文件大小上限的截断约束。与 CLAUDE.md 不同,auto-memory 的内容完全由模型生成,用户通常不直接编辑,因此可能包含过时或未经验证的条目。其设计初衷是让智能体在无人干预的情况下积累经验,但这也意味着错误笔记一旦写入就可能被反复注入。Anthropic 建议定期审查 auto-memory 的顶层内容,并结合 Dreams 机制进行离线修正,以避免“记忆污染”累积。
错误笔记的代价:从Mt. Moon到梦想修正

在Pokemon Red实验中,Claude曾搞混自己在宝可梦中心哪一侧,宣布山在身后,并写下"Mt. Moon,已完成"的笔记。实际上并没有完成。更糟的是,这条错误笔记被反复加载,因为没有机制去验证它。David Hershey在2025年构建了原始Claude Plays Pokemon项目来研究Claude如何处理超长任务,其中Sonnet 3.7曾让全队昏厥以逃离Mt. Moon,重生后删除了所有Mt. Moon笔记——这是一种修正错误笔记的粗暴方式。
Anthropic的新实验提供了更好的修正方案:在会话之间的"梦想"阶段,Claude对照会话转录检查笔记,发现了错误并重写了它。凭借修正后的笔记,它重新进入Mt. Moon并抵达了Cerulean City。使用未修正笔记或完全没有记忆的运行,都未能越过这座山。
从机制上说,"做梦"是额外的模型工作,在智能体空闲时运行。"睡眠"只是一个名字,其理念来自Letta和UC Berkeley的Sleep Time Compute论文。Anthropic的版本读取日志、修正错误,然后写入笔记、构建百科层、挑选下次会话加载的内容。大部分工作是在保持桌面整洁。
Sleep Time Compute 是 Letta 与 UC Berkeley 在一篇论文中提出的概念,指在智能体空闲时段(“睡眠”期间)分配额外计算资源,用于整理记忆、反思经验或优化策略。其核心假设是:在线交互时智能体忙于应对即时任务,难以进行深度记忆维护;而离线阶段可以低成本地执行压缩、去重、验证等操作。Anthropic 的 Dreams 机制借鉴了这一思路,但更侧重于对照会话转录修正错误笔记并重组记忆存储。睡眠计算通常按标准 token 费率计费,因此需要权衡整理频率与成本。该范式与人类睡眠中的记忆巩固过程类比,强调“离线整理”对长期智能体性能的关键作用。
Dreams的运作细节与商业验证

Anthropic的Dreams文档打破了一个常见假设:它不是原地编辑记忆的清理工作。一次梦想读取现有记忆存储,加上1到100个过往转录,然后写入一个独立重组的新存储,合并重复项、替换过时条目、浮现新洞察。原始存储永远不会被修改,因此你可以审查新存储或直接丢弃。文档解释 Dreams 存在的原因:会话中的记忆是局部且增量的,经过多次会话,存储会积累重复、矛盾和过时条目。一次梦想耗时几分钟到几小时,按标准token费率计费——智能体的梦想确实有账单。
在游戏之外,Anthropic的Managed Agents公告描述了法律AI公司Harvey的案例。Harvey的智能体使用梦想机制在会话间记住特定工作流程和工具模式,Harvey自己的测试中完成率提高了约6倍,但没有公布设置细节或基线。更有趣的是被记住的内容:变通方法,那些不得不经过推理才能得出的东西。
Managed Agents 是 Anthropic 提供的一项服务,允许企业将长期运行的智能体托管在 Anthropic 的基础设施上,并内置记忆管理功能(包括 Dreams)。与开发者自行搭建的 Claude Code 不同,Managed Agents 抽象了会话管理、记忆存储和离线整理等底层细节,使企业可以专注于业务逻辑。Harvey 作为法律 AI 公司,利用该服务让智能体在跨会话的法律工作流程中记住特定工具模式和变通方法,从而提升任务完成率。Managed Agents 的 Dreams 机制按 token 计费,企业需为智能体的“做梦”过程付费。该服务面向需要持久记忆和复杂工作流的生产环境,而非单次对话场景。
什么值得写下来:闭环原则与CLAUDE.md实践

CLBench基准测试为"什么值得写"提供了最清晰的答案。在数据库任务中,每个问题从全新会话开始,只有记忆文件夹跨会话保留。当Claude答错时,它可以记录失败、提出理论、测试理论,并将站得住脚的部分转化为规则。Anthropic称之为"闭环"。Opus 5是第一个完成闭环的模型,它保存了一条规则以及它如何知道这条规则为真。Sonnet 4.6存储了未经测试的猜测,Opus和Sonnet 5.5也完成了闭环,凭借记忆达到了与Opus 5相当的水平。写下你推导出的东西,以及你如何知道它是真的。把猜测当作事实保存,就是另一条等待加载的"Mt. Moon已完成"。
Anthropic还发现了一个反直觉的现象:在CLBench上,仅仅告诉Claude有一个记忆文件夹可用,就给Opus 4.7和Opus 5带来了显著提升。而一个固定规则——只记录失败——反而让两个模型损失了大部分增益。告诉智能体记忆是做什么用的,把怎么做留给智能体自己。
基于这些发现,今天的实践建议很明确。你的CLAUDE.md应保持在200行以下,砍掉智能体可以直接在仓库中查找的内容。智能体每回合都会重读该文件,短则便宜,长则昂贵。用户还发现自己的规则相互矛盾,无法判断哪条在生效。让智能体写自己的笔记——在Claude Code中是auto-memory,在Managed Agents中是梦想机制——并偶尔亲自审查顶层内容。文档说,指令越具体、越简洁,Claude遵循得越一致。
对于那些记忆文件堆积如山的项目,回看那两个Claude的对比:拥有413个文件的Claude有富余的记忆,却仍然落后;而维护简短仪表盘的Claude知道自己的目标、计划和规则。好的智能体记忆是小的、经过整理的、在会话之间被重写的。如果你在Claude Code上使用着冗长的CLAUDE.md,在安装任何插件之前,先把它修剪一遍。
CLBench 是一个用于评估智能体长期记忆能力的基准测试,其数据库任务设计为每个问题从全新会话开始,仅记忆文件夹跨会话保留。这种设置迫使智能体必须依赖记忆来积累知识,而非依赖会话内的上下文。测试中,智能体在答错后可以记录失败、提出理论、测试理论,并将验证通过的规则写入记忆,形成“闭环”。CLBench 的关键指标是智能体能否区分已验证的规则与未经测试的猜测,并仅保存前者。Anthropic 通过该基准发现,仅告知智能体存在记忆文件夹就能显著提升性能,而强制固定规则反而有害。CLBench 为记忆策略的设计提供了可复现的量化依据。
相关推荐

Claude Code额度不够用?实测哪些技巧真省额度
实测 Claude Code 20美元套餐:换用 Sonnet 或 Haiku、降低 effort 能让同样任务额度减半以上,而 /clear、/compact、plan mode 等流传技巧在短会话中几乎不省额度甚至更贵。

Anthropic新研究:AI记忆如何避免「记错」?
Anthropic最新报告探讨AI智能体跨会话记忆的可靠性:数据库任务中记忆提升基准分数,但游戏实验显示记忆可能固化错误。报告建议保留证据、测试规则、纠正过时笔记,为助手构建者提供实践指南。

AI智能体记忆全解析:四层结构与“做梦”机制
解读Anthropic智能体记忆研究:记忆的四层架构、以CLBench和宝可梦实验检验“该记什么”,以及通过“做梦”修正笔记、构建wiki、提升上下文注入质量的机制与局限。