返回 FEED
PAPER2026-05-25

Agent Memory 框架:记住、引用、遗忘

当人们给 Agent 添加记忆时,第一反应通常是"还能存点什么?"但更多存储不等于 Agent 会真正使用它。

Vox(@Voxyz_ai)运行 X Manager(一种全天发射大量 cron job 的 Agent)一段时间后,确信了一件事:Agent 记忆必须同时做三个工作才能可靠。

记住该记住的。引用该信任的。遗忘该过期的。

把这三个分开,你就有了一个可以应用到任何 Agent 的框架。

记住:Agent 记忆的分层结构

实践中,Agent 使用的记忆大约有 6 层,每层有不同的生命周期、权威范围和失效方式。

热会话(当前任务的工作记忆)

保存进行中的上下文:用户刚说了什么、最后的工具输出、本轮的中间结论。任务结束时应被清除。常见失败:用户两回合前说"今天不要 emoji",Agent 在第三回合压缩上下文时丢掉了这条,又加了 emoji。

日状态(今日操作白板)

Agent 今天做了什么、进行到哪一步、接下来是什么。白板的设计就是被覆盖的。一条更新的直接指令应该让之前的状态退休。常见失败:早上说"先处理文章 A",下午切换到 B,但 cron Agent 仍在为 A 拉取研究。

项目记忆(长期教训)

这个项目之前踩过什么坑、哪些模式有效、哪些决策已经确定。比白板更长寿,但仍会被更新的教训覆盖。常见失败:三个月前的笔记说"用户偏好 markdown",尽管用户上个月换了偏好,今天的格式选择仍被它影响。

检索/索引(提供候选,不做决定)

向量存储、RAG、GBrain 搜索、图搜索都属于这层。它们的工作是提供可能相关的材料。索引给你候选,最终决定仍取决于来源、时间、权威性和新鲜度。常见失败:向量搜索拉出六个月前的旧计划,被当作当前最佳答案。

规范策略(长期规则层)

项目规则文件(如 AGENTS.md、SOUL.md)、团队策略、产品边界。这些更像 Agent 的"宪法":长期稳定,只能通过手动编辑文件来更改。

直接指令(当前任务命令)

用户刚说的话。对当前任务优先级高,但不一定持久。必须保留原始来源。摘要转述不携带同等权重。常见失败:AGENTS.md 说"公开行为需要手动确认",热会话摘要说"用户似乎授权了批量发送",Agent 悄悄遵循了摘要。

这 6 层不是凭空发明的。主流框架如 LangGraph 和 Mem0 也把记忆分层。不同名字,同一原则。

引用:不要让 Agent 猜测谁是权威

记忆工作至少需要两步:

第一步:确定当前查询应该命中哪个来源。GBrain 的 source resolver 是个好参考:用 CLI flag、环境变量、dotfile、最长前缀路径匹配、默认配置和 fallback 来决定当前来源。防止的是:查询错误来源。

第二步:当查询出现冲突事实时,权威顺序决定谁赢。应用自己定义这部分。一个可复制的顺序:

  1. 原始直接指令
  2. 规范策略
  3. 最新项目决策
  4. 有来源归属的长期记忆
  5. 检索摘要
  6. 压缩摘要

高层覆盖低层。

2024 年加拿大航空 chatbot 案例是经典的来源权威例子。Bot 告诉客户可以申请追溯丧亲票价退款,但官方政策页面说相反。法庭判决加拿大航空赔偿 650.88 加元加利息。法官的话:"信息来自静态页面还是 chatbot 并不重要。"

一旦 AI 代表公司发言,就不能与规范政策页面矛盾。用户不该猜测哪个更准确。公司必须自己定义权威链。

引用本身也会过时。2026 年苏格兰选举前,Demos 测试 AI 工具对 75 个选举问题的回答,发现 34% 的答案包含错误信息。ChatGPT 的引用"至少一年前过时"的比例达 44%。对 Agent 来说,判断来源意味着问:这个链接是否仍然 current。

遗忘:让旧记忆过期是可靠性工程

最被低估的 Agent 记忆能力是 let old memories expire。大多数团队把遗忘当作 GDPR 合规任务,但对 Agent 来说这是可靠性问题:过时的记忆看起来仍然可用,尽管 Agent 不知道它已经悄悄错了。这比"没有记忆"更危险。

这个风险已在真实内容系统中显现。2026 年,英国商业贸易部描述了一个 GOV.UK 案例:主页面是最新的,但 GenAI bot 在更窄的查询中,从无人维护的旧页面拉取答案。DBT 审计首轮发现 150 个页面同时满足三个条件:5 年未更新、5 年访问量少于 11 次、无负责人。

旧信息没有消失,只是 unread。一旦 Agent 把它拉回来,它听起来和今天的答案一样自信。

三种实现路径可以共存:

硬过期:valid_from / valid_until 列。新事实到达时,旧事实被写入过期时间戳。旧记录保留但被标记为不再可用。适用:政策、定价、法规。

双时态:四个时间戳 created_at / valid_at / invalid_at / expired_at 区分"现实中何时为真"和"系统何时得知不再有效"。适用:随时间变化的事实。

软衰减:检索排名降级长期未使用的记忆,下限 0.3×。文档说"不删除或隐藏任何东西"。这是搜索时的 recency rerank。适用:偏好、习惯、背景知识。

设计 Agent 记忆时,把过期机制与存储机制一起定义。

三个问题

把三个工作转化为快速审计。在任何记忆进入决策循环前,问:

  1. 这个记忆能影响什么级别的决定?仅提示?可引用证据?还是能做出最终决定?
  2. 它来自哪里?哪个规范文件、哪天的笔记、哪条消息?还是只是另一段记忆的衍生品?
  3. 它仍然有效吗?什么样的新信息会让这段记忆靠边站?

如果三个问题都可回答,记忆可以进入决策路径。如果不能,它只能作为背景上下文。不要让没有来源、没有有效期窗口、没有权威边界的记忆为 Agent 做决定。

工具推荐

  • GBrain:跨会话结构化知识库,双时态事实,6 层 source resolver
  • lossless-claw:无损会话记录(OpenClaw 插件)
  • LangGraph:短期+长期层(语义/情景/程序)
  • Mem0:对话/会话/用户/组织层 + 软衰减
  • Zep:双时态事实(四个时间戳)

设计 Agent 记忆的形状与公司治理相同。通过分层记住。通过来源引用。通过过期遗忘。把这三个捆绑成一份信任契约写入 Agent,它的调用就开始可靠了。

Agent 真正变得可信的时刻,是三个工作同时运转的时刻。