Cursor 真正难的不是安装,是别把 Agent 用成自动补全

Cursor 的门槛不在按钮和快捷键,而在上下文、计划、验收和回滚。用一个最小登录页实测,讲清楚怎样把 Agent 放进可控开发流程。

你只是想让 Cursor 改一个登录页。

它很积极。顺手改了组件结构、路由命名、校验逻辑,还帮你重排了几个文件。

diff 很长,像是干了很多活。问题是你不敢合并。

这就是很多人用 Cursor 的真实卡点。不是不会安装,不是不知道 Chat 在哪,也不是模型不够强。

难的是:你得学会管住一个会主动行动的 Agent。

Cursor 的价值不在“让 AI 多写几行代码”。它真正改变的是开发者和代码库之间的关系。过去你是在编辑器里写代码,现在你是在编辑器里指挥一个会读文件、改文件、跑命令、解释 diff 的执行者。

如果还把它当成更聪明的自动补全用,结果通常只有两种:要么大材小用,要么放它乱跑。

Cursor Agent 工作流封面

低门槛,反而容易误判

Cursor 对 VS Code 用户很友好。

打开项目,侧边栏聊天,选中文件提问,让它解释一段代码,或者直接让它改一个小功能。这些动作都很自然。Cursor 官方文档里也把 Agent 定义得很直接:它可以完成复杂编码任务,可以运行终端命令,也可以编辑代码。

这很方便,但方便会制造一个错觉:装上就会用了。

实际上,装上 Cursor 只是打开了入口。真正决定结果的,是你怎么给它上下文、怎么限制改动范围、怎么验收输出。

很多人第一次用 Cursor,都会写这种 prompt:

1
帮我优化登录页。

这句话看起来没问题,实际问题很大。

“优化”是什么意思?改视觉,还是改交互?能不能动接口请求?能不能改路由?能不能顺手抽组件?改完怎么判断对不对?

你没说,Agent 就只能猜。

Agent 的可怕之处不是它不会做事,而是它太愿意做事。你给一个含糊任务,它会补齐你的空白。补得对,是惊喜;补得错,就是事故。

不要直接让它改,先让它只分析

我做了一个最小实测项目:一个纯 HTML/CSS/JS 登录页。

项目很小,只有这几个文件:

1
2
3
4
5
cursor-agent-demo/
├── index.html
├── style.css
├── login.js
└── tests/login.test.js

任务也很小:只调整登录页的视觉层,不改变字段、表单 action、请求路径和校验逻辑。

这类任务很适合练 Cursor。因为它足够小,小到你能看完全部 diff;它又不是玩具,因为真实项目里的很多事故,恰好就是从这种“小改一下样式”开始的。

我会先给 Cursor 这样的指令:

1
2
3
4
5
6
先不要改代码。

请只阅读 index.html、style.css 和 login.js,告诉我:
1. 登录页的视觉层主要在哪个文件;
2. 表单行为由哪些字段和属性决定;
3. 如果只改视觉,不应该碰哪些东西。

注意第一句:先不要改代码。

这不是客气话,是边界。Cursor 官方的 Plan Mode 文档也强调,计划模式适合复杂任务或需求不够清楚的任务:Agent 会先研究代码库、提出问题、生成可审查的实现计划,然后再进入构建。

小任务不一定非要走完整 Plan Mode,但“先分析,不改代码”这个习惯应该保留。

你先看它怎么理解项目,再决定要不要让它动手。

好 prompt 的重点,是写清楚禁区

很多人写 prompt,只写目标,不写禁区。

目标当然重要,但禁区更重要。因为 Agent 一旦开始行动,最容易出问题的不是“少做了”,而是“多做了”。

坏提示词和好提示词对比

坏 prompt 是这样:

1
帮我优化登录页。

好一点的写法是这样:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
只调整登录页的视觉层,不改变表单字段、form action、接口请求、路由和校验逻辑。

第一步:只分析,不改代码。请列出你准备修改的文件。
第二步:给出修改计划,按文件说明要改什么,并标注风险。
第三步:等我确认后,只实现计划中的第 1 步,不要顺手重构其他文件。

改完后告诉我:
1. 哪些文件变了;
2. 业务逻辑是否保持不变;
3. 我应该怎么验证。

这个 prompt 并不花哨,也没有什么神秘技巧。它只是把几件事讲清楚了:

  • 只改视觉层;
  • 不改业务契约;
  • 先计划,后执行;
  • 小步修改;
  • 改完必须说明验证方法。

这比“帮我优化”啰嗦,但安全得多。

Cursor 官方文档里提到,Agent prompt 可以通过 @ 引用文件、文件夹、终端输出、历史对话、git diff,甚至可以附加图片。这个能力很强,但它不是让你把整个项目一股脑塞进去。

