大数跨境

Claude 记忆架构首度公开

Claude 记忆架构首度公开 AI4SE
2026-11-11
4
导读:一条笔记,让 AI 在同一个悬崖边连跳三次,最后直接放弃任务。这不是段子,而是 Anthropic 官方实验里真实发生的「记忆事故」。

一条笔记,让 AI 在同一个悬崖边连跳三次,最后直接放弃任务。

这不是段子,而是 Anthropic 官方实验里真实发生的「记忆事故」。也正是这一连串翻车,逼出了 Claude 内部那套从未对外公开过的记忆架构。

Anthropic 研究团队近日公开长文《The components of agent memory》,第一次系统披露了 Claude 的长期记忆设计。更重要的是,它不是纸面架构——这套东西已经跑在 Claude Code 和 Managed Agents 的生产环境里。

对正在做长程 Agent 的团队来说,这篇文章的价值在于:它把「记忆」从一个数据库选型问题,重新定义成了一个分层存储 + 离线自愈的系统工程问题。


一、先把边界划清楚:什么才算 Agent 的「长期记忆」

讨论记忆之前,得先拆掉一个常见误解:并不是所有能留存信息的地方,都叫 Agent 的长期记忆。

在模型体系里,信息留存其实有三种方式:

留存方式
本质
为什么不算「Agent 记忆」
模型权重(Weights)
训练期固化的内部参数
无法在任务中即时习得,也不能按需改写
上下文内学习(In-context learning)
单会话窗口内的少样本示例
会话一结束就蒸发,不跨会话
阶段性摘要(Compaction)
为防爆窗口而生成的压缩摘要
目标是「省 token」,不是「沉淀经验」

Anthropic 给出的定义很克制:Agent 记忆,专指从实际任务与交互中习得、能跨会话持久留存、并供后续轮次自主读取的知识与规则。

三个关键词缺一不可:习得、持久、可读取。只满足「存下来」的,都不是。


二、两条血泪教训:为什么传统外挂记忆总在翻车

教训一:记得越多,死得越快

很多人的直觉是「记得越细,能力越强」。Anthropic 用 Claude 打《宝可梦 红版》做了一组极其残酷的对照实验。

早期模型 Sonnet 3.7 采取了「事无巨细」的记录策略:每打一场野怪、每捡一个道具、每跟 NPC 说一句话,都单独建一个文件存档。游戏推进到约第 10,000 步时,它已经写下了 413 个文件、分布在 225 个文件夹里,累计 977,930 字符。

结果呢?它开始建立第 4 个主记忆目录,并在随后的连续 17 步里创建了 6 个文件、删除了 9 个文件——所有算力都耗在整理笔记上,游戏里一步没走,最终只勉强拿到 1 枚道馆徽章。

对比之下,更成熟的 Fable 5 只保留了 10 个文件、43,406 字符,稳稳拿下 4 枚徽章;Opus 5.5 用紧凑策略直接通关。

模型
记忆规模
最终战绩
Sonnet 3.7(滥记)
413 个文件 / 225 个文件夹 / 977,930 字符
1 枚徽章,17 步内原地打转
Fable 5(精简)
10 个文件 / 43,406 字符
4 枚徽章
Opus 5.5(紧凑)
未膨胀
通关

记忆从来不是免费的资产,它本身就是一种高昂的负债。

没有过滤机制的滥记,烧的不只是 token,更是模型那点本来就不宽的注意力带宽。Agent 会陷进「为了记笔记而记笔记」的僵死状态。

教训二:记错一条,后续全盘崩盘

第二条原罪更隐蔽:在线生成的笔记,天然带着主观偏差和事实错误。

《宝可梦 红版》的月见山任务里,有个致命地形——洞穴入口旁藏着一段单向台阶,跳下去就会掉回刚走过的路线,而且爬不回来。

某次会话中,Claude 在笔记里写下了一句错误结论:「宝可梦中心在山洞东侧」。走出大门后,它依据这条笔记认定「月见山已经走完了」,随即跳下单向台阶,直接摔回原点。

更糟的是,导航工具感知不到高低落差,Claude 便误以为自己只是「往西走过头了」,在笔记里加倍坚信自己路线正确。之后每一次进入游戏的新 Agent 都无条件信任前人留下的这条错误笔记——同一个台阶,连续跌落 3 次,最后彻底放弃,任务宣告失败。

Anthropic 给这个现象起了个名字:错误记忆的级联崩溃。当系统缺少事实校准机制,一条错误的长期记忆会像病毒一样,污染之后所有独立会话。


三、第一道防线:只记隐性规则,不记易变事实

既然滥记会拖垮系统,第一道防线必然建在输入端。Anthropic 给出的判据只有一句话:区分易变事实与隐性规则。

