从记忆到进化:Anthropic 揭秘 Agent Memory 的底层设计

从记忆到进化:Anthropic 揭秘 Agent Memory 的底层设计

💡 原文中文,约6900字,阅读约需17分钟。
📝

内容提要

Anthropic研究提出Agent记忆分层架构,包括原始会话日志、记忆笔记、知识Wiki和自动注入上下文。核心机制“Dreaming”使Agent在空闲时回顾历史、提炼经验并纠正错误。Pokémon实验显示,精准记忆策略优于无差别保存,Wiki在跨文档复杂任务中显著提升表现。研究启示:记忆应与任务解耦、分层管理、保留来源可信度并控制整理成本。

🔎

延伸解读

记忆分层:各层职责与更新节奏不同

文章提出的四层架构并非简单堆叠,而是按用途分工:原始日志保留事实依据,记忆笔记提炼可复用经验,Wiki建立知识关联,注入上下文提供即时信息。不同层级的更新频率和访问策略应有所区别,例如注入层必须精简,避免错误记忆反复占用上下文。这种分层思路有助于在追溯、提炼与即时使用之间取得平衡。

精准记忆优于全量保存:Pokémon实验的启示

Pokémon实验中,记录413个文件、近98万字符的模型仅获1枚徽章,而只保留9个文件、约4.3万字符的模型获得4枚徽章。差异在于后者只保存无法从当前画面重新获取、且能改善决策的信息,如长期目标、行动计划和失败教训。这提示Agent应学会判断信息价值,避免把易过期的游戏状态当作长期记忆,反而拖累任务进度。

Dreaming的价值与成本:纠错需要后台整理

Dreaming机制让Agent在空闲时回顾历史、比对原始日志并修正错误记忆。Pokémon案例中,错误记忆导致反复走错路,经Dreaming修正后才成功抵达下一座城市。但后台整理并非免费,需要额外模型调用和计算资源。因此,何时整理、整理哪些记忆、哪些需要重新验证,都应纳入系统设计,不能默认记忆维护零成本。

Wiki的适用边界:复杂任务才显优势

在约35万份文档、4.2亿Token的数据集上,经过128个会话构建的Wiki使25题测试得分从13%提升至48%,结合搜索工具达61%,并平均每题节省约2万Token。但文章也指出,若答案可直接从单份文档搜出,Wiki收益不明显;某次Wiki甚至比原始文档还大。这说明知识地图应服务于跨文档综合任务,并警惕只复制不提炼的膨胀风险。

❓

Q&A

Anthropic 提出的 Agent 记忆分层架构包含哪几个层次?

包含四层:Transcripts(原始会话日志)、Memory Notes(记忆笔记)、Memory Representations(结构化知识表示,如 Wiki)、Injected Context(自动注入下一次会话的上下文)。

Dreaming 机制是什么?它如何工作?

Dreaming 是让 Agent 在空闲时回顾历史记录、提炼经验、纠正错误并构建知识的后台整理机制。工作时积累原始日志,空闲时模型重新审视这些记录,提炼长期经验、检查错误、整理结构化知识、建立关联,并将关键信息注入下次会话上下文。

为什么说 Agent 记忆不是越多越好?有实验证据吗?

Pokémon 实验显示,Sonnet 3.7 保存了 413 个记忆文件、约 97.8 万字符,但只获得 1 枚徽章;Fable 5 仅用 9 个普通文件、2 个文件夹和 1 个全局文件(约 4.3 万字符),却获得 4 枚徽章。因为无差别保存大量易过期的游戏状态反而增加整理负担,精准记录对未来决策有用的经验更有效。

Dreaming 如何纠正 Agent 的错误记忆?

Dreaming 让 Agent 回顾会话记录,将记忆笔记与原始日志比对,从而发现并修正错误。例如在 Pokémon 中,Claude 错误记住 Pokémon Center 方位导致迷路,经 Dreaming 比对原始日志后修正了位置判断,最终成功通过山洞。

知识 Wiki 在复杂任务中能带来多大提升?

在约 35 万份文档、4.2 亿 Token 的数据集上,经过 128 个会话构建的 Wiki 使 25 个问题的评分从 2 个会话时的 13% 提升到 48%;Wiki 与搜索工具结合达到 61%,单独搜索为 53%。结合 Wiki 和搜索平均每个问题节省约 20,000 个 Token。但若答案可直接从单份文档搜索获得,Wiki 收益不明显。

Anthropic 的研究对 Agent 工程实践有哪些启示?

主要启示包括:记忆应与任务执行解耦,在后台独立整理;记忆应分层管理,不同层次有不同更新频率和访问策略;记忆需保留来源和可信度;应记住经验而非所有状态;Dreaming 后台整理需控制计算成本。

🏷️

标签

➡️

继续阅读