Claude Agent记忆架构揭秘:四层金字塔与离线梦境机制

Anthropic 官方研究团队近期正式发布了《Agent 记忆的组成部分》一文,首次系统公开了 Claude 内部长期记忆架构的设计细节。对于正在研发长程 Agent 的团队而言,跨会话的状态沉淀与记忆持久化始终是核心难题之一。
过往工程中,不少团队的做法较为粗暴:要么将上一轮对话全量追加到当前上下文,要么外挂向量数据库直接灌入所有历史记录,这会导致上下文被琐碎细节快速占满,模型甚至会被前文的错误信息带偏,陷入无效循环。
Anthropic 提出了截然不同的思路,这套方案已在 Claude Code 与 Managed Agents 的生产环境中落地。它的核心并非选型数据库,而是搭建了包含四层金字塔结构与「离线梦境(Dreaming)」的动态闭环系统,我们将在下文拆解这套架构的设计逻辑与协同机制,为长程 Agent 开发者提供前沿工程参考。
传统外挂记忆的两大缺陷
在深入讨论架构前,需先明确 Agent 长期记忆的定义:它特指 Agent 从实际任务与交互中习得、且能跨会话持久留存、供后续轮次自主读取的知识与规则,区别于模型训练固化的参数权重、单会话上下文的即时学习,以及为防爆窗生成的阶段性摘要。
1. 细节过载拖垮系统
很多开发者直觉上认为 Agent 记的细节越多越强,但长程动态环境中这一假设并不成立。Anthropic 用 Claude 运行《宝可梦 红版》开展对比实验:早期模型 Sonnet 3.7 采取事无巨细的记录策略,每遇战斗、拾取道具、与 NPC 对话都单独存盘。游戏推进到第 10000 步时,它已生成 413 个文件、分布在 225 个文件夹中,累计占用 977930 字符。
庞大的记忆未带来增益,反而成为负担。环境动态演化下,事无巨细的记录会迅速失效,Sonnet 3.7 后续 17 步中忙着整理笔记,未推进任何有效操作,仅拿到 1 枚道馆徽章。而更成熟的 Fable5 仅保留 10 个文件(43406 字符),拿到 4 枚徽章;Opus5.5 采用紧凑策略直接通关。
记忆并非免费资产,本身是高昂的负债,无过滤的滥记会消耗 Token,稀释模型注意力,让 Agent 陷入「为记笔记而记笔记」的僵死状态。
2. 错误记忆引发级联崩盘
在线记录的第二个问题是不可避免的主观偏差或事实错误。宝可梦月见山任务中存在单向台阶,跳下去无法原路返回。某次会话中,Claude 错误记录「宝可梦中心在山洞东侧」,走出大门后依此判断「月见山已走完」,跳下台阶摔回原点。后续会话的新 Agent 无条件信任错误笔记,连续 3 次跌落同一台阶,最终陷入死循环放弃任务。
这种「错误记忆的级联崩溃」,根源在于缺乏事实校准机制,一条错误记忆会污染后续所有独立会话。
Agent 应存储的内容筛选
既然事无巨细的记录会拖垮系统,那么输入端需建立严格筛选。Anthropic 提出关键分类判据:区分易变事实与隐性规则,仅存储后者。
易变事实指 NPC 坐标、背包道具数量、网页当前 DOM 结构等,这些信息肉眼可见且动态刷新,模型直接查看当前屏幕的成本远低于从记忆库调取可能过期的旧记录,因此无需存入长期记忆。
隐性规则是无法从单帧屏幕读出的经验,比如「洞穴出口后不要跳右侧台阶」「API 并发调用需先拿锁」「报错根因为环境变量缺失」等,这类经验需模型在多次跨会话探索、碰撞与失败中提炼,是长期记忆的核心内容。
不少团队试图用死板的 Prompt 限制强模型的记录,比如「严禁记录具体坐标」「只准记录失败教训」,但 Anthropic 在 CL-Bench 评测中发现,这种做法对强模型反而是负向约束。实验数据显示,对强大的 Opus5 施加严苛限制性提示词时,模型平均奖励从 0.828 暴跌至 0.594,净损失 0.234;而给予明确方向引导(先读记忆再验证假设),弱模型 Sonnet4.6 跑分近乎翻倍,强模型 Sonnet5 则无需提示便能自主高频调阅记忆。
架构哲学是:越强大的模型,越不应被死板规则锁死记录动作,强模型的优势在于权衡情境显著性,工程应提供分层存储与事后修正的自愈管道,而非替模型做决定。
Claude 的四层记忆金字塔架构
解决了「记什么」的筛选问题后,需考虑沉淀经验的组织形式。Anthropic 公开的 Claude 记忆架构是一套严密的四层金字塔,而非单一向量库。
这四层自底向上依次为:
1. 底层:原始执行流水(Transcripts):整个架构的基石,无损记录 Agent 完整对话历史、工具调用参数、执行结果与环境反馈,是唯一的真实底账,支持关键词与全文检索。
2. 第二层:记忆笔记(Memory Notes):每次会话中,Claude 自主记录的显著观察,是单次任务的局域教训,通常为平铺的 Markdown 笔记。
3. 第三层:知识地图与网络(Wiki / Knowledge Representation):最具生产力的一层,系统利用离线算力,将碎片化笔记抽象、归纳并交叉链接为结构化的 Markdown Wiki 网络。
4. 第四层:开局注入上下文(Injected Context):全新会话启动时,系统预加载的极轻量摘要,仅作为最高级别的元数据导航,不包含海量细节。
以软件工程代码库 Stainless 的实测为例,若让 Agent 每次从底层原始流水中检索代码规范,单次检索需消耗上万 Token,且命中不稳定。而 Claude 在 128 轮交互中,将学到的模式沉淀为结构化 Wiki,随着交互深入,Wiki 从零星页面演化成包含多级目录、交叉链接的知识网络,跨语料问答评测中准确率显著提升,平均每个问题减少约 20000 Token 的盲目检索开销。
离线梦境:Agent 的夜间纠错机制
仅靠四层金字塔仍可能因一条错误笔记崩溃,因为在线交互时,模型算力全在应对当前任务,无法回看全局,易在局部压力下记录偏差结论。为此,Anthropic 引入「离线梦境(Dreaming)」的自我对账与演化引擎,灵感源于认知神经科学:人类大脑清醒时收集经历,睡眠时海马体会回放、修剪短期记忆,整合进长期记忆。
1. 对照底层流水底账,推翻线上错误总结:在线笔记是易腐烂的二次加工缓存,进入 Dreaming 阶段时,系统会调取未经修饰的原始执行流水。以月见山任务为例,Dreaming 对比移动坐标流水与上层笔记,发现「宝可梦中心在东侧」的错误,删除后重写为「穿过月见山后切勿向右侧悬崖跳跃,必须返回洞内向北行进」。修正后的 Agent 在第 1935 步顺利穿越月见山抵达华蓝市,未修正对照组因记忆错误连续跌落台阶,最终迷失退回深灰市。
2. 拓扑结构的自动修补与去重:除了事实纠错,Dreaming 还承担「知识地图园丁」职责,自动遍历 Wiki,扫描未创建的文件名并补齐,合并多次验证的临时教训为通用规范,剔除过期记录,修复死链,生长缺失的核心策略页面。
Claude Code 的生产落地实践
不少技术架构在论文中设计完美,但推向生产环境时会因延迟、Token 成本、上下文管理问题崩塌。Anthropic 公布了这套架构在 Claude Code 中的落地做法:
1. 只加载前 200 行:顶层做目录,底层做仓库:很多开发者会无节制地将记忆文件塞进 System Prompt,导致预置指令过长,模型指令遵循度下跌,调用延迟与成本翻倍。Claude Code 采取硬核截断设计:每次会话启动时,不全量加载 MEMORY.md,仅加载前 200 行或 25 KB 文本,这部分充当目录索引,告诉模型知识模块与路径,当需要具体规范时,通过本地工具按需检索,化解了上下文容量与信息完整性的矛盾。
2. 生产环境的三个工程权衡:部署时需做好三个核心维度的权衡:
- 写入时机:在线捕获可趁热打铁,但挤占上下文带宽;离线 Dreaming 转移开销到后台,但需额外算力,无法当场反哺。
- 记忆漂移:长程记忆库需定期剪枝,引入访问频次与置信度衰减机制,淘汰过期记录,而非全量沉淀。
- 检索与表示平衡:单纯原始流水检索易迷失,完美结构化 Wiki 需大量 Dreaming 算力,Anthropic 采用轻量 Markdown 索引结合底层分块检索,在准确率与开销间取平衡。
生产级 Agent 记忆的精髓,是在每一个环节做精巧的减法,而非打造吞下一切的垃圾桶。
写在最后
梳理 Claude 记忆架构,可提炼三条底层法则,对所有开发者极具实操价值:
1. 永远保留原始底账,不盲信中间记忆:记忆笔记是易碎的二次加工缓存,底层原始执行流水是级联崩溃时唯一的自愈抓手。
2. 顶层做目录,底层做仓库:开局上下文只放精炼索引,规则与知识下沉到底层,按需深读。
3. 给强模型目标,不要写死死板规则:强模型优势在上下文理解与权衡,应搭建稳定的分层存储与离线闭环,而非硬编码限制。

