在和 AI 协作编程的时候,你肯定遇到过这样一种情况:
使用 Claude Code 或者 Codex 信心满满的实现一个功能之后,结果你一运行,直接报错。
于是你把错误信息直接复制粘贴回给 AI,它态度好的一笔,立马道歉:非常抱歉,我的代码确实有问题,让我重新为你生成一份。
结果换汤不换药,又给了一份错误方案。
此时你再把错误贴回给AI,它再道歉,接着再给一份错误方案。。。
最后,跟 AI 拉扯了大半天,还是没有把问题解决。
其实这时候你就和 AI 一起掉进了兔子洞。
什么是 AI 的兔子洞?
在与 AI 协作编程时,AI 陷入一种无效的循环状态,无法真正解决问题,而是不断生成看起来相似但有问题的代码。
就像掉进了一个深洞里,无论怎么挣扎(生成新代码),都无法爬出来(解决根本问题)。
这种情况其实很常见,AI 有时会陷入一个错误的逻辑里出不来,像卡住的程序一样,不断生成无效或重复的代码。你越是直接给它错误信息,越是强化了它在错误路径上的惯性思维。
很多人到这里第一反应是放弃,然后在心里面大骂一声。
今天跟大家分享几个实战小技巧,能帮你立刻把 AI 从这种兔子洞里拽出来。
如何识别 AI 已经掉入了兔子洞?
首先我们需要知道 AI 什么时候已经掉入到兔子洞里面去了?这个时候你就不能再去浪费时间跟 AI 来回拉扯了。
1)不断重新生成代码
AI在反复生成代码,但每次的结果都大同小异,而且始终无法正常工作。
2)无法解决根本问题
AI 在你的要求下不停的尝试,但是就是没办法解决你的问题,给出你想要的结果。
3)需要你反复粘贴错误信息
这是一个强烈的信号,如果你发现自己一直在不断的把代码运行到错误信息粘贴给 AI,跟他来回拉扯,说明当前的解决方案可能已经走进了死胡同。
4)代码质量逐渐恶化
如果你连续多次让 AI 去修复同一个问题,然后这个问题还一直没有解决。
AI 往往不会去理解问题的根源,而是在现有代码基础上打补丁,这会导致代码一层一层的累积,越来越臃肿和混乱。
为什么会这样?AI 为什么会掉进兔子洞?
一般是因为你给的上下文不够,AI 没有足够的信息来理解问题的全貌或你的真实意图,所以他只能去猜,而这些猜测往往是错误的。
如果你自己能很清楚的描述这个 bug 的原因,然后让 AI 去修复,你会发现它修复的非常快,稳、准,狠。
还有一种情况就是你的任务超出了当前 AI 的能力边界。但是纠结这个原因的意义不大,关键是如何脱困。
跳出兔子洞的4个实战策略
一旦你发现自己掉进了兔子洞,就千万不要继续在原来的路上走下去了,这样只会浪费时间。下面是4个实战策略:
1、后退一步,重新评估
首先要做的就是停下来,不要让 AI 再继续生成代码了。
然后你可以跟 AI 去沟通,说我们先退一步去分析一下这个问题,为什么始终都执行不成功?可能的原因有哪些?
这样可以引导 AI 从代码执行者变成分析者,跟你一起诊断问题的根源,只要把问题根源找到了,解决就很容易了。
2、果断使用版本控制回退(重要技巧)
这是最有效、最核心的一招。不要害怕使用 git reset --hard
不花钱也不会把代码弄坏,放心大胆用。
当 AI 经过多次尝试,把你的代码弄得是一团糟的时候,最好的办法不是让他继续修补,而是把代码回退 到一个已知的、干净的、可以正常工作的版本。
这里有的人可能会舍不得,觉得 AI 试了好多次,终于把这个问题跑通了,直接回退太不划算了。
这种情况也是应该先把代码库回退到干净状态,然后将最终那个有效的解决方案应用到干净的代码上。
这样可以避免之前所有失败尝试所留下来的垃圾代码,保证你的项目清爽,维护性高。
3、切换模型
如果一个模型持续失败,不妨切换模型试一试。
不同的模型都有自己擅长的领域,有时候在一个模型上卡住的问题,换一个模型可能瞬间就解决了。
4、提供更精准的指令
指令越精准,修复成功的概率越高。
在你通过分析找到问题的根源,然后回退到干净的代码版本之后,你需要给AI一个非常具体、精确的指令。
比如,告诉它需要在哪一个文件的哪一行,进行怎样的修改,来修复那个特定的bug。越精确越好。
总结:
识别并让 AI 跳出兔子洞的核心思想就是,当发现AI的努力方向错误时,要及时止损,通过回退和重新分析来找到正确的路径,而不是任由其在错误的基础上不断叠加新的错误。
最后,你有没有遇到过 AI 掉进兔子洞的情况?是在什么场景下?你是怎么解决的?
欢迎在评论区分享你的经验一起交流,帮助大家在 AI 编程道路上少走弯路。