你告诉 AI 编程智能体不要再使用一个已弃用的函数。它道歉、重写代码——然后又用了同一个已弃用的函数。你第三次纠正它。结果还是一样。这就是所谓的「厄运循环(doom loop)」,每个构建者迟早都会碰上。好消息是:一旦你理解了它为什么会发生,解决办法既快速又可复用。
智能体为什么会卡住
AI 编程智能体不会像人那样记住你上一次的纠正。它依据的是自己的上下文——你们对话的实时记录,加上它读过的文件。在一场漫长的会话中,有两件事会出问题:
- **错误会累积。**如果一个错误的假设在早期就进入了上下文,之后的每一条回复都会在它之上叠加。你的纠正只是又一条消息,要和前面所有仍在陈述错误内容的文本相互竞争。
- **上下文腐烂(context rot)。**随着窗口在漫长会话中被逐渐填满,输出质量会逐步下降。智能体开始记不清你二十条消息之前给出的指令。
所以当智能体反复犯同一个错误时,它通常并不是在固执己见——而是淹没在被污染的上下文里。要修的是上下文,而不是智能体的态度。
第一步:重置,而不是重新解释
你的第一反应是把纠正解释得更加强硬。忍住这个冲动。每多一条消息,都会加剧被污染的上下文。相反,要把糟糕的上下文剪掉:
- 在 Claude Code 中,
/rewind会把对话以及文件改动一起回滚到较早的检查点——当最近几步走错、但更早的工作值得保留时就用它(连按两次Esc也能调出同一个菜单)。/clear会彻底清空对话、从头开始,同时保持你的代码不变——当整场会话都跑偏时就用它。/compact会把历史总结成更简短的形式,适合你想以更轻的负担继续推进时使用。(参见 Claude Code 最佳实践。) - 在 Cursor 或某个基于聊天的工具中,为卡住的任务开启一场新对话,而不是在被污染的那场里继续。
一个只带一条清晰指令的干净上下文,胜过一个塞满了五条越来越沮丧指令的冗长上下文。
第二步:给纠正一个永久的落脚点
你输入到聊天里的纠正会在会话结束时消失。到了下一场会话,智能体又会犯同样的错误——因为你关掉窗口时,等于把这个修复从它的记忆里抹掉了。把持久的规则放在智能体每次都会读取的地方:
- **Claude Code:**仓库根目录下的一个
CLAUDE.md文件。 - **Cursor:**一个规则文件(例如
.cursor/rules/)。 - **任意智能体:**一个
AGENTS.md文件,如今已被广泛支持。
把规则写成扁平、可检验的陈述。不要写「尽量写出整洁的代码」,而要写:「使用 fetch,绝不使用 axios。本项目没有 axios 依赖。」
第三步:让约束不可能被忽略
举一个具体的例子。假设你的智能体一直在导入一个你已经移除的日期库:
// Agent keeps writing this:
import moment from 'moment'
const now = moment().format('YYYY-MM-DD')
你已经三次告诉它改用内置的 Intl API。与其做第四次纠正,不如往 CLAUDE.md 里加一行:
## Dates
Never import `moment` or `dayjs` — they are not installed.
Format dates with the built-in `Intl.DateTimeFormat`. Example:
`new Intl.DateTimeFormat('en-CA').format(new Date())` → "2026-07-04"
区别在于:你给出了一条规则外加一个可运行的示例。相比抽象的指令,智能体对可复制的示例遵循得可靠得多,而现在这条规则会在每场会话开始时自动加载。
第四步:给智能体一种自我检查的手段
智能体会反复犯它看不见的错误。通过给智能体一个它能读取的信号来闭环:
- 一条会在这个确切错误上失败的 linter 规则或测试。如果
moment被你的 linter 禁用了,智能体运行 linter、看到报错,然后自行修复——无需你在其中周旋。 - 在你的提示里加一份简短的**「完成的定义」**清单:「在你收尾之前,运行
npm run lint和npm test,并确认两者都通过。」
这是最大的一次升级。一个智能体能自行发现的错误,就不再是需要你去抓的错误。
第五步:把任务缩小
如果智能体在一个庞大而含糊的请求上打转(「重构认证系统」),它往往是迷失在范围里,而不是细节里。把工作拆成一次一小步、可验证的步骤——「把令牌刷新逻辑抽取到它自己的函数里,不要改变行为」——并在推进到下一步之前逐个确认。小任务留给它游荡的空间更少。
这套套路
当你的智能体不肯停止反复犯错时,把这份清单过一遍:重置上下文,把规则写下来放在能够持久保存的地方,展示一个示例,给它一个它能自己运行的检查,并收窄任务。你会注意到其中的主题——你不是在跟智能体争辩,而是在修复它所能看见的东西。做到这一点,厄运循环就会从损失一整个下午,变成两分钟的小绕行。
SOURCES
Auto-generated by Vibe Coding Academy on July 4, 2026, grounded in the real sources linked above. We review for accuracy, but please verify time-sensitive details against the primary sources.
Build Blueprint · Creator
有想法?获取你的 AI 智能体可直接据此构建的规格说明。
描述任意产品,即可获得完整的构建蓝图——技术栈、数据模型、界面、API,以及可直接粘贴到 Claude Code 或 Cursor 的提示词。可导出为 PDF。
打开 Blueprint ▸