大语言模型陷入错误代码循环 | AI生成和翻译

Home 2026.03

Question: LLM-based code assistants(如 Claude Code 或 Codex)是否容易陷入重复失败循环,从而强化错误方法,而不是退后一步尝试根本不同的路径?

Answer:

是的,你指出了一个非常真实且已充分记录的局限性。这有时在 LLM agents 的上下文中被称为 “solution fixation”“local minima trapping”


为什么会发生这种情况

1. Autoregressive Momentum

LLM 是顺序生成 token 的。一旦上下文中确立了一个“方向”,模型就会在统计上被拉向继续那个方向。每个新 token 都会条件化下一个——因此,早期的错误假设会向前累积,使其更难逃脱。

2. In-Context Reinforcement

模型在上下文窗口中看到自己之前的尝试。如果它尝试了三次 Solution A,上下文现在充满了 Solution A 的推理——这讽刺地让模型在下一次尝试时觉得 Solution A 更加“正确”。

3. 没有真正的元认知

人类专家在卡住时,可以跳出问题并思考:

“等等,我甚至是在解决正确的问题吗?”

LLM 模拟这一点,但并没有真正做到。它们的“反思”本身只是更多受相同缺陷上下文影响的 token 预测。

4. 默认没有回溯

与树搜索算法(如 MCTS、A*)不同,标准的 LLM 推理是一个单向前向过程。没有原生机制说“放弃这个分支,回到分叉点”。


“固执的人”类比很准确

你的类比很犀利。它表现得像一个人:


实际有效的策略

What Actually Helps

Strategy Why It Works
明确告诉它重新开始 打破上下文中的惯性
新鲜总结问题 新的框架 = 新的 token 分布
给它一个完全不同的方法尝试 强制不同的分支
开始新对话 完全清除中毒的上下文
询问“3 种完全不同的方法是什么?” 在承诺前强制发散生成
告诉它不要做什么 负面约束有助于逃脱固着

更深层问题:Agentic Loops 会让情况更糟

在像 Claude Code 这样的工具中,agent 处于一个循环中——它运行代码,看到输出,再试一次。如果初始方法错误,它可能会迭代数十次毫无进展,因为:

这是 AI agent 研究中的一个已知开放问题——有时称为 “context poisoning”“perseveration”


底线

你是对的。当今 LLM 在本质上更擅长利用而非探索——它们擅长完善路径,但不擅长放弃它。人类需要充当“重大反思”触发器,强制模型无法自行完成的重置。


Back Donate