大模型应用实战

一招让你的 Cursor 不再瞎改代码

借鉴职场沟通中的"复述确认"技巧,让 AI 编程助手在动手前先说清楚它要做什么,从根本上避免需求理解偏差导致的代码返工和破坏。

·8 分钟阅读·技巧

引言

"等等,我不是这个意思啊!"

如果你用过 Cursor 或者其他 AI 编程助手,这句话你一定喊过。你满怀期待地描述了需求,AI 信心满满地开始改代码,等你回过神来——好家伙,它把你精心设计的组件改得面目全非,甚至引入了新的 bug。

更可怕的是,有时候 AI 改的地方太多,你都不知道从哪里开始回滚。

这个问题的根源在哪里?不是 AI 不够聪明,而是沟通出了问题。

今天分享一个简单但极其有效的技巧:让 AI 先复述,确认后再动手。这招来自职场沟通的基本功,用在 AI 编程上效果出奇地好。

问题根源:AI 的"自以为是"

在剖析解决方案之前,我们先看看问题是怎么产生的。

场景重现

cursor沟通技巧UI示例图

假设你有一个博客卡片组件,上方显示的是专栏名称(如 "LLM PRACTICE"),你想把它改成显示文章的标签(Tags)。你这样告诉 Cursor:

"博客板块,每个博客卡片的内容中,上方目前显示的是专栏名称,我需要你调整成不显示专栏名称而显示文章的标签。"

看起来很清楚对吧?但实际上,这段描述存在几个模糊点:

模糊点可能的理解偏差
"上方"是标题上方?还是整个卡片的上方区域?
"专栏名称"是 Column Name?Category?还是其他字段?
"文章的标签"是 frontmatter 中的 tags?还是自动生成的标签?
"显示"显示单个标签?多个标签?怎么排列?

AI 不会告诉你它有疑问,它会假装自己都懂了,然后按照它的理解开始干活。

结果可能是:

  • 改错了文件
  • 改错了字段
  • 改对了但方式不对
  • 改得太多或太少

这不是 AI 的问题,是人的问题

说实话,这种沟通问题在人与人之间也经常发生。

想想你给新同事布置任务的场景:"把那个报表的格式调一下。" 第二天交过来,完全不是你想要的样子。为什么?因为"调一下"这三个字,你们的理解可能差了十万八千里。

职场沟通有一个经典技巧:让对方复述任务,确保理解一致后再开始

这招用在 AI 身上,同样有效。

解决方案:复述确认法

核心思路很简单:在 prompt 的最后加一句话,要求 AI 先复述它的理解,等你确认后再动手。

魔法句式

在你的需求描述后面,加上这段话:

请你理解我的任务重复你的理解,确保跟我达成一致了。等我确认后才能够开始修改。

或者更正式一点:

在开始修改之前,请先:
1. 复述你对需求的理解
2. 列出你计划修改的文件和具体变化
3. 说明预期的效果
等我确认理解无误后,再开始执行。

实战效果

看看实际的对话效果。

cursor需求确认沟通实操效果

用户的 Prompt:

博客板块,每个博客卡片的内容中,上方目前显示的是"LLM Practice"这个应该是专栏名称对吧,我需要你调整成不显示专栏名称而显示是文章的标签。请你理解我的任务重复你的理解,确保跟我达成一致了。等我确认后才能够开始修改。

Cursor 的回复:

📋 我的理解

当前状态: 博客卡片的上方区域显示的是 专栏名称(Column Name),比如图片中显示的 "LLM PRACTICE"

期望修改: 将博客卡片上方的显示内容从 专栏名称 改为 文章标签(Tags)

具体变化:

  • ❌ 移除:专栏名称标签(如 "LLM PRACTICE", "ANDROID", "CAROS" 等)
  • ✅ 新增:文章的标签列表(frontmatter 中的 tags 字段,如 "AI", "Transformer", "LLM" 等)

