Paper Summarizer
← Back to Blog

为什么重试让 LLM Agent 越修越糟?上下文污染问题深度解析

by Paper Summarizer Team

我们每天都在用 LLM 做各种"智能"任务——自动修 Bug、写代码、做研究。最常见的策略是"失败了就重试"。但 2026 年 5 月发表在 arXiv 上的一篇论文揭示了一个反直觉的问题:重试本身就会让下一次尝试更可能失败——失败痕迹会在上下文里"污染"后续尝试,使失败率提高多达 7 倍。

问题背景:Agent 重试的"隐形代价"

在现代 AI Agent 系统中,重试是最常见的错误恢复策略。SWE-agent、Devin、OpenDevin 等代码修复 Agent 在遇到错误时会反复重试,直到成功或达到最大次数。这看起来合情合理——但研究者发现了一个被忽视的问题。

当 Agent 的某次尝试失败后,失败的痕迹(错误信息、失败的代码、调试日志)会留在对话上下文中。下一次重试时,这些"失败记忆"会系统性地将 Agent 的推理推向错误的方向

这就是 上下文污染(Context Contamination) 问题。

arXiv:2605.08563 的核心发现

这篇论文首次对上下文污染进行了系统性的量化研究,主要发现包括:

1. 失败率随重试次数指数上升

在 SWE-bench 基准测试中,研究者观察到:

  • 第 1 次重试:成功率 ≈ 基线水平
  • 第 2 次重试:成功率下降约 30%
  • 第 3 次重试:成功率下降约 50%
  • 第 5 次重试:成功率比基线低 7 倍

这意味着——你越重试,越容易继续失败。这不是因为问题变难了,而是上下文里的"失败污染"在作祟。

2. 污染机制:三个"污染通道"

论文识别了三种上下文污染的路径:

  • 错误信息污染:之前的报错信息会"锚定"模型的注意力,让它反复尝试已被证明无效的修复方案
  • 代码状态污染:失败的修改残留在代码上下文中,模型基于错误的代码状态做决策
  • 推理路径污染:之前失败的推理链会成为后续推理的"默认起点",形成负向递归

3. 首个数学模型:CCRM

论文提出了 Context Contamination Risk Model(CCRM)——首个对上下文污染进行形式化建模的框架。核心公式:

P(fail | n) = P(fail) × (1 + α · Σᵢ₌₁ⁿ cᵢ)

其中:

  • P(fail | n) = 第 n 次重试的失败概率
  • P(fail) = 基线失败概率(无污染时)
  • α = 污染敏感度系数(经验值 ≈ 0.3-0.5)
  • cᵢ = 第 i 次尝试的污染强度(与错误信息长度、代码变更量正相关)

这个模型的关键洞察是:污染不是线性累积的,而是乘性放大的。每次重试的污染都会乘以之前所有的污染之和。

最优重试策略:CCRM 的解

既然污染是乘性放大的,那么最优策略是什么?论文通过 CCRM 推导出:

策略一:及时止损

当检测到污染强度超过阈值时,应该停止重试,而不是继续。阈值公式:

τ = 1/α · (P_target / P(fail) - 1)

Σcᵢ > τ 时,继续重试的期望收益为负。

策略二:上下文清洗

在重试之前,主动清理上下文中的"污染":

  • 移除失败的代码变更(恢复干净状态)
  • 压缩错误信息为关键摘要(而非保留完整堆栈)
  • 用结构化提示重置推理路径("忘掉之前的尝试,从零开始分析")

策略三:多样性注入

每次重试引入不同的"视角":

  • 不同温度参数(创造性 vs 保守)
  • 不同的系统提示("你是一个资深开发者" vs "你是一个代码审查员")
  • 不同的问题分解方式

这对 AI 论文摘要工具有什么启示?

作为 AI 论文摘要工具的设计者,上下文污染问题有几个直接的启示:

1. 摘要不应该"记住"之前的失败

当用户提供的论文摘要质量不佳时,不应该在后续摘要中"参考"之前的失败尝试。每次摘要应该是独立的,而不是累积的。

2. 长对话 = 高污染风险

在论文阅读场景下,用户往往会进行多轮对话("这个方法的局限性是什么?" → "那它的实验设计如何?" → "对比其他方法呢?")。每一轮对话都在累积上下文,如果早期回答有误,后续回答会被"污染"。

解决方案:定期重置上下文,将关键信息提取为结构化摘要。

3. Paper Summarizer 的设计哲学

这正是 Paper Summarizer 的设计理念——每次摘要都是独立的输入-输出过程,不依赖历史对话。你粘贴一篇论文的摘要,它生成一次摘要。再粘贴下一篇,再独立生成。没有"记忆包袱",没有上下文污染。

如果你需要在多篇论文之间建立联系(比如写文献综述),正确的做法是:分别摘要每篇论文,然后将摘要结果手动整理到文献综述中。这样既避免了上下文污染,又保证了每篇论文的摘要质量。

实践建议:如何避免上下文污染

无论你是 Agent 开发者还是日常用户,以下建议都能帮你减少上下文污染的影响:

  • 定期清理上下文:每 3-5 轮对话后,总结关键信息并开始新对话
  • 不要保留完整错误信息:压缩错误为 1-2 句摘要
  • 重置推理路径:重试时用新的系统提示,而不是在旧对话中继续
  • 设置重试上限:论文建议最多 3 次重试,超过阈值就停止
  • 使用独立上下文:每篇论文独立摘要,不要把所有论文塞进一次对话

总结

上下文污染是一个被严重低估的问题。它解释了为什么"越重试越失败"——不是因为你不够努力,而是因为系统在系统性地向你推送错误的答案。

理解这个问题后,我们可以设计出更好的 AI 工具:不是"更聪明"的模型,而是"更干净"的工作流。正如 Paper Summarizer 所实践的——让每次交互都是独立的、无污染的、高质量的。

下次当你觉得 AI "越用越笨"的时候,也许问题不在于 AI,而在于上下文。

本文基于 arXiv:2605.08563 解读。论文原文请参考 arXiv 获取。

Tags:LLM agent, context contamination, agent retry, 上下文污染, LLM重试, agent pipeline, SWE-bench, AI论文摘要

📄 Summarize Papers with AI

Free to use — 3 summaries per day, unlimited for Pro users