上下文不是越多越好,而是越准越好。

如果你知道相关文件,就明确 @index.html@style.css@login.js。如果你不知道相关文件,可以先让 Agent 搜索和解释,而不是马上授权它全项目修改。

diff 很长,不等于做得对

在这个最小项目里,验收口径被压得很窄:只允许改 style.css

改完以后,验收不是“页面看起来更漂亮”。那只是第一层。

真正要看的是:

1
npm test

测试输出是:

1
PASS: login contract unchanged — route, fields, validation and submit path are intact.

再看 git 状态:

1
git status --short

输出应该只出现样式文件变化:

1
2
 M style.css
?? evidence.diff

最后看 diff,确认改动确实集中在视觉层:背景、卡片边距、圆角、阴影、边框。

这套动作很笨,但有用。

因为 Agent 最容易让人失去耐心。它给你一大段 diff,你很容易被“它做了好多”骗过去。可软件开发里,勤奋不是指标,正确才是。

最小登录页实测截图

我更建议你养成一个固定顺序:

1
看计划 → 允许小步修改 → 看 diff → 跑测试 → 手动验证 → 再继续

这才是 Cursor 应该进入的工作流。

Cursor Agent 可控工作流示意图

Checkpoint 不是后悔药,是安全网

Cursor 官方视频素材里反复提到 checkpoints。这个点很容易被低估。

很多人把 checkpoint 当成“万一错了再退回去”的后悔药。这个理解太轻了。

更好的理解是:checkpoint 是你允许 Agent 继续之前的安全网。

只要 Agent 会主动改代码,你就必须有回滚点。不管是 Cursor 的 checkpoint,还是 Git commit,还是至少保留一个干净的工作区,本质都一样:你不能在一团乱的状态上继续授权。

一个可用的检查清单长这样:

1
2
3
4
5
改动前:任务是否足够小?
计划时:是否明确不改哪些文件和行为?
执行后:diff 是否只覆盖计划里的文件?
验收时:是否跑过测试或手动验证关键路径?
继续前:是否有 checkpoint、commit 或可回滚状态?

如果这五个问题回答不了,就别点 continue。

“继续”是 Cursor 里最容易被滥用的动作。它看起来只是让 Agent 往下做一点,实际上是在把更多上下文、更多假设、更多未验证改动叠到一起。

坏结果往往不是一步跑偏的,是连续几次“继续”叠出来的。

Cursor 不是 Claude Code 的替代品

写到这里,很容易滑向另一个话题:Cursor 和 Claude Code 到底谁更强?

这个问题不该在这篇里展开太多。我更愿意把它说成入口差异。

Cursor 是 IDE-first。它的优势是你能看着文件、看着 diff、看着上下文和模型互动。它适合边看边改,适合对 UI、组件、局部功能做可视化控制。

Claude Code 更偏 terminal-first。它适合跑命令、批量处理、修测试、做更自治的任务代理。

这不是谁赢谁输。

你要问的是:这件事需要我盯着文件和 diff 逐步收口,还是可以交给命令行代理跑一段再回来验收?

如果是前者,Cursor 很顺手。如果是后者,Claude Code 可能更自然。

别把工具对比写成宗教战争。工具的形态,会决定你的工作流。

一个可以直接复制的 Cursor 使用模板

如果你现在就想在项目里试,可以从这个模板开始:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
任务:<一句话说明要做什么>

约束:
- 先不要改代码,先分析相关文件和修改范围。
- 不要改 <明确列出禁区:接口、路由、数据结构、校验逻辑、依赖等>。
- 如果需求不清楚,先提问,不要猜。

计划:
- 按文件列出你准备修改什么。
- 标注每个改动的风险。
- 等我确认后,只执行计划中的第一步。

验收:
- 改完后列出变更文件。
- 给出需要运行的测试或命令。
- 说明我应该手动检查哪条路径。

你也可以把它固化成项目规则。Cursor 官方文档里说,Rules 可以给 Agent 提供系统级指令;项目规则可以放在 .cursor/rulesAGENTS.md 也可以作为一种简单的指令文件形式。

对团队来说,最值得沉淀的不是“神级 prompt”,而是项目里的固定边界:哪些目录不能随便改,哪些命令必须跑,哪些行为需要先问人。

AI 编程最后拼的不是谁会喊“帮我实现”。

拼的是谁能把任务切小,把边界写清,把验收做完。

收住:Cursor 是工具,不是替你兜底的人

下次 Cursor 又给你一大段 diff,不要急着夸它聪明。

先问四个问题:

1
2
3
4
它改的是不是我要求的范围?
有没有顺手改不该改的东西?
我能不能回滚?
我怎么验证?

能回答这四个问题,Cursor 才是工具。

回答不了,它只是一个很勤奋的风险放大器。