乐于分享
好东西不私藏

如何让 AI 不乱改代码

如何让 AI 不乱改代码

很多小白使用 AI 编程工具时,会遇到一个很典型的问题:

你只是想改一个按钮文案,AI 却顺手重构了整个组件。

你只是想修一个报错,AI 却改了样式、数据结构、接口调用,还新增了依赖。

最后你很难判断:原来的 bug 到底修没修好?新的问题又是从哪里来的?

这篇文章讲一个非常实际的能力:如何让 AI 不乱改代码。

核心方法不是让 AI “更听话”,而是你要明确修改范围、约束输出格式、要求最小改动,并在修改前后做检查

一、AI 为什么会乱改

AI 乱改代码,常见原因有 5 个。

第一,你的需求太宽。

比如:

帮我优化一下这个页面。

“优化”可以指样式优化、性能优化、结构优化、交互优化、代码重构。AI 不知道你具体要哪一种。

第二,你没有说不要改什么。

如果你只说“修一下登录问题”,AI 可能会顺手改登录页、接口请求、状态管理、路由跳转。

第三,你让 AI 一次做太多事。

任务越大,AI 越倾向于改多个文件。

第四,AI 缺少项目约束。

它不知道项目已有规范,可能引入新的写法、新依赖、新目录结构。

第五,你没有要求它先给计划。

AI 直接动手时,你没有机会提前发现它准备改太多。

二、最重要原则:一次只改一个目标

小白使用 AI 改代码时,最稳的原则是:

一次只解决一个明确问题。

不要这样说:

帮我修一下登录问题,顺便把页面做漂亮点,再优化一下代码结构。

这句话同时包含:

  • 修 bug。

  • 改样式。

  • 重构代码。

三个目标混在一起,出问题时很难定位。

更好的方式是拆开:

第一步:只修复登录按钮点击后没有反应的问题。不要修改样式,不要重构代码。

等 bug 修好并测试通过,再做第二步:

第二步:只调整登录页面视觉样式。不要修改登录逻辑和接口调用。

拆小任务,是控制 AI 的第一道防线。

三、在提示词里明确“只改哪里”

你要把修改范围写得具体。

不够好的说法:

帮我改一下首页。

更好的说法:

请只修改首页标题区域的文案。不要修改按钮、列表、接口请求、路由和样式。

如果你知道文件路径,也要写出来:

请只修改 src/pages/HomePage.vue。不要修改其他文件。

如果你不知道文件路径,可以先让 AI 查找:

请先判断这个功能可能涉及哪些文件。暂时不要修改任何文件。

先定位,再修改。不要让 AI 一边找一边大改。

四、在提示词里明确“不要改什么”

“不要改什么”和“要改什么”同样重要。

可以直接写:

不要修改:1. 页面布局。2. 接口地址。3. 数据字段名。4. 路由配置。5. 依赖版本。6. 无关文件。

如果是修 bug,可以写:

只修复当前报错。不要重构,不要改样式,不要新增功能,不要升级依赖。

如果是改样式,可以写:

只修改 CSS 或样式类名。不要修改 JavaScript 逻辑,不要修改接口请求,不要修改数据结构。

这些限制能显著降低误改风险。

五、要求 AI 先给修改计划

不要让 AI 直接开改。

先要求:

请先给修改计划。计划里必须包含:1. 准备修改哪些文件。2. 每个文件改什么。3. 为什么必须改。4. 哪些文件不会改。5. 可能风险是什么。在我确认前,不要写代码。

这个步骤的价值很高。

如果你只是想改按钮文字,但 AI 计划修改 5 个文件,就说明它理解偏了。你可以及时纠正:

范围太大。 请改成只修改按钮文字,不要修改组件结构和样式。

计划阶段发现问题,成本最低。

六、要求“最小修改方案”

最小修改方案,就是只改必要代码,不顺手重构。

可以这样要求:

请给最小修改方案。 只修改完成这个目标必须修改的代码。 不要做风格优化、结构优化或额外封装。

如果 AI 给出大段代码,你可以继续压缩范围:

这个方案改动太大。 请重新给一个最小 diff,只改必要的几行。

如果 AI 说必须大改,你要让它说明理由:

请说明为什么不能用更小改动解决。 如果必须改多个文件,请逐个说明必要性。

对小白来说,可理解的小改动优先级高于看起来更“高级”的重构。

七、要求 AI 使用“替换前/替换后”格式

如果你手动复制代码,最怕不知道放哪里。

可以让 AI 用这种格式:

请按下面格式输出:文件:【文件路径】找到这段代码:【原代码】替换为:【新代码】修改原因:【一句话说明】

这个格式适合小白手动修改。

如果使用 AI 编程工具自动改文件,也可以要求它最后总结:

修改完成后,请列出:1. 实际修改了哪些文件。2. 每个文件改了什么。3. 是否有未按计划修改的地方。

这样你能核对 AI 是否越界。

八、不要轻易允许新增依赖

AI 有时会为了方便引入第三方库。

比如为了格式化日期,引入一个日期库;为了做弹窗,引入一个 UI 库;为了处理状态,引入一个状态管理库。

