时间感知记忆:保留历史,同时回答当前事实

时间感知记忆:保留历史,同时回答当前事实
2026年7月22日工程阅读约 11 分钟

为什么智能体记忆需要事件时间、有效区间与显式替代,而不是最后写入覆盖一切。

用户说:“我上个月搬到了柏林。”一只时钟记录搬家何时发生,另一只时钟记录系统何时知道。如果记录里只有插入时间,历史问题和当前状态检索迟早会互相矛盾。

时间感知记忆不要求模型预测每一个日期。它要求系统只表达证据真正支持的时间,并让变化可见,而不是用最后一次写入覆盖一切。

先说结论

  • 把事件时间和系统、事务时间分开。
  • valid_fromvalid_to 表达有效区间。
  • 替代旧事实,而不是抹掉曾经影响决策的记录。
  • 把迟到证据和纠正保存在不可变历史里。
  • 命名空间与所有权过滤之后,再应用时间过滤和排序。
  • 来源没有提供的精度,不要自行制造。

一个时间戳有一半时候回答的是错误问题

字段它回答的问题示例
Event date描述的事件何时发生?7 月 3 日搬家
Valid from事实何时开始成立?柏林从 7 月 3 日成为现居城市
Valid to事实何时停止成立?里斯本从 7 月 3 日不再是现居城市
Created at系统何时首次保存这条记录?用户在 8 月 12 日提到搬家
History event系统何时更新自己的理解?运营人员在 8 月 13 日纠正日期

把当前状态建模为有效期问题

“用户现在住在哪里?”寻找的是有效区间覆盖现在的事实;“用户六月住在哪里?”寻找的是覆盖过去某个时点的区间。两个问题可能引用同一关系在不同时间段的状态。

当前状态检索通常应排除已经失效的记录,除非查询明确请求历史。历史检索应返回旧记录、它的有效区间,以及导致变化的来源或替代记录。

替代关系保留解释能力

当柏林取代里斯本时,只更新一个画像字段能得到正确当前值,却破坏了旧答案为什么提到里斯本的解释。替代链接会关闭旧区间并指向新记录,同时让两者留在历史中。

它支持:

  • 当前问题优先返回柏林;
  • 历史问题仍能找到里斯本;
  • 审计视图解释变化何时、为何发生;
  • 从当前有效值重建画像;
  • 执行纠正,同时不假装旧记录从未存在。

迟到证据会以不同方式改变两条时间线

假设用户八月说搬家发生在七月,九月又澄清租约六月开始,但实际搬入在七月。应用的领域模型必须决定这条记忆描述的是哪一个事件。修改 valid_from 可能改变现实时间解释;不可变系统历史仍要记录这项纠正在九月到达。

这就是双时间推理的核心:系统现在如何理解现实世界的时间线,以及这种理解如何沿系统自身时间线变化。

矛盾不总是替代

“我喜欢深色模式”和“演示时使用浅色模式”可能在不同元数据或任务作用域下同时成立。执行替代前,应比较主体、关系、对象、作用域、条件和时间。全局覆盖会把上下文例外错误地变成矛盾。

对于类型明确的产品状态,尽量使用确定性规则。模型可以提出关系候选,但持久层应强制执行区间和所有权不变量。

未知时间应继续保持未知

相对时间需要可靠参考时点。“去年”只有在来源事件具有已知日期、时区假设可控时才能规范化。“我以前住在里斯本”证明过去存在一段关系,却未必证明精确边界。

安全选择包括:

  • 保存已知事件日期,让有效期保持开放;
  • 只有 schema 能表达精度时,才保存粗粒度区间;
  • 保留来源原句,并把规范化时间标记为不确定;
  • 证据不足时不添加日期。

检索需要明确时间意图

相似度分数无法决定查询在问现在、过去状态,还是一次变化的历史。需要显式路由时间意图:

  1. 识别时间表达,并判断请求是 current、as-of 还是 change history;
  2. 绑定命名空间和结构化作用域;
  3. 按所请求时间应用有效期过滤;
  4. 召回语义、词法与关联候选;
  5. 补全替代关系和来源上下文;
  6. 以各自含义渲染日期,而不是显示一个没有标签的时间戳。

测试里必须包含的失效案例

案例期望行为
新当前事实替代旧事实当前查询返回新值,as-of 查询返回旧值
纠正迟到现实时间发生变化,系统历史保持完整
两条事实在不同条件下成立两者在明确作用域或元数据下继续有效
来源没有可靠日期不制造精度
旧事实语义排名更高有效期过滤阻止当前召回旧事实
替代记录被删除历史和当前状态策略仍然明确

FishMem 如何表达时间

规范记录在创建时间和不可变历史之外,公开 event_datevalid_fromvalid_tosuperseded_by。搜索支持 event-date 过滤;状态视图可以把 current、as-of 和 history 答案映射回规范来源 ID。

这些字段让时间行为成为可能,但不能保证推理模型提取了正确日期。评估必须分别检查存储记录、检索渲染和最终答案。

延伸阅读

继续阅读