P2 methodology AI工程Synapse自动化

AI 助理的时间幻觉:为什么跨日对话会产生虚假的'今夜'

会话连续但时间已变——AI 在长会话或跨日恢复时如何产生时间叙事错误,以及如何通过显式时间锚定机制修复

  • AI 无内置时钟,跨日对话会产生虚假的"今晚""明天"
  • 根因:模型用上下文最近时间词推断当前时间,前提过期后结论仍自洽
  • 三种表现:时态漂移、进度幻觉、优先级错位
  • 修复需三层工程机制,不能靠 AI 自觉
  • 核心原则:时间感知是基础设施,不是模型能力

问题背景

第一次注意到这个问题,是凌晨一点多收到一份 AI 生成的任务摘要。摘要里写着"今晚完成后请总裁确认"——那是一个从昨天下午三点开始的会话续出来的内容,跨越了将近 10 个小时。对模型来说,那是同一个连续的对话线程;对我来说,"今晚"已经是第二天了。这份摘要发给总裁,就是一份带着错误 deadline 的任务卡片。

我后来统计了一下团队里类似情况的发生频率:在跨日超过 8 小时的长对话里,AI 生成的任务摘要中出现相对时间词错位的概率超过 60%。这不是偶发的措辞失误,而是一个结构性缺陷。大多数人把它归咎于"AI 不够细心",但真正的问题出在更底层的机制上。

为什么这个问题难排查

我们一开始以为这是提示词的问题——只要在提示里说"请使用准确的时间表述",模型就会谨慎处理。但实际上,问题根本不在措辞,而在于模型的时间推断机制本身。大语言模型把整个上下文窗口压缩成一个连续叙事流,从它的视角来看,昨天下午三点写下的"今天下午要处理的三件事"和现在这一刻的回复,在语义距离上没有任何区别——它们都是同一个上下文里的内容,没有时间先后感。

更隐蔽的地方在于:AI 会主动用上下文里最近出现的时间线索来推断"当前时间"。如果你昨天说"今天是周四,我们要在周五前完成部署",模型在续接对话时会把这个"周四"当成有效锚点,推断出"现在是周四或周五",然后生成一份在语义上完全自洽、但在现实中已经过时的叙事。它不是在撒谎,它是在做符合逻辑的推断——只是推断的前提已经过期了。这份推断结果不会触发任何错误,语法正确,逻辑严密,非常自信。你不读仔细,根本发现不了。

根因:三种时间幻觉与它们的结构来源

把这个机制拆开来看,跨日对话里的时间错误主要有三种表现形式:

  • 时态漂移:AI 把"昨天的今晚"当成"现在的今晚",deadline 在无声中错乱。
  • 进度幻觉:跨日恢复会话时,AI 会把"昨天打算做的事"和"已经做完的事"混在一起,生成一个虚假的进度快照,让你误以为某任务已完成。
  • 优先级错位:"明天再说"的事已经变成"昨天没做"的债务,但 AI 还在用前者的优先级处理它。

这三种表现有一个共同的结构来源:模型没有内置时钟,没有把相对时间词(今天、今晚、本周)和真实日历日期对齐的机制。它的"时间感"完全来自上下文里的文本线索,而这些线索随着对话跨日会悄悄失效,模型却无从感知。

下面是一个典型的问题场景——任务摘要里混入了过期时间词,而模型对此毫无察觉:

# 跨日会话恢复时,AI 生成的任务摘要(问题示例)
session_started: "2024-01-11 15:00"
summary_generated: "2024-01-12 01:30"

tasks:
  - title: "部署审核"
    deadline: "今晚 22:00 前完成"   # ← 指向 1月11日22:00,已过期
    status: "待确认"
    note: "完成后请总裁今晚确认"    # ← 同样锚定在过期时间点

  - title: "周五发版"
    priority: "明天处理"             # ← "明天"是 1月12日还是 1月13日?

修复的方向也由此清晰:不能靠劝说模型"小心一点",必须从系统层面强制注入准确的时间基准,并在对话恢复时触发显式的时间校准。

# 修复后:使用绝对日期,禁止相对时间词写入状态文件
session_started: "2024-01-11T15:00:00+08:00"
summary_generated: "2024-01-12T01:30:00+08:00"

tasks:
  - title: "部署审核"
    deadline: "2024-01-12 22:00 CST"  # 绝对日期,无歧义
    status: "待确认"
    note: "完成后请总裁于 2024-01-12 前确认"

  - title: "周五发版"
    deadline: "2024-01-12"             # 绝对日期替代"明天"
    priority: "high"

可移植的原则

时间感知不是 AI 的认知能力,是你的系统需要提供的基础设施。 GPS 不会自动知道你在哪里,除非有外部信号注入定位数据;AI 不会自动知道现在几点,除非你的系统明确告诉它。这不是模型的问题,这是你的 infra 的问题。

  1. 如果你在构建跨日 AI 对话系统,在每次会话开始时强制注入当前时间戳。
    格式精确到小时,明确时区,写入系统提示或第一条用户消息。不要假设模型能从上下文推断出来——它推断出来的大概率是错的。
  2. 如果你在恢复一个跨日长任务,先触发一次时间校准步骤再继续。
    让 AI 把上下文里出现的所有相对时间词与当前真实日期做一次映射刷新。在 Harness 规则里把它写成硬约束,会话恢复时必须执行,否则后续所有时间相关判断的结果都不可信。
  3. 如果你在写任何需要跨会话引用的文档,用 YYYY-MM-DD 绝对日期替代相对时间词。
    "今天""明天""本周"只允许在当前会话的口语沟通中出现,不允许写入状态文件、任务卡片、任务摘要。这一个习惯,能消灭 80% 的跨日时间幻觉。
  4. 如果你在评审 AI 生成的任务摘要,把"相对时间词"当成 review checklist 的必查项。
    每出现一个"今晚""明天""本周",就问一次:这是基于哪个会话时间点生成的?它还有效吗?

如果你在构建 AI 工程团队,并且正在被跨会话状态一致性的问题困扰——不只是时间,还有任务状态、优先级快照——欢迎看看我们在 Synapse 框架里是怎么把这类约束做成 Harness 层强制机制的。用规则固化比用提示词劝说有效得多,这是我们在实际踩坑之后得出的结论,不是理论判断。