案例3 · 把报错信息丢给 AI,3 轮迭代修好生产 bug

本节目标

3 轮打法:

第1轮:把 完整报错栈 + 相关代码 + 复现步骤 丢给 AI,要"先讲原因再给最小修复"
第2轮:AI 给修复后你跑,若还报错,把 新报错 + 你试过的 反馈回去
第3轮:仍不对,提供 最小复现片段(能稳定触发 bug 的 10 行),逼出根因

组织上下文的要点(决定 AI 能不能一次命中):

- 报错全文(别只截最后一行)
- 出错文件的相关 10~20 行
- 你用的版本/环境
- 你已经排除过的假设("不是空指针,因为 x 有值")

修完必须补回归测试:把触发 bug 的输入写成一条测试,确保"下次同样的错不再发生"。这是闭环的收口。

名词解释

课后练习

  1. 为什么第 1 轮就要把"已排除的假设"也告诉 AI?
    • 答案:避免 AI 重复你已否定的方向,把算力集中在真正可能的根因上,减少来回。
  2. 修完 bug 不补回归测试,长期会怎样?
    • 答案:同样的错可能在别处或未来重构中复发且无人察觉,技术债累积;回归测试把"这次修好"变成"永久修好"。

总结

"把报错丢给 AI"是 Vibe Coding 最日常的动作,但丢得有没有章法,效果天差地别。我总结的 3 轮打法,核心是把模糊的"它报错了帮修"升级成结构化的"报错栈 + 上下文 + 已排除假设"输入。AI 不是算命的,你给的上下文质量直接决定它一次命中的概率。而这一课真正容易被忽略的,是最后一步——补回归测试。很多人修完 bug 松口气就走了,结果同样的问题三个月后换了个位置又出现。把触发输入固化成一条测试,才是把"临时修好"升级成"永久免疫"。所以"报错驱动"的闭环不是"AI 修了就行",而是"AI 修、我验证、我锁死"——三件事缺一不可。