影响范围:

  • 📍 主要修改位置:apps/wonderlab/app/blog/page.tsxapps/wonderlab/components/home/BlogSection.tsx 中的博客卡片组件
  • 可能涉及:博客列表页和首页的博客展示区块

视觉效果预期: 从显示单个专栏标签变为显示多个文章标签(可能需要处理标签数量过多的情况)

请确认我的理解是否正确? 如果一致,我将开始查看代码并进行修改。

看到没有?AI 把你的需求拆解得清清楚楚:

  1. 当前状态 - 它理解现在是什么样
  2. 期望修改 - 它理解你想要什么
  3. 具体变化 - 它会删什么、加什么
  4. 影响范围 - 它打算改哪些文件
  5. 视觉效果预期 - 改完会是什么样子

如果有任何一点不对,你可以立刻纠正。比如你可能会说:"不对,tags 字段不在 frontmatter 里,而是在 meta 对象中。" AI 收到反馈后会更新理解,再次确认。

这比改完代码再发现问题,不知道省了多少时间。

为什么这招有效?

1. 强制 AI 慢下来

AI 的默认模式是"接到任务就干"。加上复述要求后,它必须先整理思路,这个过程本身就能暴露理解偏差。

2. 让模糊地带显性化

你的需求描述中可能有很多隐含假设,你自己都没意识到。AI 的复述会把这些假设摆到台面上——"你说的是这个意思吗?"

3. 建立双向确认机制

传统的 AI 交互是单向的:你说 → AI 做。加上复述后变成:你说 → AI 理解 → 你确认 → AI 做。多了一个校验环节,错误率大幅降低。

4. 减少返工成本

代码改错了再改回来,成本远高于多花 30 秒确认需求。尤其是当 AI 改了多个文件、涉及多处逻辑时,回滚的心理负担也很大。

进阶技巧

技巧一:提供上下文边界

除了让 AI 复述,你还可以主动限定它的活动范围:

需求:xxx
 
约束条件:
- 只修改 BlogCard 组件,不要动其他文件
- 保持现有的样式结构
- 不要引入新的依赖
 
请先复述你的理解,确认后再开始。

技巧二:分步确认

对于复杂的修改,可以要求分步执行:

这个需求比较复杂,请分三步完成:
1. 先列出你要修改的所有文件和修改点,我确认后再开始
2. 先修改数据层逻辑,完成后暂停让我验证
3. 再修改 UI 层展示
 
每一步都等我确认后再进行下一步。

技巧三:在 Cursor Rules 中预设

如果你经常使用 Cursor,可以在项目的 .cursorrules 文件中加入这个规则:

## 代码修改规范
 
在执行任何代码修改之前,必须:
1. 先复述你对需求的理解
2. 列出计划修改的文件清单
3. 说明每个文件的具体修改内容
4. 等待用户确认后再开始执行
 
如果用户的需求描述存在模糊之处,主动提问澄清,不要自行假设。

这样每次 Cursor 接到任务,都会自动遵循这个流程。

什么时候可以不用这招?

凡事有度,不是所有场景都需要复述确认:

场景建议
简单明确的任务(如"把这个变量名改成 xxx")直接执行
有明确代码示例的任务直接执行
涉及多文件、多逻辑的修改必须复述确认
需求描述比较抽象的任务必须复述确认
你对代码不够熟悉必须复述确认

简单来说:不确定的时候,就让它先复述。

总结

今天分享的技巧只有一句话:

在 prompt 末尾加上"请先复述你的理解,确认后再开始"。

这招看起来简单,但它解决的是 AI 编程中最常见的痛点——需求理解偏差。

记住:

  • AI 不会主动告诉你它不确定
  • AI 会假装自己都懂了
  • 代码改错的返工成本远高于多确认一次的时间成本

下次让 Cursor 改代码之前,试试这招。你会发现,那个总是"瞎改"的 AI,突然变得靠谱多了。


你有没有被 AI 改代码坑过的经历?欢迎在评论区分享你的"翻车"故事和应对技巧!