你是否有过这样的经历:让 AI 修复一段代码,它改了三次,每改一次问题就变得更糟?这种现象不是你的 Prompt 写得不好,而是自纠错机制本身的数学特性——某些模型在迭代中会自我降级,而这是由一个可以量化的阈值决定的。

2026 年 4 月 24 日,一篇论文给这个现象提供了严格的理论解释:自纠错不是一种总是有效的策略,而是一个反馈控制系统,它的有效性取决于模型引入新错误的速率是否低于某个关键阈值。

这个发现对 AI 编程工具的用户来说,意味着一个具体的工程决策:我应该让这个模型启用自纠错吗?


目录


一、问题:从”越改越好”到”越改越差”

在 AI 编程工具的日常使用中,你大概率遇到过这个场景:

你:帮我修一下这个 bug
Agent:好的,我来检查一下...找到了,应该是这个原因。
Agent:[修改了一次]

你:还是不对
Agent:啊,我明白了,应该是那个原因。
Agent:[修改了第二次]

你:现在直接报错了
Agent:不好意思,让我再想想...
Agent:[修改了第三次,现在整个模块都不工作了]

为什么同一个模型,在连续的自纠错过程中,表现会持续下降?

这个问题在传统认识里被归因于”模型的推理能力不够”或者”Prompt 不够清晰”。但这个解释有一个根本性的漏洞:如果模型的能力不够,为什么第一次生成的结果反而是对的?

控制理论的研究给出了一个更精确的解释:不是模型能力不够,而是自纠错机制引入的错误率累积速度,超过了模型自身的纠错能力

这是一个可以用数学描述的反馈回路失控问题。


二、控制理论框架:把 LLM 自纠错建模为反馈回路

2.1 反馈回路的基本结构

论文 「When Does Self-Correction Work for LLMs? A Control-Theoretic View」(arXiv:2604.22273,Jingxiang Meng et al.,2026-04-24)将 LLM 的自纠错过程建模为控制理论中的反馈回路。

在这个框架里,同一个 LLM 同时扮演两个角色:

传统反馈控制系统:
  输入 → Controller → Plant → 输出 → 反馈 → Controller → ...

LLM 自纠错:
  输出判断 → [是 Correct 还是 Incorrect?] → [是否修正?]
                                            ↓
                                    LLM(同一模型)
                                            ↓
                                      生成新输出
                                            ↓
                                    重新进入判断

2.2 两状态马尔可夫模型

研究的核心是一个两状态马尔可夫模型,LLM 的输出在每一次迭代后处于两种状态之一:

每次迭代中发生的是状态之间的转换:

从 Correct 变 Correct:保留正确的概率(不变)
从 Correct 变 Incorrect:引入新错误的概率 → EIR(Error Introduction Rate)
从 Incorrect 变 Correct:纠正错误的概率 → ECR(Error Correction Rate)
从 Incorrect 变 Incorrect:错误持续存在的概率(不变)

这个模型的关键在于:只要 EIR > 0,即使 ECR > EIR,系统也会在足够多次迭代后趋向 Incorrect 状态

这就是为什么有些模型的迭代会”越改越差”——不是因为它们不能纠正错误,而是因为纠正的速度跟不上引入新错误的速度。


三、关键阈值:EIR 是如何决定一切的

3.1 阈值的数学推导

论文的核心推导是关于迭代自纠错有效性的条件:

迭代自纠错有帮助的条件:

    ECR / EIR > Acc / (1 - Acc)

其中:
- ECR = Error Correction Rate(从 Incorrect 变 Correct 的概率)
- EIR = Error Introduction Rate(从 Correct 变 Incorrect 的概率)
- Acc = 当前准确率(模型在单次生成中的正确率)

这个不等式告诉我们什么?

准确率 Acc 越高,(1-Acc) 越小,右边越大,阈值越高。这意味着:对于已经很强的模型,自纠错的有效条件更严格——不是因为模型不够好,而是因为已经很低的错误率让进一步纠错变得更加困难。

3.2 关键阈值:0.5% EIR

研究发现了最关键的一个结论:

存在一个近零 EIR 阈值(≤ 0.5%),超过这个阈值,自纠错开始有害。

