Anthropic 工程团队拆解 Agent 记忆:记笔记、挑重点,再靠「做梦」整理

AI资讯20分钟前更新 菜芽君
14 0

技术解读基于 Anthropic Engineering 研究文 The components of agent memory(2026-11-06)。

克尔凯郭尔说:人生只能向后理解,却必须向前活。Anthropic 工程团队在给 AI Agent 设计记忆时,也撞上类似悖论——经验要在当下捕获,但真正有用的长期知识,往往要在事后整理才站得住。这篇研究文把 Agent Memory 拆成几块可工程化的组件:会话内记笔记、显著性(salience)判断,以及用空闲算力回放日志的 dreaming(sleep-time compute)。下面按机制、评测与开放问题重组,给做 Agent / Context Engineering 的读者。

1. 先划清边界:什么叫 Agent Memory

文中对「agent memory」的定义很窄、也很好用:

  • 包含:模型从经验(用户交互、任务过程)中获得、并能跨会话保留、之后作为可读上下文再用的知识(例如记忆目录里的笔记文件)。
  • 排除:权重更新;单会话内的 in-context learning;compaction(用摘要替换旧轮次、在新窗口里继续干活)。

也就是说,这里的 memory 不是「再训一遍」,也不是「同一条对话里临时记住了什么」,而是经验知识的跨会话持久化。

2. 两条流水线:在线记笔记 vs Dreaming

人类侧的类比是:海马体在线快速编码,离线(睡眠/安静休息)再回放、蒸馏并写入新皮层。工程上不必执着于生物学隐喻,可直接看成两条互补流水线:

  1. 在线(Online session notes):会话日志 / transcript 不断产生;模型对「当下显著」的事件打标签,或立刻写成 memory notes。
  2. Dreaming(sleep-time compute):交互空闲时,用算力回放日志——纠错、新建表示(如 wiki)、把重要内容提升到更高记忆层级、或按目标塑形记忆。

Letta 与 UC Berkeley 提出的 sleep-time compute,正是「用空闲时间重组已有上下文」;Anthropic 把它落到 Agent 记忆整理上,并称这一过程为 dreaming。

Anthropic 工程团队拆解 Agent 记忆:记笔记、挑重点,再靠「做梦」整理
在线记笔记 vs 做梦整理:主任务注意力与后台算力

在线记笔记的好处是:显著细节立刻可用;代价是分心占用主任务注意力,且「此刻觉得重要」未必等于「未来真的需要」。Dreaming 把整理推到后台,但产出未必马上进入当前会话。两条路径不是二选一,而是分工。

3. Memory 本质是「对未来需要什么」的预测

写下一则规则,等于预测:未来会话还会用到它。写下一则已验证事实,等于预测:未来 Agent 可以信任它、不必再核对一遍。随着模型变强,这类预测质量明显上升——CL-Bench 上的学习闭环把这一点量化得很清楚。

CL-Bench:错 → 假说 → 验证 → 规则

Continual Learning Bench(CL-Bench)1.0 衡量 Agent 能否用 memory 扛住长程任务。文中举例:一系列要查库作答的问题;答完后告知正确答案,并允许写入 memory 以利后续题。评测里,每道题开新会话,唯一例外是可从跨会话持久的 memory 目录取文件。

理想闭环是:答错 → 记录失败 → 提出假说 → 测试假说 → 沉淀为「如何答未来题」的已验证规则。不同模型成熟度差很大(原文结论,按原文模型名):

阶段模型(原文)记忆侧表现
停在假说Claude Sonnet 4.6目录里散落文件,多是未验证猜测
开始整理Claude Opus 4.7合并成单一参考文档,区分已核对 / 未确认
标记对错Claude Sonnet 5经 grader 确认后标记;答错则写修正
闭合环路Claude Opus 5多数条目含规则、如何得知为真、历史答案、陷阱警告
同样闭合Claude Opus 5.5、Claude Sonnet 5.5有 memory 时分数与 Opus 5 大致相当;无 memory 基线略高
Anthropic 工程团队拆解 Agent 记忆:记笔记、挑重点,再靠「做梦」整理
记忆学习闭环:提问→作答→反馈→提出假说→验证→写入已验证规则→下一会话读取

要点不在「多写几份笔记」,而在能否把反馈变成可复用的已验证规则,并跨会话读到它。

4. 显著性判断:Pokémon 里「滥记」vs「精记」

在线笔记质量,取决于模型能否在不知道「后面会发生什么」时,判断什么值得记。团队用 Pokémon Red(长程导航与决策)做显著性压力测试:开局给可读写 memory 文件夹,对比约 1 万步时的记忆目录。

  • Claude Sonnet 3.7:假定「什么都可能有用」,滥记——约 413 个文件 / 225 个文件夹,只拿到 1 枚徽章。问题不只是体积:游戏状态持续变化,细账很快过期;到第 1 万步附近,它甚至开出第四套「master」记忆,17 步内新建 6 个文件、删除 9 个,却一步游戏动作都没做——在「整理记忆」上自我消耗。
  • Claude Fable 5:约 9 个文件 / 2 个文件夹,加顶层 global.md,拿到 4 枚徽章。它记的是游戏不显式给出、只能推理出来的东西:策略、计划、试出来的规则。例如连续 7 个球都抓不住 Magikarp 后,写下「若 3+ 球连续失败,改变按键时机(菜单步骤间多插 wait)——一改就中」。金钱、地图位置等屏幕每回合都能读的状态,不必入库。

