先这样答
Agent 必须学会遗忘,核心原因在于性能、准确性与噪声控制。第一,记忆库无限制增长会让检索变慢,存储成本也会失控。第二,过时信息与最新事实很容易发生冲突。当用户更改了偏好或项目更换了技术栈,旧记忆如果没有被处理,检索时旧答案就会顶掉新答案,从而直接污染 Agent 的决策。第三,一次性的任务细节如图表生成的临时文件名、中间运行状态,长期保留在记忆库中只会成为后续检索的噪声。
记忆衰退机制的设计通常从四个维度展开。首先是时间衰减打分,在检索得分的基础上乘以一个随数据年龄递减的权重,半衰期按具体的业务节奏来调节。其次是按类型配置衰退策略,偏好类信息慢衰减,事实类信息经过校验后长期保留,而任务细节类信息则配置为快衰减。第三是用量反馈,长期不被命中的记忆在检索时被降权,而被高频使用且结果好的记忆则获得加权。最后是显式失效,当用户更正信息时,机制将旧记忆标记为作废而不是直接物理删除,以此保留审计追踪的能力。
此外,遗忘不应仅仅被视为后置的删除策略,还需要与写入端联动。在写入新记忆时先做去重与冲突检测,当新事实与旧记忆产生矛盾时直接覆盖并做标记,这能减少后续需要计算衰退的数据量。一句话总结——记忆系统的价值不在存了多少,在取回来的是不是当前任务该信的,遗忘本身就是检索质量的一部分。
面试官会怎么追问
- 「你们具体是怎么避免旧数据干扰新任务的?」 可以在写入和检索两个阶段分别处理。写入时做冲突检测,发现新提取的事实与旧记忆矛盾时,把旧数据标记为失效。检索时引入时间衰减因子,越老的数据综合得分越低,确保新事实排在前面。
- 「时间衰减的半衰期具体怎么定?不同场景有区别吗?」 答法是半衰期完全由业务节奏决定。对于临时任务状态,半衰期可能按小时或天计算。对于用户的长期偏好,半衰期会设定得很长,甚至主要依赖用量反馈来降权,而不是单纯依赖时间。
- 「为什么用户更正信息时是标记作废,而不是直接删掉旧记忆?」 答法是为了保留审计能力。直接删除会导致后续如果发现新信息是误操作时无法回滚。打上失效标记既能让该记忆在常规检索中被过滤掉,又能在需要排查 Agent 历史错误决策原因时提供完整的依据。
回答的坑
只谈向量数据库的物理删除,忽略了逻辑上的降权与失效标记。正确的方向是把遗忘看作检索排序权重的动态调整,物理清理通常只是最后一步的兜底。
把遗忘机制和写入机制割裂开,只在检索端做文章。正确的方向是强调写入端的前置去重和冲突检测,这是控制记忆库规模、降低遗忘机制计算压力的关键环节。
同系列的题