首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Anthropic 解法:记忆分层,让 Agent 越用越聪明

Anthropic 解法:记忆分层,让 Agent 越用越聪明

作者头像
FunTester
发布2026-06-17 13:19:43
发布2026-06-17 13:19:43
1040
举报
文章被收录于专栏:FunTesterFunTester

Agent 的记忆默认是一次性的

你有没有发现,每次重新打开一个 Agent 会话,每次它对你的项目几乎一无所知。上次踩过的坑,这次还可能再踩的坑;上次摸索出去这次还要重新推一遍的路径。

这不够聪明,而是它缺少一个用来保存一个可靠位置 上次真正学到的东西。任务完成,经验并没有得到沉淀下来的能力。在很多工作流里临时帮你,只是让它临时完成任务却没有能力沉淀经验。

大多数 Agent 的记忆只存在于当前会话的 context window 里。会话还在信息就能被引用;会话结束信息就会被清空。下一次启动时又像刚加入项目的新人需要重新理解目录结构、项目偏好、常见坑点和协作规则。

这个设计对简单任务没有太大问题。让 Agent 改一个函数、解释一段代码、整理一份短文,临时上下文通常就够用。但一旦 Agent 要处理长期、连续、跨项目的工作,问题就会变得很明显:它无法积累经验,无法记住团队偏好,也无法从过去的错误中形成稳定改进。

两种记忆,解决两个问题的两种记忆

要让 Agent 真正越用越顺手,霸道不让把所有信息塞进一个大上下文里,而是要把记忆拆成:拆成两层 会话记忆记忆 和 长期>记忆。这两层记忆处理的是完全不同的问题。

┌─────────────────────────────────────────────┐ │ 会话记忆(Session Memory) │ │ 当前任务的临时状态 │ │ 会话结束后不自动保留 │ ├─────────────────────────────────────────────┤ │ 长期记忆(Long-term Memory(Long-term Me) │ │ 跨会话的经验积累 │ │ 持久化存储下次启动仍然可用 │ └─────────────────────────────────────────────┘

会话记忆解决号处理的是会话记忆问题现在正在做什么。比如当前修改到了哪个文件、用户刚刚纠正了什么、这轮任务有哪些约束、哪些命令刚刚失败过。这些信息对当前任务非常重要,但不一定值得永久保存。

长期记忆解决的是之前已经学到了什么。比如某个项目的文档必须放在 docs/ 目录、用户不希望自动创建测试类、某类文章标题不能带序号、某个工具在当前环境里经常有权限问题。这些信息不是一次性上下文,而是下次还会影响决策的经验。

两者缺一不可但也不能混为一谈。只保留会话记忆 Agent 每次都要从头开始;什么都写进长期记忆又很快变成杂乱仓库。真正有用的设计是让短期信息保持轻量,让长期经验持续精炼。

从会话记忆到长期记忆

光有分层还不够,关键问题是:会话里发生的事关键问题是:怎么沉淀到长期记忆里?

如果每件事都直接写越来越长的记忆,长期时间产生大量噪音。临时失败、重复提醒、已经过时的路径、互相矛盾的经验都会混在一起。Agent 在一起。Agent 下次读取长期记忆时,不但不能更快决策,反而要先从旧信息里筛选什么还能用。

一些托管 Agent 平台会设计成异步整理过程Dreaming 这种过程,也可以理解为一种会话结束后的梦境整合。它不是在任务执行中不断打断 Agent,而是在会话结束后异步运行专门把本次会话中真正有价值的经验提炼出来。

┌──────────────────────────────────────────────┐ │ 会话结束 │ └─────────────┬───────────────────────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 梦境整合(Dreaming) │ │ │ │ 1. 回顾本次会话,提炼有价值的经验 │ │ 2. 与现有长期记忆对比(去除重复和冲突) │ │ 3. 将精炼后的内容写入长期记忆 │ ─────┬──────────────────────────────────────┘ ▼ ┌──────────────────────────────────────────────┐ │ 长期记忆(更新后) │ │ 供下次会话直接使用 │ └──────────────────────────────────────────────┘

这个名字很贴切。人会在睡眠中整理白天接收到的信息,把重要内容巩固成长期记忆,把无关内容逐步过滤掉。Agent 的梦境整合关联了类似的事情:不是简单记录一切而是把可复用经验从会话噪音里提炼出来。

什么值得进入长期记忆什么值得

不是所有会话内容都值得留下来。长期记忆最适合保存跨任务。和跨会话仍然会影响决策的信息,尤其是那些下次不希望 Agent 重新摸索的经验。

  • • 反复出现的错误模式,以及已经验证过的解决方法
  • • 团队或用户的明确偏好,例如文档目录、注释语言、提交信息风格
  • • 更适合当前项目的工作流,而不是泛泛的通用建议
  • • 工具、接口或环境的特殊行为,避免下次重新踩坑

反过来单次任务的中间状态、已经解决的临时问题、短期的某一轮对话上下文就不应该随手塞进长期记忆。比如某次命令失败但马上修好了,或者某个临时文件只在当前任务中有意义,这些信息留在会话记忆里就够了。

判断一条信息是否值得沉淀,可以问一个很简单的问题:下次遇到相似任务时,知道这件事是否能明显减少试错 ?如果答案是肯定的它才更适合进入长期记忆。

共享多个 Agent 长期记忆

记忆分层的另一个价值,在多 Agent 场景下会更明显。

如果团队里有多个 Agent 并行它们的工作会话记忆通常是相互独立的。一个 Agent 正在改代码,另一个 Agent 正在写文档,第三个 Agent 在排查环境问题。它们当前关注的文件、命令和状态不同不应该共享同一份短期上下文。

但它们可以共享同一个长期记忆。一个 Agent 踩过的坑经过梦境整合写入长期记忆后,其他 Agent 下次启动就能直接看到这条经验不需要再走一遍相同的弯路。

单个 Agent 难以独立完成的是这件事。单个 Agent 只能看到自己经历过的会话,多 Agent 共享长期记忆后系统才能逐渐形成<font color="#8064a2" 团队层面的经验积累。此时,</font color 聪明不再只是单个模型的能力,而是整个工作流的复利。

长期记忆也需要维护

长期记忆不是写进去就万事大吉。随着项目演进有些经验会过时。比如项目换了技术栈之前的构建命令不再适用;团队调整了规范原来的文档目录不再是默认选择;用户偏好也可能随着工作流变化而更新。

如果长期记忆只增不减它会逐渐降质。信息越积越多但信噪比越来越低 Agent 反而要花更多时间判断哪条记忆还可信。更麻烦的是过时记忆可能比没有记忆更危险,因为它会让 Agent 带着错误确信做决策。

所以梦境整合的价值不只是往长期记忆里写,也包括清理旧的重复矛盾的内容。新增和清理是一组动作少了任何一边长期记忆都会慢慢失真。

小结

记忆分层的本质是把现在做什么和已经学到什么分开管理。会话记忆负责当前任务的临时状态,长期记忆负责跨会话的经验沉淀,中间通过梦境整合完成筛选去重和更新。

这套设计让 Agent 不再只是每次临时响应请求,而是能把一次次任务转化为稳定经验。当会话记忆足够轻、长期记忆足够准 Agent 才会从每次重头开始变成真正越用越顺手。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档