这个阈值的意义是:只要一个模型在每次生成中引入新错误的概率超过 0.5%,迭代自纠错就会让它变得更糟,而不是更好

为什么是 0.5% 这个数字?

举例计算:
假设模型 Acc = 85%(已经很不错的准确率)

Acc/(1-Acc) = 85/15 ≈ 5.67

要满足 ECR/EIR > 5.67
如果 ECR = 30%(每次纠正30%的错误)

则需要 EIR < 30/5.67 ≈ 0.53%

即:EIR 超过 0.5%,条件就不满足了

3.3 为什么这个阈值如此尖锐

反馈系统的特性决定了阈值效应:当 EIR 超过临界点后,纠错的”努力”会被引入新错误的”损失”抵消,并最终被超过。这不是一个线性关系,而是一个正反馈失控过程

EIR < 阈值:
  纠错收益 > 引入新错误的损失 → 每次迭代都在变好

EIR ≈ 阈值:
  纠错收益 ≈ 引入新错误的损失 → 迭代效果趋于平稳

EIR > 阈值:
  纠错收益 < 引入新错误的损失 → 正反馈失控,每次迭代都在变差

这就是为什么某些模型”越改越差”不是渐进性的,而是突然发生的——系统一旦越过阈值,正反馈会加速恶化。


四、哪些模型通过了阈值,哪些没有

4.1 实验设置

研究在 7 个主流模型 × 3 个数据集(GSM8K、MATH、StrategyQA)上进行了严格控制变量的实验。关键控制:每次迭代使用相同的最大 token 预算,保证比较的公平性。

4.2 实验结果

模型 EIR(估计) 迭代后效果 是否通过阈值
o3-mini 0%(未检测到) +3.4pp ✅ 通过,显著受益
Claude Opus 4.6 ~0.2% +0.6pp ✅ 通过,轻微受益
o4-mini ~0% +/-0pp ✅ 通过,效果持平
GPT-4o 未公开 未公开 未知
GPT-5 未公开,但方向已知 -1.8pp ❌ 未通过,降级
Claude Opus 4.5 未公开 未公开 未知
GPT-4o-mini(无验证技巧) 约 2% -6.2pp ❌ 未通过,严重降级

4.3 为什么 GPT-5 在迭代中降级

GPT-5 的 EIR 超过了 0.5% 阈值,这意味着它的每次迭代中引入新错误的概率太高,以至于纠错收益被完全抵消。

这与 GPT-5 作为”最强模型”的印象形成了反差。最强的模型在自纠错中降级——这不是因为 GPT-5 不够强,而是因为:

  1. GPT-5 的能力已经很强(Acc 很高),因此 Acc/(1-Acc) 的阈值也更高
  2. GPT-5 的生成往往更复杂(更长的输出),引入新错误的绝对概率也随之增加
  3. 迭代次数增加时,EIR 的累积效应会被放大

这给 AI 编程工具的使用者一个反直觉的结论:能力最强的模型,不一定是迭代中最可靠的模型

4.4 Claude Code 的底层模型:Claude Opus 4.7

Claude Code 目前使用的是 Claude Opus 4.7(根据 Anthropic 官方披露)。从实验数据推断,Claude Opus 4.6 的 EIR 约为 0.2%,处于通过阈值的范围内。

这意味着:在 Claude Code 中使用迭代自纠错策略,大概率是有效的,但收益幅度(+0.6pp)不如 o3-mini(+3.4pp)显著。

如果 Claude Opus 4.7 的 EIR 进一步降低(Anthropic 的优化方向),迭代效果会继续提升。


五、先验证再修正:可操作的工程技巧

5.1 技巧的原理

研究还发现了一个可以直接应用的提示工程技巧:在 self-correction 之前加一个独立的验证步骤

具体做法是:

传统方式(直接修正):
  判断输出是否正确 → 如果不对,直接修改 → 再次判断

改进方式(先验证再修正):
  判断输出是否正确 → 如果不对,先独立验证(不修改)
  → 基于验证结果再决定如何修改

