生产级 AI 系统中的时序推理失效
一个自信地推荐已经缺货六个月产品的智能体;一个告诉用户查不到 20 分钟前下单记录的客服机器人;一个针对两年前已废弃的库 API 生成可正常运行代码的编程助手。这些并不是传统意义上的“幻觉”——模型只是在回忆曾经准确的信息。这是一种完全不同的失效模式,而且大多数团队还没有准备好如何检测或防御它。
这种区分至关重要,因为缓解措施根本不同。你无法通过提示词工程解决时效性问题。你也无法通过微调来解决——对过时的知识进行微调只会让问题变得更糟,而不是更好,因为模型会以更高的权威感表达过时的信息。随着模型在表达上变得越来越流利和自信,它们那些自信且错误的陈旧答案对用户来说变得更难察觉,而不是更简单。
每个模型都是快照,而非时钟
训练将模型的知识冻结在某个特定时间点。模型没有 原生时钟,无法感知训练后流逝了多少时间,除非你告诉它,否则它没有“今天”的概念。当它回答有关当前软件版本、法规、价格或事件的问题时,它完全依赖于训练期间吸收的内容——在用户于生产环境与之交互时,这些内容可能已经过时了 12 到 30 个月。
更糟的是,“有效截止日期”(模型实际知道的)与报告的截止日期并不一致。2024 年的一篇系统性研究论文发现,CommonCrawl 的时间偏差和去重效应意味着在同一个模型中,不同学科知识的有效截止日期可能存在实质性差异。更惊人的是:GPT-OSS-120B 自称截止日期是 2021 年 9 月,但在经验测试中表现出了截止至 2023 年 9 月的知识——比其声称的界限整整晚了两年。反之亦然:模型对接近截止日期的事件的了解,往往不如对几年前事件的了解。由于训练数据是随时间积累的,到 2023 年,关于 2020 年事件的页面数量远多于 2020 年当年存在的页面。相对于较旧的事件,接近截止日期的近期事件代表性不足。研究人员将此称为怀旧偏见(nostalgia bias)——模型在处理发布前 60–80 个月的问题时表现最好,而不是在发布前的近期数据上。
实际后果是:即使你知道模型的截止日期,你也无法可靠地预测它在那个窗口期内具体知道或不知道哪些事实。
为什么你无法通过提示词解决这个问题
直觉上的缓解方案是告诉模型它的局限性。“你的知识截止日期是 X。不要使用该日期之后的信 息。”这在一定程度上有效,但仅限于一小部分问题。
一篇 2025 年测试该方法的论文发现,截止日期指令提示词在事实知识问题上的成功率约为 82%,在语义偏移问题上的成功率约为 70%。但对于具有因果关联的知识——即后来的事件与早期的事件纠缠在一起时——成功率骤降至 19.2%。
一个典型的例子:询问一个知识截止日期为 2018 年的模型关于东京奥运会的预定日期,即使被要求忽略后期信息,它仍会回答“2021 年”而不是最初预定的“2020 年”。模型无法忽视新冠疫情对赛事安排的影响,即使被要求忽略。因果链条已嵌入参数化记忆中。你可以告诉模型忘记事实,但你无法告诉它忘记历史的因果结构。
这对于任何在特定历史窗口内运行、处理具有时间约束的文档或做出“当时为真”与“现在为真”存在差异决策的智能体系统,都有直接的影响。
RAG 的新鲜度问题比你想象的更严重
检索增强生成(RAG)通常被视为解决知识截止日期问题的方案。如果你检索到当前信息,模型就可以处理当前信息。这在理论上是正确的,但在实践中极其不可靠,原因只有一个:语义相似度在时间上是盲目的。
向量数据库不知道文档是在 18 个月前还是 18 小时前摄入的。关于公司退货政策的文本块,无论反映的是去年的政策还是今天的政策,其语义评分可能是相同的。检索器会提取语义最相似的结果,模型随后生成一个自信的答案——而这个答案来自一份已被 取代的文档。
直接测试这一点的研究发现,在需要最新文档才能得出正确答案的任务中,基准的纯语义检索准确率为 0%。通过添加简单的时间衰减权重(将文档评分设为 70% 语义相似度 + 30% 新近度衰减,半衰期为 14 天),在同样任务中实现了 100% 的准确率。修复方法并不复杂。复杂之处在于大多数团队既没有实施它,也没有对其进行监控。
部署三个月后,RAG 系统可能会在三分之一的用户提问中自信地出错,因为世界在变动,而知识库没有。这种失效是无声的:陈旧的文档在语义相似度上仍然得分很高,检索器没有信号表明它们已经过时,而模型因为检索到的上下文看起来很权威而给出充满自信的回答。没有报错,没有警告。只有一个看起来像正确答案的错误答案。
受此影响最严重的领域正是对准确性要求最高的领域:API 文档(库 API 变动频繁)、价格和库存(本质上是实时的)、合规与监管(修订频繁且影响重大)以及产品规格。
被废弃的 API Bug 是一种生产税
如果你构建过任何使用 LLM 生成代码的大规模系统,你一定遇到过这种情况:模型推荐了一个函数或类,它在训练期间的某个时间点运行良好,但随后已被废弃、重命名或删除。你的 CI 捕获了它,或者你的工程师在审查时发现了它,或者——在最坏的情况下——它被发布了,随后出现了运行时错误。
一项针对该失效模式的系统研究测试了 7 个 LLM 在 8 个 Python 库(NumPy、Pandas、PyTorch、scikit-learn 等)中 的 145 个 API 映射,共使用了 28,125 个补全提示词。在普通上下文中,被废弃 API 的使用率为 25% 到 38%。在“过时函数上下文”(即提示词本身包含旧 API 模式)中,这一比例飙升至 70–90%。模型规模并无助益:尽管 GPT-3.5 规模巨大,其废弃 API 的使用率却是最高的。这种失败不是模型能力的问题,而是训练时存在哪些数据的问题。
实际问题会随着时间的推移而加重。库会发布新版本,废弃项不断累积。模型所知道的与当前库所要求的之间的差距每个月都在扩大。对于使用 LLM 进行代码辅助的团队来说,这是一项持续增长的隐性“生产税”。
注入时间是必要的,但还远远不够
每个团队都应该实施的基准缓解措施是日期注入:在系统提示词中包含 ISO 8601 格式的当前日期。这非常简单,但却经常被忽略。
今天的日期是:{current_date}。
这为模型提供了相对时间推理的参考点,并防止了最尴尬的失败模式:模型认为“今天”处于其训练窗口内的某个时间。它还有助于处理相对查询——“过去 30 天内的事件”将锚定在实际日期上,而不是 靠猜测。
但日期注入只解决了一个维度的问题。知道今天的日期并不能告诉模型在其训练截止日期和今天之间发生了什么。一个知道今天是 2026 年 4 月的模型仍然不会知道 2026 年 1 月修订的法规、2026 年 3 月重构的库或上周停产的产品。注入的日期提供的是参考,而不是知识。
由此得出的推论:永远不要在提示词或工具定义中使用模糊的时间术语,除非有明确的定义。“最近的”、“当前的”、“活跃的”和“最新的”对模型和对你来说意义完全不同。“最近的转化”没有任何意义,除非你指定“在过去 30 天内转化的用户”。“当前政策”是模棱两可的,除非你检索并注入实际的政策文本。每一个未定义的时间术语都是一个潜在的失败点。
构建时效正确性
真正有效的缓解方案栈结合了多个层面:
将 LLM 用作推理引擎,而非知识库。 将时效性强的查询绑定到权威的实时数据源。模型的工作是对你提供的数据进行推理,而不是回忆训练中的事实。这一架构原则消除了一整类陈旧性故障。
实施具备新鲜度感知的检索。 对于任何具有显著变化速度的领域,标准的语义搜索都是不够的。在你的评分函数中加入时间衰减权重。在向量库中将摄入时间戳和最后验证日期作为一级元数据进行跟踪。为每类文档设置适当的 TTL(生存时间)——API 文档可能在两周后过期;合规文档在六个月后过期;营销文案在一年后过期。强制执行这些规则。
监控检索上下文的时效。 如果检索到的块中超过某个比例的块旧于定义的新鲜度窗口,则应触发告警——或者至少添加一个元数据标注,以便模型在回答时可以加上免责声明。将新鲜度视为一项可靠性指标,并像监控延迟或错误率一样严格监控它,这样可以在用户发现问题之前暴露问题。
针对当前库版本对生成的代码进行后处理。 LLM 生成的代码在进入审查或执行之前,应根据当前的 API 接口定义进行检查。Linter 和具备版本感知能力的静态分析工具可以捕获提示词缓解方案遗漏的已废弃 API 使用。
不要依赖截止日期模拟来做重大决策。 如果你的智能体需要推理特定时间点的事实,基于提示词的截止日期模拟在处理因果相关的知识时会失败。对于历史查询用例,时态知识图谱(将事实标注为 valid_at 和 expired_at 元数据)是正确的抽象。它们允许精确的时间点查询,而不依赖于无法通过提示词可靠约束的参数化记忆。
法律层面
不列颠哥伦比亚省民事裁决法庭于 2024 年裁定的加拿大航空聊天机器人案确立了一个 AI 团队需要内化的原则:公司对其 AI 系统告知用户的内容负有责任,无论输出是如何生成的。一家航空公司的聊天机器人告诉客户,他可以在 90 天内追溯申请丧亲慰问票价折扣,而这一政策实际上并不存在。法庭命令该航空公司履行这一陈述。公司需对输出负责。
在这种背景下,陈旧性故障尤其危险,因为它们生成的答案曾经是正确的。模型并非在捏造信息——它是在回忆准确的历史信息,只是不知道世界已经发生了变化。这种区别在法律 上并不重要。对于根据错误答案采取行动的用户来说,这同样不重要。
对于任何在具有显著变化速度的领域(定价、政策、可用性、合规性)运行的智能体来说,问题不在于是否会发生陈旧性故障。它们一定会发生。问题在于你是否构建了检测这些故障的机制,以及在用户遭受后果之前遏制其影响的架构。
总结
时序推理失败在结构上与幻觉不同,它们需要不同的工程响应。一个有用的思维模型是:像对待快照备份一样对待 LLM 的参数化知识——作为基准它很有价值,但对于任何发生变化的事物,它绝不是权威的真相来源。将时间敏感型推理建立在实时数据之上,根据新鲜度对检索进行加权,明确定义你的时间术语,并以对待任何其他可靠性指标一样的严谨态度,监控输入到上下文中的内容的时效性。
模型在推理能力上会持续提升,但它们不会更擅长了解训练结束之后发生的事情。这个问题需要你在架构中去解决。
- https://arxiv.org/abs/2403.12958
- https://arxiv.org/html/2511.12116
- https://arxiv.org/abs/2405.08460
- https://arxiv.org/html/2510.02340
- https://arxiv.org/abs/2406.09834
- https://arxiv.org/html/2509.19376
- https://arxiv.org/html/2509.11353v1
- https://arxiv.org/html/2601.13717
- https://arxiv.org/html/2502.13416
- https://arxiv.org/abs/2311.15548
- https://www.damiangalarza.com/posts/2026-01-07-llm-date-time-context-production/
- https://glenrhodes.com/data-freshness-rot-as-the-silent-failure-mode-in-production-rag-systems-and-treating-document-shelf-life-as-a-first-class-reliability-concern/
- https://tacnode.io/post/llm-model-staleness-what-it-is-why-it-happens-and-why-it-breaks-ai-systems
- https://aibusiness.com/nlp/air-canada-held-responsible-for-chatbot-s-hallucinations-
- https://arize.com/blog/common-ai-agent-failures/
- https://streamkap.com/resources-and-guides/why-ai-agents-wrong-answers
- https://cookbook.openai.com/examples/partners/temporal_agents_with_knowledge_graphs/temporal_agents