这不一定错,但对小白来说,新增依赖会带来额外风险:

  • 需要安装。

  • 可能版本不兼容。

  • 项目体积变大。

  • 后续维护更复杂。

  • 你更难理解代码。

所以默认写:

不要新增第三方依赖。如果你认为必须新增,请先说明原因,并给出不新增依赖的替代方案。

多数小功能不需要新增依赖。

九、不要轻易允许重构

重构不是坏事,但不适合和修 bug 混在一起。

重构的特点是:功能看起来不变,但代码结构变化很大。

如果你让 AI 在修 bug 的同时重构,就很难判断问题:

  • 是 bug 原本没修好?

  • 是重构引入了新问题?

  • 是测试步骤不完整?

所以可以写:

本次任务禁止重构。只允许为修复当前问题做必要修改。如果你发现代码结构问题,请单独列为后续建议,不要现在执行。

这句话能把“当前修复”和“未来优化”分开。

十、让 AI 标记不确定点

AI 乱改的一个原因是它假设自己知道全部上下文。

你要让它明确不确定点:

如果你不确定某个函数、组件、接口或字段是否存在,请明确说不确定。不要编造不存在的文件、函数或接口。

还可以要求:

在修改前,请列出你基于代码确认的事实,以及你仍然不确定的信息。

这能帮助你区分“代码里明确有的东西”和“AI 推测的东西”。

十一、用版本备份降低风险

即使提示词写得很好,AI 仍然可能改错。

所以真实项目里,修改前要有回退点。

如果你会 Git,建议先提交一次:

git statusgit add .git commit -m "before ai change"

如果你不会 Git,至少复制一份项目文件夹备份。

然后再让 AI 修改。

这不是多余步骤。没有回退点时,小白很难从一堆改动里恢复原状。

十二、修改后检查 AI 是否越界

修改完成后,不要只看它说了什么要检查它改了什么

你可以让 AI 自查:

请检查本次修改是否越界:1. 是否修改了我没有要求的文件?2. 是否新增了依赖?3. 是否改变了接口字段或数据结构?4. 是否重构了无关代码?5. 是否影响了其他页面或功能?

如果使用 Git,可以查看差异:

git diff

不会看 diff 也没关系,可以把差异交给 AI:

下面是 git diff。请帮我判断这次改动是否只围绕我的需求。如果有越界修改,请指出文件和原因。

十三、一个“防乱改”通用提示词

下面这段可以直接复制:

我是 0 基础编程小白。请帮我完成一个小修改。目标:【写清楚本次只做什么】允许修改范围:1. 【允许修改的文件或功能】2. 【允许修改的代码区域】禁止修改范围:1. 不要修改无关文件。2. 不要重构代码。3. 不要新增第三方依赖。4. 不要修改接口地址和字段名。5. 不要修改页面布局,除非本次目标明确要求。执行方式:1. 请先给修改计划,不要直接写代码。2. 计划中列出准备修改的文件和原因。3. 如果信息不足,请先问我。4. 我确认后,再给最小修改方案。5. 修改完成后,列出实际改动和测试步骤。

这个模板适合大多数小修改和 bug 修复。

十四、不同场景的限制写法

改文案:

只修改显示文案,不要修改样式和逻辑。

改样式:

只修改样式,不要修改数据、接口和事件处理。

修报错:

只修复当前报错,不要顺手优化代码。

加字段:

只新增这个字段的展示,不要修改后端接口字段名。

改接口:

只调整这个接口调用,不要修改其他接口封装。

加功能:

只实现第一版最小功能,不要添加我没有要求的扩展功能。

这些句子可以直接放进提示词里。

十五、小白应该拒绝哪些 AI 建议

如果 AI 给出下面几类建议,要谨慎:

  • “我将顺便重构整个组件。”

  • “建议升级项目所有依赖。”

  • “建议换一个框架实现。”

  • “建议重新设计目录结构。”

  • “建议引入一个大型组件库。”

  • “我已经把相关文件都优化了一遍。”

这些建议不一定错,但不适合混在一个小任务里。

你可以回复:

这次先不做这些优化。请只完成当前目标,并把其他建议列为后续待办。

把优化建议放到后续,而不是让它们污染当前任务。

十六、完成后的验收清单

每次 AI 改完代码后,用这 6 条检查:

1. 是否只改了预期文件?2. 是否没有新增依赖?3. 是否没有重构无关代码?4. 原本要修的问题是否解决?5. 相关正常流程是否仍然可用?6. AI 是否给出了测试步骤?

如果其中任何一条不满足,就不要急着继续做下一个功能。先把当前改动弄清楚。

这篇文章你需要记住什么

让 AI 不乱改代码,关键是控制范围。

你要做到:一次只改一个目标,明确允许修改范围,明确禁止修改范围,要求 AI 先给计划,优先选择最小修改方案,不允许无理由新增依赖或重构

小白阶段不要追求“AI 一次性优化全部”。真实项目里,稳定可验证的小改动,比大而全的自动改造更可靠。