global.md 像仪表盘:当前目标、道馆预案、自己的 memory 使用规则;locations 存路线计划,gameplay 存机制心得。更小的记忆文件夹,反而走得更远。 Opus 5.5 类似:小目录跟踪目标与下一步,边玩边改写,并通关。

工程直觉:好 memory 不是录像带,而是不可从当前观测直接读出、却会影响未来决策的压缩知识。

5. 如何引导写 Memory:说「用途」,别规定「怎么写」

CL-Bench 上,仅告知「有 memory 文件夹可用」这类笼统指引,就足以让 Opus 4.7、Opus 5 有效用 memory,并带来明显增益。

再测「每条实验一条硬规则」时:若规定「只记录失败」,Opus 5 与 Opus 4.7 从 memory 拿到的增益大幅缩水——对强模型,预置过窄规则会削弱它们自己的显著性判断。

弱/旧模型则需要更具体提示:Sonnet 4.6 常不读 memory,也不测假说;提示「答题前先读 memory,并显式测试理论」后,分数近乎翻倍。Sonnet 5 则无需催促,10 次里约 9 次会先读 memory(Sonnet 4.6 不到一半)。

对前沿 Claude,团队倾向简单指引:人要求时、或明显值得记时再写——判断留给模型。

6. Dreaming 的四类(加一类)作用

会话内笔记可能一开始就错,或环境变了之后漂移;后续会话却可能信任它。Dreaming 用原始 transcript 当 ground truth,回放并改写笔记。

6.1 纠错(Pokémon Mt. Moon)

Mt. Moon 西进东出,入口附近有单向悬崖陷阱。Claude 以入口旁 PokéCenter 为地标,却曾错记「PokéCenter 在东侧」,走出后写「Mt Moon DONE」,随即掉回来路。Dreaming 对照 transcript 改掉坐标后,它回到洞口继续,最终到 Cerulean City;未纠错或无 memory 的 run 则反复掉崖,甚至放弃式绕回 Pewter。

6.2 建表示:Wiki 与 Stainless 语料

Dreaming 可增量维护 wiki(主题页 + 页间链接),给检索提供「地图」。用收购的 Stainless 内部语料(约 35 万文件、约 4.2 亿 tokens)+ 25 题评测:仅 search 探索,再指令 Opus 5 经 dreaming 建 wiki;dreaming 从 2 轮扩到 128 轮,25 题 graded criteria 从约 13% → 48%。早期像新员工,多梦几轮后知识图变密。

Wiki + Search 优于单用:wiki 随规模增长,search+wiki 综合分约 54% → 61%;仅 search 约 53%;仅 wiki 最佳约 48%。二者并用约每题省 2 万 tokens。Harvey LAB / 并购文档上也显示:跨文档综合与判断题,wiki 常带来增益(文中并购问答 wiki 约 87% vs 仅 search 约 73%);若标准答案多在单文档可检索命中,wiki 增益不明显;若 wiki 膨胀到比原文还大,则抽象失败(博尔赫斯式「与帝国同大的地图」)。

Anthropic 工程团队拆解 Agent 记忆:记笔记、挑重点,再靠「做梦」整理
Wiki 知识地图与搜索工具并行:二者结合更稳

6.3 提升记忆层级(注入每会话上下文)

Dreaming 可把笔记「上浮」到层级顶端,由 harness 预注入每会话上下文——无需先知道「该搜什么」。但注入吃 token,错注会污染每一局;长指令还会降低遵循度。故顶层必须保持小;dreaming 大量工作其实是下沉细节、留下链接。Claude Code auto memory 同理:不把全部 auto memory 塞进窗口,只加载 MEMORY.md 前约 200 行或 25KB 作索引。

Anthropic 工程团队拆解 Agent 记忆:记笔记、挑重点,再靠「做梦」整理
记忆层级:预注入上下文 → MEMORY.md 索引 → 可检索笔记/Wiki → 原始会话记录;上浮与下沉

6.4 按目标塑形 + 补缺口

Dreaming 指令可按任务目标塑形。LAB 收购任务中,未强调合同条款时,多 Agent 共写一张条款表会互相覆盖,brief 仅覆盖 41/57 条款事实(约 72%);经「反思失败 → 改指令 → 重建 wiki」后,改为一合同一页、单 Agent、逐字引用,覆盖升至 57/57(100%)。

另:会话内笔记视野窄;dreaming 可跨多会话找模式。二次 dreaming 曾把九条指向缺失页的链接改指已有页,并补三页(含索引)。

7. 仍开放的问题

  1. 何时记:在线记立刻可用但分心;dreaming 不抢主任务但延迟可用。
  2. 如何保鲜:错误预测、环境漂移;dreaming 可修但耗算力——不宜全量常扫,宜聚焦易变信息或按访问频率调节奏。
  3. Transcript search vs 表示:search 可做底座;wiki 等表示 + search 有时更强,但表示要持续维护,防错误与幻觉堆积。

模型对显著性已进步,却仍无法真正预知未来轮次。Dreaming 提供「向后看」的算力窗口:整理、纠错、维护表示,让未来会话更容易拿到该拿的东西。记忆系统会随模型能力继续演化——「怎么设计 Claude 的 memory」本身仍是开放研究。

—

信源

  1. Anthropic Engineering,《The components of agent memory》,Published Nov 6, 2026。作者 Lance Martin 等。文中评测涉及 CL-Bench、Pokémon、Stainless 语料、Harvey LAB 等,模型名与分数均按原文。

配图为据原文机制生成的技术示意图(非官方截图),仅供排版参考。

© 版权声明

相关文章

暂无评论

暂无评论...