类型
典型例子
该不该进长期记忆
原因
易变事实(Ephemeral Facts)
NPC 当前坐标、背包剩几瓶伤药、网页当前 DOM 结构
❌ 不记
屏幕上肉眼可见、随时刷新;重看一眼的成本低于调一条可能过期的旧记录
隐性规则与策略(Latent Rules)
「这洞穴出去千万别跳右侧台阶」「该 API 并发必须先拿锁」「这类报错的根因是环境变量缺失」
✅ 必记
单帧屏幕读不出来,只能靠跨会话的探索、碰撞与失败提炼

真正的长期记忆,只该承载第二类信息。第一类记进去,就是给自己埋雷。

别用死板的 Prompt 去限制强模型

那怎么让 Agent 学会「只记有价值的」?很多团队的直觉是写死规则:严禁记录坐标、只准记录失败教训。

Anthropic 在 CL-Bench 上的实验结果,给这种直觉泼了盆冷水:

实验设置
平均奖励变化
Opus 5 + 严苛限制性提示(只许记失败经验)
0.828 → 0.594,净损失 0.234
Sonnet 4.6 + 明确方向引导(先读记忆再验证假设)
跑分近乎翻倍
Sonnet 5(无提示)
自主高频调阅记忆,表现最优

结论很反直觉,但很硬:越强大的模型,系统越不该用死规则锁死它的记录动作。

强模型的优势恰恰在于它能敏锐权衡当前情境的显著性。工程架构该做的,不是替它做决定,而是给它分层的存储容器和事后修正的自愈管道。


四、四层记忆金字塔:沉淀下来的经验该长什么样

解决了「记什么」,下一个问题是「怎么组织」。Anthropic 公开的答案是一套四层金字塔——不是平铺直叙的单一向量库。

Claude四层记忆金字塔与离线梦境闭环架构图

自底向上看这四层:

① 底层 · 原始执行流水(Transcripts)
完整对话历史、工具调用参数、执行结果与环境反馈,无损记录。它是整个系统唯一的真实底账(Ground Truth),支持关键词与全文检索。

② 第二层 · 记忆笔记(Memory Notes)
会话运行中,Claude 自主打标签写入的显著观察,记录单次任务的局域教训,通常以平铺的 Markdown 笔记存在。

③ 第三层 · 知识地图(Wiki / 知识表示)
最有生产力的一层。系统不让零散笔记无限累加,而是用离线算力把碎片笔记抽象、归纳、交叉链接成一张结构化的 Markdown Wiki 网络。

④ 顶层 · 开局注入上下文(Injected Context)
新会话启动时自动预加载的极轻量摘要。它绝不含海量细节,只充当最高级别的元数据导航。

分层到底能带来多大差别?看 Stainless 代码库的实测:

如果让 Agent 每次都去底层流水里捞代码规范,单次检索动辄吞掉上万 token,命中还极不稳定。Anthropic 改成在 128 轮交互中持续把学到的模式沉淀为结构化 Wiki——这张 Wiki 从最初几个孤立页面,动态长成包含多级目录、交叉双向链接、明确架构规范的知识网络。

量化结果:Wiki 地图与搜索工具协同使用时,跨语料问答准确率显著上升,平均每个问题还省下约 20,000 token 的盲目检索开销。


五、离线梦境(Dreaming):Agent 的夜间纠错机制

只有四层金字塔还不够。前面月见山那场连环跳崖,就是这套结构自己解决不了的死局——在线交互时,模型所有算力都在应付当下任务,根本没余力回看全局,最容易在局部压力下写下偏差结论。

于是 Anthropic 加了第五个部件:离线梦境(Dreaming),一个自我对账与演化引擎。

命名灵感直接来自认知神经科学:人脑清醒时负责收集经历,进入慢波睡眠与快速眼动睡眠(REM)时,海马体会进行高频的离线回放(Hippocampal Replay),把白天的短期记忆重放、修剪、剔除噪音,最终整合进大脑皮层的长期结构。

Claude记忆生命周期闭环流程图

Dreaming 有三大不可替代的工程特性:

1)对照底层底账,推翻线上的错误总结

在线笔记只是一层易腐烂的二次加工缓存。Agent 闲下来进入 Dreaming,系统启动专用审判模型,直接调取底层最原始、未经修饰的执行流水。

月见山惨案之后,研究人员让系统执行了一次离线 Dreaming。审判模型把角色实际移动坐标的流水和上层笔记一比对,立刻抓出破绽:笔记说宝可梦中心在东侧,但流水证明角色出大门向东走就是直接坠崖重置。

于是它当场删掉这条假笔记,重写为:「穿过月见山后切勿向右侧悬崖跳跃,必须返回洞内向北行进。」

