跳到主要内容

遗忘问题:无限膨胀的 Agent 记忆如何拖垮性能

· 阅读需 10 分钟
Tian Pan
Software Engineer

一个记住所有事情的 agent,最终什么有用的都记不住。这听起来像是悖论,却是每个在没有遗忘策略的情况下上线长期运行 AI agent 的团队的亲身体会。记忆存储不断膨胀,检索质量持续下降,某一天你的 agent 开始自信地引用用户的前雇主、一个已废弃的 API 端点,或者一个六个月前就已放弃的项目需求。

行业在赋予 agent 记忆能力上投入了大量精力,却很少关注那个更难的问题:教会 agent 如何遗忘。

积累陷阱

大多数 agent 记忆系统遵循一条简单的流水线:检测重要信息,生成 embedding,存入向量数据库,之后通过相似度搜索检索。这在前一百次交互中运转良好,到了第一千次,便开始出现问题。

失败模式很隐蔽。没有任何崩溃,agent 依然在检索记忆并生成流畅的回复。但检索到的上下文中越来越充斥着过时的偏好、过时的事实,以及来自毫不相关的对话、却碰巧与当前查询在语义上相似的片段。agent 以同等的置信度处理所有这些注入的上下文——它没有任何机制来区分上周的记忆和去年的记忆。

关于 LLM agent 中经验跟随行为的研究精确地量化了这个问题。在一项研究中,使用"全量存储"记忆策略的 agent 积累了超过 2,400 条记录,而其在医疗推理任务上的准确率却跌至 13%。同样的 agent 在采用选择性记忆管理——只添加高质量的经验并主动删除过时条目——之后,仅维护了 248 条记录,准确率却达到了 39%。存储更少,性能提升了 3 倍。

这一规律在不同领域中保持一致。在一个自动驾驶 agent 测试中,选择性记忆的得分为 51%,而无限积累则只有 32%。其背后的机制是经验跟随特性:agent 会复制它所检索到的记忆的风格和质量。当你的记忆存储被缺陷或过时的条目污染时,agent 会忠实地复现这些缺陷。

记忆系统悄然失效的四种方式

记忆退化的危险之处在于,从外部看起来一切运转正常。有四种标准监控无法捕捉到的独特失效模式。

去上下文化存储是最根本的问题。向量数据库存储文本片段时不保留关系结构。当用户在一次对话中说"我的大女儿9岁了",在另一次对话中说"我们在为孩子们计划一次旅行"时,记忆系统无法可靠地关联这些事实。它存储的是孤立的片段,脱离了彼此之间的关系后便失去了意义。

过时信息的持续存在会制造出自信却错误的回答。如果用户六个月前提到在 A 公司工作,如今已经换了工作,记忆系统会高兴地检索出那条信息并将其注入提示词中。agent 无从得知这条信息已经过时——它处理记忆检索结果的方式与处理其他任何提示词内容完全相同,没有任何不确定性信号。

跨上下文污染对重度用户打击最大。使用 agent 处理多个项目的人会发现,每当不同项目的话题共享相似词汇时,项目 A 的记忆便会渗入项目 B。检索系统匹配的是语义相似度,而非对话相关性,因此调试一个 Python 服务时,可能会把完全无关的 Python 数据流水线的记忆一并浮现出来。

错误传播是最隐蔽的问题。当 agent 犯了一个错误,而这个错误被存储为记忆时,它就成为了未来错误的模板。研究表明,有缺陷的记忆条目会随时间复合累积——每一条进入记忆存储的错误决策,都会增加下游发生类似错误决策的概率。这是 agent 版本的"用自己的输出训练自己":一场质量螺旋式下滑。

真正有效的遗忘策略

人类记忆不会以相同权重保留所有事情,agent 记忆也不应该如此。最有效的生产系统通过几种互补策略实施刻意遗忘。

基于时间的衰减与语义分类根据存储信息的类型分配不同的生存时间(TTL)。不可变的事实,如用户姓名或关键系统约束,获得无限 TTL。瞬态上下文,如"用户目前正在调试性能问题",获得数小时或数天的短 TTL。偏好信息则介于两者之间。这与艾宾浩斯遗忘曲线相呼应——记忆的保留呈指数级衰减:大部分信息迅速消失,余下的缓慢淡出。

访问频率强化在 agent 每次成功检索并使用某条记忆时提升其相关性评分。这创造了一种自然的选择压力:在实践中被证明有用的记忆得以留存,而从未被检索的记忆则逐渐衰减至检索阈值以下。这是 agent 版本的间隔重复——你真正需要的记忆会不断地自我刷新。

带质量门控的选择性添加从源头上预防问题。系统不再存储每次交互,而是评估一条新记忆是否添加了尚未被已有记忆覆盖的信息、是否与现有记忆相矛盾(此时应更新旧记忆,而非补充新记忆),以及是否达到最低质量门槛。研究表明,仅靠严格的选择性添加,即使没有任何删除机制,也能比朴素的记忆增长带来 10% 的绝对性能提升。

加载中…
References:Let's stay in touch and Follow me for more thoughts and updates