AI 编码代理会凭空捏造不存在的 API 或删除不该删的文件,关键是你要给具体反馈而非泛泛批评,并主动介入手动修复更快的场景。
你就是在做 vibe engineering。你敲出了一个完全合理的 prompt,结果 Agent 回报以一堆胡说八道。它会发明根本不存在的 API,删除不该删的东西,修复单元测试的方式简直是纯粹的胡来 🥲。
记住:Agent 是一个协作者,不是什么魔法师。你的工作是引导它、纠正它,有时候还要覆盖它。这才是让你成为工程师的原因。
深呼吸。说真的,这有用。
给出具体的反馈。告诉 Agent 它的建议哪里不对。比如:
"现在的数据库设计开销没必要这么大,我们的 getAllProducs API 默认按一个在聚合操作内部创建的字段排序。所以我建议对数据进行反规范化,直接存进数据库,因为这条数据是一次创建、多次读取的。"
"你的代码没有处理数组为空的边界情况。请加一个守卫子句。"
迭代。Agent 会从你的纠正中学习。通常,经过几轮来回之后,它就会收敛到一个可用的方案。
我自己发现,有时候我更愿意手动介入修改某些部分,因为直接修问题快得多、效率也更高。然后我会告诉 Agent 我做了一些修改,让它不要回滚(至少在我使用 Copilot 和 OpenCode 的经验里,必须明确说出来才行)。
这是你手里最强大的招数。当 Agent 陷入复杂性时,缩小范围。把问题拆成尽可能小的、能工作且能测试的块,再从那里开始搭建。
不要一上来就是"做一个完整的看板,带拖拽、身份验证和实时更新",而是先从"创建一个展示三列的静态 HTML 页面"开始。
等这个能工作了,再加"允许在列之间移动卡片"。
然后加持久化,再加身份验证,再加实时。
如果你连一小块都搞不定,那整个系统你大概率也搞不定。
至于大的架构决策或数据库设计,你完全可以先用顶级模型头脑风暴一下,先在脑子里有个半具体的大致图景。然后再把这个大局拆成 SMART 步骤。
有时候,尽管你已经尽了最大努力,Agent 就是卡在同一个坑里。它不断回到那个有缺陷的方案上。遇到这种情况:
删除一切,重新开始。我想这不用说也知道——一个干净的上下文窗口,没有之前上下文里累积的那些微妙的偏见,能救你一命。如果你觉得之后可能还会用到,可以把之前的上下文窗口总结压缩成一个 markdown 文件保存。
如果还不行,就换产品。目前我们处于一种"富到尴尬"的阶段:Cursor、GitHub Copilot、Codex、Antigravity、Claude Code,还有更多。每款都有各自的优势和脾性。有的可能更擅长前端,有的更擅长后端。
永远不要忘记:你随时可以退回到自己写代码。Agent 是一个工具,不是对你大脑的替代品 😉。