效果如何?华蓝市的长程实测里,经过 Dreaming 修正的 Agent 在第 1,935 步顺利穿越月见山抵达华蓝市;未修正的对照组在同一个台阶连跌 3 次,彻底迷失、倒退回深灰市,任务失败。

2)拓扑结构的自动修补

Dreaming 还兼任「知识地图园丁」。知识网络一扩张,死链和孤岛页面必然出现。它会在第二轮 Dreaming 中遍历整张 Wiki,扫描所有被引用但尚未创建的文件名,依据历史记录把缺失页面补齐,并把死链重新指向正确节点。

3)去重与规范合并

被多次验证的临时教训,会被合并提炼为通用规范;已过期的临时记录直接剔除。记忆库因此始终保持在「可用的密度」上,而不是越滚越肿。


六、生产落地:前 200 行的黄金索引

论文架构再漂亮,进了生产环境也可能被延迟、token 成本和上下文管理撕碎。Anthropic 给出了 Claude Code 的真实工程做法。

核心手段极其硬核:每次会话启动,绝不全量加载 MEMORY.md,严格只加载前 200 行或 25 KB。

生产环境访问路径:顶层做目录,底层做仓库

为什么?因为过长的预置指令会让模型对核心任务的指令遵循度断崖式下跌,同时成倍推高每一次调用的首字延迟和开销。

这前 200 行扮演的完全是目录索引:它只告诉模型「我已经掌握了哪些模块的知识、这些细节分别存在底层的什么路径下」。当模型真的需要某条规范时,再拿着索引指引,主动通过本地工具发起按需检索。

顶层做目录,底层做仓库——上下文容量与信息完整性之间的矛盾,就这么被化解了。

生产环境里的三个工程权衡

权衡维度
两种做法
代价与取舍
写入时机
在线捕获 vs 离线梳理
在线能趁热打铁抓显著事件,但写笔记本身挤占上下文带宽;离线把整理开销挪到后台,却要额外算力、且无法反哺当轮
记忆漂移与实效
定期剪枝 vs 全量沉淀
环境与代码库一演进,过期笔记就会误导未来的 Agent;需引入访问频次与置信度衰减,定期退火淘汰
检索与表示
轻量索引 vs 深度知识图
只靠原始流水检索易在海量碎屑中迷失;维护完美 Wiki 又要持续投入 Dreaming 算力。折中方案是轻量 Markdown 索引 + 底层分块检索

生产级 Agent 记忆的精髓,从来不是把系统打造成吞下一切的垃圾桶,而是在每一个环节做精巧的减法。


七、三条可以立刻抄走的底层法则

法则一:不要盲信中间记忆,永远保留原始底账。
笔记只是易碎的二次加工缓存。无论上层结构怎么演化,底层未加工的 Transcripts 必须无损存档——它是系统发生级联崩溃时唯一的自愈抓手。

法则二:顶层做目录,底层做仓库。
别幻想把所有经验一股脑注入开局上下文。顶层只放精炼的小型索引,具体知识下沉到底层,由 Agent 按需深读。

法则三:给强模型目标,不要写死板规则。
强模型的优势在于复杂的上下文理解与显著性权衡。与其用硬编码规则限制它记什么,不如把精力花在搭建稳定的分层存储与离线对账闭环上。


写在最后

把整套架构拆完,会发现它其实在反复做同一件事:减法。

删掉不该记的易变事实,删掉过期的临时笔记,删掉全量注入的冲动,删掉替模型做决定的控制欲。剩下的是四层容器、一条底账、一个会做梦的夜班工人。

所以真正决定 Agent 长程能力的,从来不是你存了多少,而是你敢删掉多少、能校正多少。

也许多年以后回看,「Agent 学会睡觉」这件事,比「Agent 学会记事」更值得记上一笔。


往期回顾

稀奇不?Workbuddy 对零元面馆有自己的看法

一只"小龙虾"的三年:WorkBuddy 前生今世

读完了 228 页 WorkBuddy 手册

别刷新闻了:我给 Work Buddy 装了一块「全球雷达」!

免费学 WorkBuddy 最好的资料,一直摆在官网上

10 分钟做出这套高级 PPT:我把做 PPT 这件事,外包给了 WorkBuddy。带附件!

下载榜前 8 的 WorkBuddy Skill,我全都试了一遍!

30 分钟上手 WorkBuddy:90% 的人第一步就错了!



【声明】内容源于网络
0
0
AI4SE
聚焦Dify、Coze等工作流和 AI 智能体研发,融合LLM、AI Agent、RAG、MCP 等技术,驱动高效赋能。
内容 249
粉丝 0
AI4SE 聚焦Dify、Coze等工作流和 AI 智能体研发,融合LLM、AI Agent、RAG、MCP 等技术,驱动高效赋能。
总阅读14.2k
粉丝0
内容249