跳转到主要内容

你的上下文流水线需要一份新鲜度 SLA

阅读需 1 分钟Tian PanTian Pan

你的智能体(agent)用上个季度的价格回答了客户的计费问题,复盘报告会将此归咎于模型。但不应该如此。Prompt 组装正确,检索评分很高,模型对所给的所有信息进行了合理的推理——而所给的一切在三天前都是真实的。在 CRM 导出、文档同步和向量索引重建之间的某个环节,“世界的当前状态”悄然变成了“截至周二的世界状态”,而你的技术栈中没有任何环节在衡量这种差异。

数据工程师在几年前就解决了这类问题。一个消费十张上游表的下游仪表板拥有血缘关系(lineage)、新鲜度检查以及一个在夜间任务出错时进行呼叫的轮值机制。你的智能体所消费的上下文窗口也是同样的东西——一个由文档、工单、代码、CRM 和记忆连接而成的物化视图(materialized view)——只不过没有人负责这个连接(join),没有任何东西衡量它的陈旧度,当它提供昨天的真相时,失败却被归类为“模型幻觉”。

上下文窗口是一个物化视图

剥离掉 AI 词汇,看看上下文组装到底在做什么。在请求时,编排器从几个上游系统中收集行——来自向量库的一段文档、来自 CRM 的客户记录、来自支持系统的最新工单、来自记忆库的先前对话摘要——将它们连接成一个去正规化的 blob,并提供给消费者。这就是一个物化视图。它有数据源、刷新策略(或者缺失刷新策略),以及一个完全信任它的消费者。

数据库的比喻并非装饰性的,而是具有诊断意义的,因为物化视图的每种失败模式都会在上下文流水线中出现:

  • 陈旧读取。 视图在源数据更改之前刷新。你的文档在周日晚上重新嵌入,而定价页面在周一早上发生了变化。
  • 不一致连接。 不同的源反映了不同的时间点。CRM 记录显示客户已升级,但使用数据早于升级。智能体基于一个从未真正存在过的世界状态进行推理。
  • 血缘断裂。 源系统重组了其架构——有人重构了文档站点,重命名了 Confluence 空间——而视图悄无声息地提供不再指向任何内容的片段。
  • 没人负责刷新。 文档团队负责文档。平台团队负责向量库。智能体团队负责 prompt。中间的连接(即模型实际读取的东西)不属于任何人。

数据库通过刷新策略、快照隔离和依赖跟踪来处理这些问题。而上下文流水线大多靠“希望”来处理。

陈旧度对你的检索器在结构上是不可见的

这就是为什么它比普通的数据质量问题更糟糕:检索层对时间是盲目的。语义相似性不会随着事实的过时而衰减。一个废弃的 API 参考的嵌入(embedding)得分与当前的完全一样高——通常甚至更高,因为旧文档有更多时间被链接、重复并被改写进语料库。如果上季度的政策文档的措辞碰巧更接近查询,它就会排在本季度更新的文档之前被检索出来。

这意味着陈旧度不会让你的系统优雅降级。它会静默且自信地失败。没有错误日志条目,没有检索缺失,也没有置信度下降。在第一天用错误答案关闭了 40 张支持工单的智能体——这是一个真实的事件模式,由源文档重组后三天未刷新的索引引起——它在损坏的上下文之上进行了“完美”的推理。技术栈中的每个可观测性工具都显示为绿色。

随着规模的扩大,问题会变得更加复杂。一个包含一千个文档的知识库可以通过简单的全量重建保持亚小时级别的新鲜度。在十万个文档时,同样的架构会产生半天的陈旧度。在一百万个文档时,重建耗时太长,以至于多天的陈旧度变成了常态。在试点阶段有效的架构,正是那些在生产环境中悄然腐烂的架构。

一个令人不安的重构认知:被归类为“幻觉”的问题中有很大一部分根本不是幻觉。模型忠实地报告了上下文库告诉它的内容。上下文库提供的是昨天的真相。因此而归咎于模型,就像因为 ETL 任务没运行而归咎于仪表板一样。

借鉴数据工程的方法论

这都不需要发明新的学科。分析团队花了十年时间构建的正是上下文流水线所缺失的机制。有四个部分可以直接迁移。

血缘关系:了解什么喂给了窗口

对于你的组装器可以注入的每一类上下文,你都应该能够回答:它来自哪个源系统,上次同步是什么时候,中间经历了什么转换?如果智能体引用了一个价格,你应该能够通过该片段(chunk)、嵌入任务和源页面追溯到该 token——并在每个环节都打上时间戳。大多数团队现在还做不到这一点,这就是为什么上下文复盘需要几天时间:根本原因很少是一个损坏的东西,而是略微陈旧的索引、重组后的源数据以及从未预料到这两者的 prompt 共同作用的结果。

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 10 分钟

工具输出压缩:决定上下文质量的注入策略

AI智能体管道中的工具结果Token密度相差100倍。你选择的注入策略——原始注入、压缩还是提取——从根本上决定了智能体在规模化后的准确率上限、成本上限和延迟下限。

insider
llm-agents
阅读需 9 分钟

你的向量索引是一个没有失效策略的缓存

向量索引是你源数据的派生副本,这使得它成为了一个会过时的缓存:修改内容永不自动同步、已删除的文档留下“残影”、被撤销的权限导致泄露。为什么 RAG 的可靠性是一个缓存失效问题,而不是相似度搜索问题。

insider
rag
阅读需 8 分钟

你的数据 Agent 需要一个统一的营收定义

Text-to-SQL Agent 的失败在于语义而非语法。基准测试显示,语义层能将 Agent 的准确率从 84% 提升到接近 100% —— 为什么你为 BI 构建了一半的指标层,正是你的数据 Agent 所缺失的工具契约。

insider
ai-engineering
阅读需 10 分钟

文档复兴:你的 README 是 Agent 的核心上下文界面

二十年来,文档一直是美好愿景的坟墓。编程 Agent 扭转了这一局面:你的 README 现在是可执行的上下文,其质量直接决定了任务的成败。

insider
ai-engineering
阅读需 11 分钟

当你的 RAG 流读取时发生的 Wiki 中途编辑问题

当你的 RAG 摄入任务在作者编辑中途运行时,索引可能会捕获一个在 Wiki 中从未真实存在的状态。本文将探讨为什么基于轮询的流水线在大规模场景下会产生脏读,以及如何通过 CDC、版本锁定和写入静默模式来解决这些问题。

insider
rag