主题
长期记忆的难点在于事实会随时间变化。用户三月说自己在北京,五月说搬到上海,如果系统只是简单覆盖旧记忆,或者把两段话都丢进向量库检索,就会出现新旧记录打架:模型既可能忘掉历史,也可能把过期事实当成当前事实。
这类问题的本质不是存储不足,而是没有管理“事实在什么时间成立”。真实业务里,信息变化、用户改变主意、事实过期都很常见,记忆系统必须支持时间维度。
更稳的做法是使用双时间机制。
第一条时间线是现实世界时间,也叫有效时间。它记录某个事实在现实中从什么时候开始成立、什么时候失效。例如“用户在北京工作”可能在三月成立,五月失效;“用户在上海办公”从五月开始成立。
第二条时间线是系统时间,也叫事务时间。它记录系统什么时候写入这条信息、什么时候把它作废。现实时间用来回答“某个时刻真实情况是什么”,系统时间用来做审计和追溯。
工程上可以为每条事实挂上四个时间戳:成立时间、失效时间、写入时间、作废时间。这样,扁平文本就变成了带时间的事实网络。更新事实时,不应直接删除旧记录,而应标注旧事实失效,并新建一条有效事实;新旧事实之间用替代链连接。主检索默认只召回当前有效事实,旧事实保留在历史归档库中,满足追溯和审计需要。
更容易踩坑的是隐式冲突。用户往往不会明确说“请作废我以前的住址”,而是随口说“我现在在上海办公”。因此,记忆写入环节必须做冲突检测:把新事实与历史事实对比,判断是否需要让相关旧记忆失效。仅有双时间表结构还不够,如果写入时不检测冲突,记忆库仍会越长越乱。
长期记忆系统的目标,是同时知道“现在真实情况是什么”和“过去在某个时刻曾经是什么”。作废代替删除、有效事实默认召回、历史事实可追溯,是避免长期记忆错乱的核心原则。