这个技巧的效果是惊人的:在 GPT-4o-mini 上,EIR 从约 2% 降至约 0%,迭代效果从 -6.2pp 变为 +0.2pp(McNemar p < 10^-4,统计显著)。

5.2 为什么验证步骤有效

分析:
  EIR 的来源:修改时引入的新错误
  验证步骤的作用:把"修改时引入错误"和"判断是否错误"分开

没有验证:
  Agent 在判断"代码是否正确"的同时,就在脑子里同步修正
  → 判断行为和修改行为耦合
  → 修正时产生的错误会立即影响下一次判断(正反馈失控)

有验证:
  Agent 先单独判断"代码是否正确"(不修改)
  → 验证结果独立于修改行为
  → 修正时产生的错误不会污染验证判断
  → 反馈回路被打破,正反馈失控条件不再满足

5.3 在 Claude Code 中的应用

这个技巧在 Claude Code 中的实际应用方式:

# 不要这样做(直接修正)
> 帮我修一下这个 bug。
> 让我看看...应该是 XX 问题。我来改一下。
> [直接修改了代码]  ← 这里的修改可能引入新错误

# 应该这样做(先验证再修正)
> 帮我修一下这个 bug。
> 让我先验证一下这段代码的当前行为。
> [独立验证,不修改] 运行测试,结果是...
> 基于验证结果,我发现了...我来修改。
> [在验证结论的基础上修改,而不是在判断的同时修改]

这个技巧的核心是:把”判断”和”修改”在时间上解耦,让它们成为两个独立的步骤,而不是同一个思考过程中的耦合行为。

5.4 这个技巧的局限性

研究特别指出:这个技巧对已经低于 EIR 阈值的模型几乎无效

原因:验证技巧的作用是降低 EIR(减少引入新错误的概率)。如果一个模型的 EIR 已经接近 0,验证技巧就没有额外的改善空间了。

因此:


六、给 AI 编程工具使用者的建议

6.1 按模型调整自纠错策略

基于研究结果,针对不同模型的自纠错策略建议:

模型 推荐策略 理由
Claude Opus 4.7(Claude Code) 适度使用,监控效果 EIR 低于阈值,迭代有效,但收益幅度适中
o3-mini 可以更积极地使用 EIR 接近 0,迭代收益最显著(+3.4pp)
GPT-5 避免盲目迭代,最多 1-2 次 EIR 超阈值,迭代可能降级
GPT-4o-mini 使用”先验证再修正”技巧 验证技巧可将 EIR 从 2% 降至近 0

6.2 如何监控自纠错是否有效

在实际使用中,如果你不确定某个模型在你的任务上的 EIR,可以通过以下方法监控:

监控方法:
1. 记录每次迭代前后的结果质量(正确/错误)
2. 连续迭代超过 2 次后,评估结果是否在改善
3. 如果连续 2 次迭代后结果反而变差,立即停止迭代,回退到初始版本

触发回退的信号:
- 第三次迭代后,需要的修改比第二次更多
- 迭代后出现了之前没有的错误类型
- 测试覆盖率在迭代中下降

6.3 构建自适应的迭代策略

一个更高级的策略是:根据中间结果动态调整迭代次数:

自适应迭代策略:
  迭代 1:如果正确,停止
  迭代 2:如果错误且与迭代 1 性质不同,继续
  迭代 3:如果错误且与迭代 2 性质不同,继续(谨慎)
  迭代 4+:停止,回退到迭代 1 或迭代 2 的结果
          (进入正反馈失控的可能性已经很高)

七、结语:测量是优化的起点

这篇论文最深刻的意义,不是告诉我们哪些模型在迭代中会降级,而是提供了一个可以测量的框架

在 LLM 自纠错这个问题上,过去的做法是:

控制理论框架提供的做法是:

这正是 AI 编程工具走向工程化成熟的关键:从”感觉”到”测量”,从”大概”到”精确”。

下一次当你发现模型的迭代开始变糟时,不要急于尝试第四次修改。先停下来,测量一下:它在迭代中的表现,是在变好还是在变差?

测量是优化的起点。


本文核心内容来自论文「When Does Self-Correction Work for LLMs? A Control-Theoretic View」(arXiv:2604.22273),Jingxiang Meng et al.,2026-04-24