级联上下文污染:为何一个错误事实就能毁掉整个 Agent 运行
你的 Agent 完成了一个 25 步的研究任务。最终报告看起来很精美,引用也能对上,推理链条看似连贯。但 Agent 在第 3 步幻觉了一家公司的创立年份,而后续的每一个推断——市场时机分析、竞争定位、增长轨迹——都建立在那个错误的日期上。输出结果自信地、系统性地错了,而你的流水线中没有任何环节捕捉到这个问题。
这就是级联上下文污染:一个错误的中间结论通过后续的推理步骤和工具调用不断传播,最终演变成系统级故障。这是长时运行 Agent 中最危险的失败模式,因为它看起来像是成功的。
为什么传统错误处理在这里失效
工程师们面对 Agent 失败时,本能地会使用 try-catch 模式、重试和错误边界。这些机制处理的是简单情况——API 超时、格式错误的 JSON、工具执行错误。但级联上下文污染不是传统意义上的错误。Agent 不会崩溃。工具调用不会失败。输出可以正确解析。问题在于,一个自信但错误的中间结论进入了上下文窗口,并被视为后续所有操作的基本事实。
考虑一个典型的多步 Agent 如何工作。在第 N 步,Agent 产生一个中间结果。在第 N+1 步,该结果成为提示上下文的一部分。模型没有机制来区分"我从可靠工具中检索到的事实"和"我生成的可能有误的结论"。两者以相同的权重存在于同一个上下文窗口中。当 Agent 推理第 N+1 步时,第 N 步的幻觉事实与数据库查询结果具有相同的认知地位。
对 Agent 故障的研究表明,早期阶段的错误(第 1-4 步)破坏性最大,因为它们有最长的传播链。第 2 步的错误假设不仅影响第 3 步——它会影响 Agent 在整个执行过程中的规划决策、工具选择和对后续结果的解读。研究测量到,非结构化多 Agent 网络将错误放大了高达 17.2 倍,远超单 Agent 基线。
三种传播向量
上下文污染通过三个不同的通道在 Agent 系统中传播,每个通道需要不同的缓解策略。
推理链污染是最常见的向量。Agent 从一个幻觉事实中得出结论,然后将该结论作为下一次推理的前提。每一步都增加了一层衍生推理,使原始错误更难被检测。到第 10 步,错误的创立年份变成了"该公司在移动互联网时代之前进入市场",进而变成"他们的架构早于云原生模式",再变成"迁移风险是他们的主要技术负债"。每一步的推理链看起来都 是合乎逻辑的——因为在错误前提下,它确实是合逻辑的。
工具调用中毒发生在被污染的上下文影响 Agent 调用哪些工具以及传递什么参数时。如果 Agent 错误地认为某个服务使用 REST(实际上使用的是 GraphQL),那么后续的每一次 API 探索调用都会静默失败或返回误导性结果。Agent 然后通过其错误假设的视角来解读这些意外结果,形成一个自我强化的误解循环。
记忆和状态持久化是最隐蔽的向量。当 Agent 将被污染的结论写入长期记忆、草稿本或共享状态时,污染将超越当前执行而存续。未来的运行会继承被毒化的上下文。生产系统中已有记录的案例表明,Agent 在 24 小时内"纠正"相同记录数百次,每次纠正都建立在之前被污染的状态上,逐步使数据变得不可用。
检查点验证:打断传播链
核心架构洞察是停止将 Agent 执行视为线性流水线,开始将其视为最终一致的分布式系统。在分布式系统中,你不会相信每条消息都正确到达——你在合并点进行验证。同样的原则适用于 Agent 推理。
事实级检查点在中间结论进入推理链之前验证单个声明。在 Agent 产生中间结论后,验证步骤会对照独立来源进行检查。这并不意味着验证每一条声明——那将是代价高昂的。相反,识别承重事实:许多后续步骤所依赖的结论。这些就是你的检查点候选。
实际的实现使用一个轻量级的"评审"过程,在每个主要推理阶段之后运行。评审者接收中间结论和原始证 据,然后问:"这个结论是否源自证据?是否有任何事实声明没有被所提供的来源支持?"这增加了延迟和 token 成本,但能在修复成本最低时及早捕获污染。
交叉引用门控在阶段边界而非单个步骤上运行。当 Agent 从研究过渡到分析,或从分析过渡到建议时,门控会聚合前一阶段的关键声明并进行交叉引用。如果 Agent 得出某公司成立于 2005 年的结论,门控会通过简单查询来验证这一点。门控不需要验证每个声明——只需验证构成下一阶段基础的那些声明。
状态一致性检查适用于维护持久状态的 Agent。在写入长期记忆之前,Agent 将其提议的更新与现有状态进行比较。如果更新与先前已验证的事实相矛盾,则触发协调步骤而非静默覆盖。这直接类似于分布式数据库中的冲突解决——而且有充分的理由。Agent 状态就是一个分布式系统,只不过节点恰好是推理步骤而非服务器。
为抗污染而设计
除了运行时检查之外,架构本身可以限制污染传播的范围。
作用域隔离限制了任何单个推理链的爆炸半径。与其让一个长时运行的 Agent 在单个上下文窗口中处理研究、分析和建议,不如将任务分解为具有明确交接点的阶段。每个阶段获得一个新的上下文窗口,仅用前一阶段的已验证输出来初始化。这是 Agent 版本的操作系统进程隔离——一个进程的崩溃不会导致内核宕机。
证据溯源追踪为上下文中的每个事实附加来源元数据。当 Agent 产生结论时,它必须引用支持该结论的工具 调用或检索到的文档。没有溯源的结论被标记为可能是生成的而非检索的。这不能防止幻觉,但使幻觉可以被检测。如果 Agent 声称一家公司成立于 2005 年并引用了网络搜索结果,你可以验证引用。如果它在没有引用的情况下做出相同声明,你就知道它可能是编造的。
置信度衰减随着衍生结论距离原始证据越来越远而降低其权重。直接从数据库检索的事实具有高置信度。从该事实衍生的结论置信度略低。从衍生结论再衍生的结论置信度更低。当置信度降到阈值以下时,Agent 必须在继续之前重新验证。这映射了人类专家实际的工作方式——结论离一手证据越远,他们就越持怀疑态度。
并行验证通过独立路径运行相同的推理任务并比较结果。如果两条独立的推理链从相同的证据得出相同的结论,置信度增加。如果它们出现分歧,分歧点可能包含污染。这很昂贵——大约会使计算成本翻倍——但对于高风险的 Agent 任务,未检测到的污染成本远超冗余计算的成本。
可观测性差距
大多数 Agent 框架提供工具调用的日志和追踪,但几乎没有一个追踪 Agent 的认知状态——它相信什么、为什么相信、以及这些信念如何随时间变化。这就是使上下文污染如此危险的可观测性差距。
长时运行 Agent 的有效可观测性需要三个层次。因果追踪不仅记录 Agent 做了什么,还记录哪些先前结论影响了每个决策。当最终输出被证明是错误的时,因果追踪让你可以沿着推理链回溯找到源头污染。信念状态快照在每个检查点捕获 Agent 的关键假设,创建其理解如何演变的时间线。偏离检测定期将 Agent 的信念与基本事实进行比较,当偏离超过可接受阈值时发出警报。
投资于认知可观测性的团队比仅依赖输出级评估的团队更快发现污染,速度差异达数量级。当被污染的输出到达你的评估层时,损害已经造成——Agent 已经花费了 token、时间,并可能基于错误前提采取了现实世界的行动。
这对生产 Agent 系统意味着什么
级联上下文污染不是一个可以通过更好的提示来修复的 bug。它是衍生结论成为后续推理输入的系统的基本属性。每个长时运行的 Agent 都会遇到它。问题在于你的架构是检测并遏制它,还是让它静默传播直到有人发现输出是错误的。
实际要点很直接:用你对分布式系统数据相同的怀疑态度来对待 Agent 的中间状态。不要相信消息正确到达。在边界处验证。隔离故障域。投资于追踪你的 Agent 不仅做了什么、还相信什么的可观测性——因为这两者之间的差距正是污染隐藏的地方。
- https://adversa.ai/blog/cascading-failures-in-agentic-ai-complete-owasp-asi08-security-guide-2026/
- https://www.getmaxim.ai/articles/multi-agent-system-reliability-failure-patterns-root-causes-and-production-validation-strategies/
- https://arxiv.org/html/2603.06847v1
- https://arxiv.org/abs/2509.25370
- https://arxiv.org/html/2509.18970v1
- https://arxiv.org/pdf/2503.13657
