Agent 记忆是一个没有失效策略的缓存
现在每个智能体 (agent) 框架都将“长期记忆”作为核心功能发布,每个团队都将其视为百利而无一害的好事。智能体记住了用户的偏好、之前的决策、项目上下文以及上周收到的修正,因此每次会话的起始状态都比上一次更“热”。演示效果令人难以抗拒:用户说一句“按照我的喜好设置项目”,智能体就照办了。没有人问那个显而易见的问题,因为这一功能的叙事框架在刻意回避它。
问题是:这一切何时会变得不再准确?
记忆存储本质上是一个缓存。它保存着关于一个并非静止不变的世界的事实。智能体在 8 个月前记录了“用户偏好 Postgres”,但团队此后已迁移到了另一个数据库。智能体记得“用户在增长团队”,而用户在 3 月份已经调岗了。智能体存储了一个简洁的对话总结,但该对话的前提在两条消息后就被修正了。记忆层在提取这些信息时,其自信程度和新鲜感与今早刚写下的事实完全一致。我们花了 50 年的时间才意识到,没有失效策略的缓存就是一个正确性漏洞 (correctness bug)。然后我们构建了智能体记忆,并在没有这种策略的情况下将其发布了。
功能包装掩盖了缓存的本质
Phil Karlton 的那句名言——“计算机科学中只有两件难事:缓存失效和命名”——之所以是个笑话,是因为它确实如此。缓存失效之所以难,是因为它不是一个你构建出来的功能,而是一套你需要维持的准则。你必须知道每个缓存条目依赖于什么,检测依赖项何时发生变化,并在有人读取陈旧值之前传播该变化。这三者中任何一个出错,缓存就会默默地撒谎。
智能体记忆同时具备这三个问题,却没有继承任何准则,因为它从未被当作“缓存”来介绍。它被冠以“记忆”之名——这个词带有拟人化的、令人共情的、显而易见的好感。你绝不会发布一个没有 TTL(生存时间)、没有剔除机制且没有依赖跟踪的缓存层,并称其为生产就绪。但是,带有同样这三个漏洞的“长期记忆”每天都在发布,因为这个名字让缓存“偷渡”过了评审阶段。
2026 年关于智能体记忆框架的调查直言不讳地指出了这种做法的后果。在广泛采用的系统(Mem0、Zep、Letta、LangMem、MemOS)中,检索质量和写入提取能力提升很快,但陈旧性处理正如 Mem0 所言,在大多数框架中仍然是“未解决”的。存储量单调增长。没有任何东西会被剔除,因为“记忆”的说法让删除感觉像是数据丢失,而不是缓存清理。
