真实面经题目 · 原创解析

Agent 记忆出现过期或冲突事实时,如何更新、覆盖和回溯?

这题考 Agent 记忆过期和冲突事实的治理,回答要覆盖事实版本、来源置信度、用户确认、覆盖规则、tombstone、审计回溯和 Prompt 侧只使用当前有效记忆。

60 秒回答模板

我会把 Agent 记忆当成有生命周期的事实记录,而不是一段永久有效的聊天摘要。每条记忆至少要有主体、属性、值、来源、时间、作用域、置信度、版本和状态。当新信息进入时,先做冲突检测,例如同一用户的公司、职位、偏好或任务目标出现不同值。冲突解决可以按优先级处理:用户明确纠正通常高于模型推断,外部可信工具结果高于普通对话推测,更新近的事实高于旧事实,但如果影响重要决策要向用户确认。存储上不要简单删除旧值,而是写入新版本,把旧事实标为 inactive、superseded 或 tombstoned,保留审计链路;涉及隐私删除时再按合规要求真正清除。Prompt 拼装时只放当前有效、相关、可信的记忆,并标注时间和来源;低置信冲突可以触发澄清。线上还要记录记忆变更日志、恢复入口和 badcase,避免 Agent 因旧记忆反复给出错误答案。

考点 事实模型
难度 真实面经题
回答目标 处理过期冲突记忆

深入解析

01

记忆不是永久事实

Agent 记忆会过期、被纠正或和新信息冲突。工程上不能把一次对话摘要当成永久真相,而要把记忆建模成带时间、来源、作用域、置信度和状态的事实记录。

02

冲突检测要结构化

冲突通常发生在同一主体的同一属性上,例如工作单位、角色、联系方式、偏好、项目目标或约束条件发生变化。结构化的 subject-predicate-value 记录更容易发现冲突;纯自然语言摘要很难判断旧事实是否需要覆盖。

03

覆盖规则要考虑来源和确认

解决冲突时不能只看时间。用户明确纠正的事实优先级通常高于模型推断;可信工具或业务系统返回高于普通对话;最近事实通常高于旧事实。对会影响决策的冲突,最稳的方式是向用户澄清,而不是让模型猜。

04

用版本和 tombstone 保留回溯

新事实进入后,可以创建新版本,把旧事实标记为 superseded、inactive 或 tombstoned。这样 Prompt 侧不会再使用旧事实,但审计时仍能看到变更链路。只有在用户删除、隐私要求或数据保留策略要求时,才需要进一步做物理删除或匿名化。

05

Prompt 只使用当前有效记忆

Prompt 拼装阶段要过滤过期、低相关、被覆盖和低置信记忆,只放当前任务需要的有效事实,并尽量带来源和时间。发现有效记忆之间仍有冲突时,应优先澄清或降级,而不是把两条互相矛盾的信息都交给模型。

06

恢复和审计是上线要求

系统要记录谁触发了记忆更新、旧值是什么、新值是什么、依据是什么、何时生效以及是否进入 Prompt。出现错误覆盖时,要能回滚到旧版本或重新确认。线上 badcase 应回流到冲突检测、确认策略和 Prompt 过滤规则。

易错点

  • 把记忆当成永久有效的自然语言摘要,没有版本和状态。
  • 只按时间覆盖事实,忽略来源可信度、用户确认和影响范围。
  • 直接删除旧值,导致无法审计为什么 Agent 改变了记忆。
  • 把互相冲突的记忆都塞进 Prompt,让模型自行猜测。
  • 没有 tombstone 或 inactive 状态,旧事实可能被重新召回。
  • 没有恢复和变更日志,错误记忆覆盖后无法回溯。

面试官追问

用户说自己换了工作,旧工作单位记忆怎么处理?

写入新工作单位作为新版本,把旧工作单位标记为被覆盖或历史事实。后续 Prompt 只使用新工作单位,审计链路保留旧值和更新时间。

最新信息一定比旧信息可信吗?

不一定。最新信息可能是模型误抽取或用户临时假设。要结合来源、用户确认、工具可信度和影响范围判断,重要冲突需要澄清。

tombstone 和直接删除有什么区别?

tombstone 表示旧事实不再有效,但保留覆盖记录,便于回溯和防止旧值被重新激活。直接删除通常用于隐私删除或数据保留策略要求。

如何避免过期记忆进入回答?

Prompt 拼装前按状态、版本、时间、作用域和相关性过滤,只选择当前有效记忆;对冲突和低置信记忆触发澄清或降级。

如果错误覆盖了用户记忆,怎么恢复?

依赖版本链和变更日志找到旧值、覆盖来源和生效时间,回滚状态或向用户重新确认,并把该样本加入冲突检测 badcase。