Appearance
错误修复对话技巧
出错是 Vibe Coding 的常态,不是例外。AI 生成的代码第一次就完全跑通的情况不多,重要的是知道怎么快速修。
最重要的一条原则
把你看到的给 AI 看,而不是你理解的。
当你说"登录有问题",AI 不知道是 UI 问题、接口错误、还是数据问题。当你说"点击登录后,控制台报 401,接口返回 {error: 'Invalid token'},但我刚刚登录成功过",AI 就有了足够信息定位问题。
原始信息比你的解读更有用。
错误对话的基本结构
我遇到了一个问题:
[描述你做了什么操作]
看到的现象:
[粘贴完整错误信息或截图描述]
环境信息(如果有帮助):
[node 版本、浏览器、操作系统等]
我尝试了:
[如果你已经试过什么,说一下,避免 AI 给你重复的建议]不需要每次都这么正式,但这几个维度的信息对定位问题很关键。
不同类型错误的对话技巧
运行时报错
直接粘贴完整的错误堆栈,不要只复制最后一行。
运行 node server.js 后报错:
TypeError: Cannot read properties of undefined (reading 'map')
at processOrders (src/orders.js:45:28)
at async OrderController.list (controllers/order.js:12:22)
at async Layer.handle [as handle_request]
我在 GET /api/orders 接口收到请求时触发的。堆栈里的文件名和行号是最有价值的信息,AI 会直接定位到那里。
行为不符合预期(没有报错)
这类问题更难定位,因为没有明确的错误信息。关键是描述预期和实际的差异:
添加任务后,列表里能显示,但刷新页面就消失了。
我用的是 localStorage 存储,在 Chrome DevTools 里看,
存进去的时候数据是对的,但页面加载时好像没有读取。如果你能在 DevTools 里看到中间状态,把它描述出来。
偶现问题
这个问题不是每次都能复现:
- 大概 10 次里有 3 次会触发
- 并发请求时更容易出现
- 错误信息:race condition suspected(我自己加的日志)
相关代码在 @src/cache.js,怀疑是读写缓存时有竞态。"偶现"本身就是重要信息,说明可能是竞态或状态相关的问题。
当 AI 的修复方案不对
AI 给出修复方案后,你测试了,还是不对。这时候不要直接重新描述问题,而是告诉它哪里还不对:
你的方案我试了,问题还是存在。
刷新后数据还是消失,但我发现了一个新现象:
DevTools > Application > localStorage 里根本没有 todos 这个 key,
说明 save 函数可能根本没执行。把你新观察到的信息加进去,比重新描述一遍原始问题更有效。
当你不知道错误在哪
如果你对项目不熟,不知道从哪里开始找:
我克隆了一个开源项目,运行 npm start 后白屏,控制台没有报错。
我不熟悉这个代码库,不知道从哪里开始排查。
帮我制定一个排查步骤。让 AI 给你一个排查思路,而不是直接让它猜答案。
不要这样做
只说"还是不行"
❌ 你的修复不对,还是报错。
✅ 你的修复后,原来的 TypeError 没了,但现在报另一个错:
ValidationError: email is required
我没改 email 相关的代码,不知道为什么突然冒出来。每次反馈都要带上新的信息,否则对话会陷入循环。
让 AI 猜测环境
❌ 帮我修这个部署问题。
✅ 我在 Ubuntu 22.04 上用 PM2 部署,Node 18,
env 里设了 DATABASE_URL 但应用启动时提示找不到数据库。
pm2 logs 的输出是:[粘贴日志]什么时候停止让 AI 修,自己看代码
如果同一个问题来回改了三次以上还没解决,花 10 分钟自己读一下相关代码通常比继续让 AI 猜更快。
Vibe Coding 不是"永远不读代码",而是"在合适的时候读合适的部分"。出错修复的时候,往往需要你稍微深入一点。
这几篇讲的是 Vibe Coding 的核心工作循环。如果你想进一步了解如何在更大的项目里保持节奏不失控,可以看 AI 编程规划与实践。