Prompt 技巧
Cursor 里的 prompt 和普通聊天 prompt 有点不一样。因为你不是单纯在问问题,而是在真实代码库里下任务。任务一旦模糊,模型就不是“回答得一般”,而是可能直接改偏。
所以写 Cursor prompt 的重点,不只是礼貌清晰,而是要让它知道:
- 你要做什么
- 不能做什么
- 改动范围在哪
- 什么结果才算完成
1. 先给目标,再给边界
让 Agent 先理解你想要什么,再明确不想要什么:
目标:为现有登录页添加忘记密码入口。
边界:不要引入新依赖;保持当前 UI 风格;只改动相关组件。
这类写法的价值在于,它把“想做什么”和“不要乱做什么”同时讲清楚。真实项目里,后者往往和前者一样重要。
2. 用计划引导复杂任务
对多文件改动或重构,先让 Agent 给出计划:
请先列出实现计划,包含需要改动的文件路径和每步要做的事。
计划更清晰时,执行质量更稳定。如果结果不理想,回到计划再细化,比连续补问更高效。
我会很推荐这一步,尤其是跨文件修改。因为一旦先有计划,你更容易在它真正动手前就发现方向不对。
3. 让 Agent 自己找上下文
只有在你明确知道文件时才 @ 引用,否则让 Agent 自己发现:
如果你不确定入口文件,请先定位相关模块,再给出修改方案。
避免一次性塞太多无关文件,否则会分散注意力。
这里的关键不是“完全不提供上下文”,而是不要一上来就喂太多。让它先定位,再补充,是比较稳的节奏。
4. 给可验证的目标
最稳的方式是让 Agent 以测试为目标迭代:
先为这个函数补测试,运行测试确认失败,再实现逻辑直到通过。
有测试就有“终点”,Agent 更容易收敛到正确结果。
如果没有测试,至少也要给它一个可检查的完成标准。否则它很容易在“差不多好了”的状态里提前停下。
5. 及时重开对话
当出现以下情况,建议新开对话:
- 任务已经转向新的模块
- Agent 连续多次理解偏差
- 历史上下文过长导致回答发散
很多人不舍得开新对话,觉得前面上下文都还在会更省事。实际体验里,经常是新开一轮反而更快,因为旧前提已经开始污染当前任务了。
6. 模板化你的常用提示词
把高频任务整理成模板,重复使用:
请按以下格式输出:
1) 变更摘要
2) 受影响文件
3) 关键风险点
4) 建议测试
这是很适合团队沉淀的部分。因为一旦一个 prompt 模板真的稳定有效,它带来的收益不是一次,而是之后每次都少返工。
常用 Prompt 模板
功能实现
需求:新增课程筛选条件(按难度)。
约束:不要修改现有 API 结构;保持筛选状态与 URL 同步。
输出:列出修改文件 + 关键代码片段。
Bug 修复
问题:移动端点击按钮无响应。
上下文:相关代码在 @src/components/xxx.tsx。
要求:定位原因、给出最小改动的修复方案。
代码审查
请审查当前变更:
- 关注潜在逻辑错误
- 是否影响已有功能
- 是否需要补测试
参考
- Cursor 官方博客:Best practices for coding with agents
https://cursor.com/blog/agent-best-practices
一个我自己更看重的原则
与其追求“写出很厉害的 prompt”,不如追求“让下一步动作更可控”。
Cursor prompt 真正好用的时候,通常不是看起来多聪明,而是:
- 范围清楚
- 结果能检查
- 出错了容易回退
只要这三件事成立,很多 prompt 已经足够好了。