把 Cursor 当工程工具,而不是聊天窗口

很多人刚开始用 Cursor 时,会把它当成一个更懂代码的聊天窗口。遇到问题就把需求、日志、截图、文件一股脑放进去,然后开 Agent 等它改。

短期看,这样确实省事。长期看,很容易遇到几个问题:模型越用越贵,上下文越来越乱,Agent 改动越来越大,最后 review 成本反而升上去。AI Coding 的价值来自一组匹配关系:合适的任务、合适的上下文、合适的模型,以及合适的验证方式。

有位技术负责人讲过一段话,我很喜欢:

最近大家在日常开发中越来越熟练地使用AI Coding,不少人的编码效率明显提升,不少团队也在积极探索AI Coding的能力边界,这很好,公司也愿意持续为大家提供必要的额度支持,但额度不是福利,而是生产资料,也希望大家在使用过程中思考和注意以下几点:

1、成本意识,根据任务复杂程度按需选配合适模型,而不是一刀切都用最好最新的

2、团队协作和沉淀,每个项目,业务历史包袱,代码逻辑,开发习惯都不一样,基于现状和协同习惯持续总结提炼可复用的skill、工作流

3、整体效率提升,目前大部分还是在单点提效,从需求到上线的整体链路并没有提升,协同链路的提效可以不设边界积极探索

这段话里的三个关键词很适合拿来理解 Cursor:成本意识团队沉淀整体链路提效

成本意识要求模型、模式和任务复杂度匹配。团队沉淀要求把项目规则、排障路径、测试命令和 review 经验写进可复用的 Rules、Skills 和文档里。整体链路提效关注需求理解、方案设计、开发、自测、评审、上线和复盘,而不是只追求某一段代码写得更快。

采购和组织流程留给各自团队处理;开发者日常更需要的是一套可执行的 Cursor 使用习惯。

Cursor 适合解决什么问题

Cursor 的核心价值在代码上下文。它能读仓库、找调用链、改文件、跑命令、修测试,也能把一次工程任务拆成多轮 Agent 操作。只要问题的关键材料在代码仓库里,Cursor 就比普通聊天工具更合适。

反过来,问题如果不依赖项目上下文,就不一定要放进 Cursor。普通语法解释、公开 API 怎么用、SQL / 正则 / CSS 小问题、文案润色、翻译、会议摘要,这些内容更适合放到官方文档、搜索、低成本通用模型、办公文档 AI 或设计工具自带 AI 里处理。

Cursor 使用判断树

日常可以按这个顺序判断:

  • 问题是否依赖当前仓库里的真实代码、私有接口、业务调用链、测试失败现场。
  • 是否需要 Cursor 读文件、改文件、跑命令、看 diff。
  • 是否已经知道入口文件和影响范围;如果不知道,先用 Ask 或 Plan 探索,不要直接让 Agent 扫全仓。
  • 是否有明确验收标准,例如测试命令、页面效果、接口返回、PR diff 或 review 重点。

这几项越清楚,Cursor 的效果越稳定。任务越模糊,Agent 就越容易用更多工具、读更多文件、产生更大的 diff,后面人工 review 也越累。

日常问题可以分成三类。

第一类是 必须依赖代码仓库上下文 的任务。比如跨文件改造、复杂重构、测试失败定位、线上 bug 排查、私有业务链路分析、代码评审前的影响范围检查。这些任务需要真实文件、调用链、项目约定和验证命令,Cursor 正好适合。

第二类是 可以先用 Cursor Ask 探索,但不要急着让 Agent 改 的任务。比如第一次理解某个模块、接手陌生项目、确认一个接口从哪里发起、判断某个组件是否还有其他调用方。这个阶段的目标是知道入口、范围和风险,而不是马上生成代码。

第三类是 不应该优先占用 Cursor 的任务。公开 API 怎么用、某个 CSS 属性什么意思、正则怎么写、SQL 语法怎么改、会议纪要怎么润色、设计稿里文案怎么改,这些问题离开当前代码仓库也能解决,放在官方文档、搜索、通用模型、办公文档 AI 或设计工具 AI 里更合适。

这组口径可以作为快速判断:

任务 更合适的工具 原因
跨文件重构、复杂需求开发 Cursor 需要读仓库、改文件、跑验证
疑难 bug、测试失败定位 Cursor 需要源码、日志、命令输出和失败现场
私有模块调用链分析 Cursor Ask 先只读找入口和影响范围
单个公开 API 怎么用 官方文档 / 文档问答 官方资料更直接,也更新
SQL、正则、CSS、TypeScript 小问题 通用模型 / 搜索 不依赖项目上下文
会议纪要、周报、需求摘要 办公文档 AI 材料本来就在办公文档里
设计初稿、交互原型、图层整理 Figma AI / Figma Make 设计工具里处理更顺

Cursor 的位置越清楚,后面的模型选择、上下文控制和 review 才越好做。否则所有问题都丢给 Cursor,最后会变成一个更贵、更重、更容易积累历史噪音的聊天窗口。

模型和模式要跟任务匹配

Cursor 里的模型和模式不是越强越好。模型选择会影响质量、速度和成本,模式选择会影响上下文窗口、工具调用和执行方式。Cursor Models & Pricing 会列出当前模型、费率、Max Mode、usage 和 token breakdown,这类信息变化很快,真正使用时应该看最新官方页面。

日常可以先把任务粗略分成三层:

  • 轻量任务:解释一段代码、看一个简单报错、写一个小脚本、问公开 API 用法。优先用 Auto、mini 模型、低成本模型,或者干脆用官方文档和通用模型。
  • 日常工程任务:理解模块入口、小范围修改、明确需求下的跨文件改动、补测试。可以优先尝试 Composer 2.5 Standard、Claude Sonnet 类或合适的 GPT / Gemini 日常模型。
  • 高复杂任务:疑难 bug、复杂重构、发布前风险评审、测试失败根因分析、大范围迁移。可以使用更强模型、Thinking 或临时 Max Mode,但要先把任务目标和上下文范围讲清楚。

截至 2026-06-01,Cursor 自家的 Composer 2.5 很值得单独提一下。它是 Cursor 针对真实编辑器 Agent 工作优化的编码模型,重点放在长时间读代码、调用工具、改文件、看报错、继续修正这类持续任务。

官方介绍里提到,Composer 2.5 相比前代更适合持续时间更长的任务,也更能遵守复杂指令。它继续基于 Moonshot 的 Kimi K2.5,并通过更大规模训练、更复杂的强化学习环境和新的学习方法提升能力。放在 Cursor 的使用场景里,这些改进对应的就是跨文件修改、测试修复、复杂排障和多轮 Agent 工作。

价格也影响选择。Cursor 当时列出的 Composer 2.5 Standard 是 $0.50 / 1M input、$2.50 / 1M output;Fast 是 $3.00 / 1M input、$15.00 / 1M output。Composer 2.5 Changelog 也说明,Fast 和 Standard 智能能力相同,主要差异是速度。也就是说,不赶时间时先用 Standard 更合理;真的卡在等待速度上,再为 Fast 付更高成本。

几个常见模式容易被混在一起:

  • Standard / Fast 更像同一模型的档位选择,主要影响速度、价格和默认使用体验。
  • Thinking 更适合复杂推理、方案评审、难 bug 和边界很多的技术判断,普通小改动不需要默认打开。
  • Max Mode 解决的是大上下文问题,适合普通上下文放不下关键材料的场景,不适合当日常开关。

最实用的顺序是:先用日常模型和 Standard;问题很复杂但材料不大,再考虑 Thinking;材料大到普通上下文放不下,再临时打开 Max Mode;主要瓶颈是等待速度,再考虑 Fast。

模型选择还要注意一个细节:强模型不等于每次都更划算。强模型在难题上能减少返工,在简单问题上只是在放大成本。一个小组件的样式修改,如果用了高阶模型、Fast、Thinking 和 Max Mode,最后得到的可能还是几行 CSS;而一次复杂重构如果用太弱的模型,可能会产生很多看似合理但不符合项目约定的 diff,人工收拾起来更费时间。

默认选择可以按这张表来定。

任务 默认选择 升级条件
解释简单代码、看一段报错 Auto、mini、低成本模型、通用模型 涉及私有调用链,再切到 Cursor Ask
理解陌生模块入口 Ask + 日常模型 范围复杂、需要方案评审时再用 Thinking
小范围改代码 Composer 2.5 Standard / Sonnet 类 + Agent 连续失败或风险高,再切更强模型
明确需求下的跨文件修改 Composer 2.5 Standard、Sonnet 类、GPT 日常模型 涉及复杂推理或关键发布,再升级
疑难 bug、复杂重构、测试失败根因 高阶 GPT / Claude Opus / Gemini Pro / Thinking 普通上下文放不下时,再开 Max Mode
大仓库、大文件、多模块关联分析 长上下文模型 + 临时 Max Mode 先裁剪材料,确认必要后再开
赶时间、频繁等待返回 Fast / Priority 类模式 明确是在买速度,不是买更高智能

Max Mode 尤其不适合常开。它的价值是让模型在普通上下文放不下关键材料时还能继续工作,例如多个大文件同时比较、跨很多模块串调用链、复杂重构前的全局分析。单文件解释、小组件修改、API 用法查询、文案润色、注释整理,不需要用 Max Mode。

Thinking 也一样。它适合难题拆解和复杂判断,比如架构方案取舍、疑难 bug 根因分析、测试失败背后的边界条件、发布前风险评审。日常明确的小改动不需要默认开 Thinking,否则只是把简单任务变慢、变贵。

Fast 的定位更直接:买速度。Cursor 的 Composer 2.5 资料里已经说明 Fast 和 Standard 智能能力相同,主要差异是速度。交互式排查、线上紧急修复、等待成本很高时,Fast 有价值;普通任务不赶时间时,Standard 更合适。

上下文是一种成本

AI Coding 里最容易被低估的成本,是上下文。

Cursor 的 Prompting Agents 文档说明,chat 会维护自己的上下文窗口,提示、附加文件、模型回答、旧对话和工具结果都会占空间。上下文变大以后,请求会更重,旧任务也可能影响新任务。一个对话里连续处理很多需求,后面的问题就容易带着历史噪音继续跑。

上下文成本示意图

控制上下文有几条很实用的规则。

一个任务结束后,让 Cursor 生成交接摘要,然后开新对话。摘要里保留目标、已确认结论、改过的文件、验证命令、未完成事项和后续约束。新对话只带摘要和必要文件,不把旧对话整段搬过去。

如果任务还没结束,但对话已经很长,可以考虑用 /compress 主动压缩上下文。Cursor Slash Commands 里列出了 /compress,它的作用是总结当前会话并释放上下文空间。压缩不是万能恢复,关键约束、测试命令、业务边界和已经排除过的方案,最好仍然单独写进交接摘要。

给文件时不要一上来把整个目录放进上下文。知道入口就 @ 具体文件,不知道入口就先描述现象、目标和边界,让 Agent 用搜索工具找。大日志裁成关键报错和上下文,大 JSON 保留字段结构和关键样例,构建产物、依赖目录、临时文件和导出文件不要进上下文。

项目还应该维护 .cursorignore.cursorindexingignoreCursor Ignore File 文档说明了这两类文件的作用。它们不是绝对安全边界,但能减少无关内容进入索引和 AI 上下文,让检索质量更稳定,也降低误带敏感文件的概率。

上下文管理可以拆成四件事。

第一,长对话要及时切分。一个 chat 适合延续同一个任务,不适合混合多个无关需求。任务结束后,让 Cursor 输出交接摘要,再开新对话。摘要可以固定成这样:

请总结当前任务的交接信息:
1. 已确认的结论
2. 修改过的文件
3. 还没完成的事项
4. 后续继续时需要带入的上下文
5. 已运行或需要运行的验证命令

第二,材料要先裁剪。日志保留关键报错和上下 30 行,JSON 保留字段结构和关键样例,截图只保留和问题相关的区域,目录只给入口文件、调用方和相关工具函数。整份日志、整份大 JSON、构建产物、依赖目录和旧聊天全文,通常会把关键材料淹掉。

第三,让 Agent 自己找上下文。知道准确文件时,可以直接 @ 文件;不知道入口时,把现象、目标、边界讲清楚,让 Agent 通过 grep、语义搜索和代码索引自己找。Cursor 官方的 Agent 最佳实践 也强调,不需要手动把所有可能相关的文件都加进上下文。

第四,项目级 ignore 要维护。前端项目里常见的排除项包括这些,具体仍然要按项目调整:

dist/
build/
coverage/
*.log
.env
.env.*
node_modules/
tmp/

如果项目里有大型 mock 数据、导出文件、临时压缩包、自动生成的 API 产物,也可以按情况加进去。ignore 不能替代安全规范,敏感信息本来就不应该随意放进仓库或上下文;它解决的是「减少无关文件干扰」和「降低误带材料的概率」。

第一次接手一个项目时,也应该先看这些基础设置:

  • 当前用的是哪个账号和工作区,是否符合组织要求。
  • 默认模型是什么,Max Mode 是否被常开。
  • 项目有没有 .cursor/rules.cursorignore.cursorindexingignoreAGENTS.md
  • 有没有已经沉淀好的 Skills、Commands 或项目排查流程。
  • 常用测试命令、lint 命令、类型检查命令在哪里。

这些检查不复杂,但能避免很多后续浪费。Cursor 的效果很大程度取决于它拿到的上下文质量;上下文越干净,模型越容易把注意力放在真正相关的代码上。

先理解,再让 Agent 改

很多低效用法来自一上来就开 Agent。Agent 会搜索代码、读文件、编辑、跑命令、修错误;能力越强,范围失控时消耗越大。

更稳的顺序是:Ask 用来理解,Plan 用来定方案,Agent 用来执行,Review 用来兜底。

Ask Plan Agent Review 流程

理解陌生模块时,先问:

订单详情页保存失败。
请先只读分析页面入口、表单提交、请求封装和对应 API。
不要改代码,先给影响范围、可能原因和下一步建议。

这类提示把现象、范围和动作权限说清楚了。Cursor 不需要从全仓开始猜,也不容易直接改出一大段难以 review 的 diff。

复杂需求可以先用 Plan Mode。Cursor Plan Mode 官方介绍里提到,Plan Mode 会先研究代码、提出澄清问题、生成带文件路径和代码引用的计划,等待确认后再执行。这个模式适合重构、迁移、影响范围不确定的改动。计划本身也能保存下来,方便后续恢复上下文和团队 review。

等方案确认以后,再让 Agent 按明确范围执行:

按已确认的方案修改。
只改 src/pages/order 和 src/api/order 相关文件。
不要改公共请求封装。
改完后运行 pnpm test:order,并列出最终 diff 和风险点。

这类写法比「直接修复这个问题」更像工程任务。目标、边界、禁止事项、验证方式都在提示里,Agent 更容易做出可 review 的结果。

类似经验并不只存在于 Cursor。Anthropic 的 Claude Code Best Practices 也建议先探索、再计划、再编码;GitHub 的 Copilot coding agent 实践 会强调 issue 需要写清问题、验收标准和相关文件;OpenAI 的 Codex 使用经验 也建议大改动先用 Ask Mode 形成计划,再进入 Code Mode。

不同工具叫法不一样,底层习惯是同一件事:先把任务变清楚,再让 Agent 动手。

Cursor 里几个常见模式可以这样理解:

模式 适合场景 使用提醒
Ask 学习代码、找入口、梳理调用链、解释现有逻辑 先只读,不改文件
Plan Mode 复杂需求、重构、影响范围不确定的任务 先生成可审阅计划,再执行
Agent 已经明确要改什么,需要跨文件编辑、跑命令、修测试 给清楚范围、禁止项和验收标准
Manual 已经知道要改哪个文件和哪一段 适合小范围精确修改
Custom Modes 固定的学习、调试、重构、排查流程 适合团队把常见流程固化
Debug Mode 可复现但原因不清楚的复杂 bug 让排查有假设、有证据、有验证

Debug Mode 值得单独说一下。Debug Mode 会让 Agent 围绕 bug 形成多个假设,再结合日志或运行时信息定位问题。它适合可复现、但原因不清楚的故障,例如某个状态只有特定路径下才错、某个测试只在 CI 里失败、某个接口偶发返回异常。

Debug Mode 的价值不是让 Agent 猜得更多,而是让排查更像真实调试:先提出假设,再找证据,再复现,再验证。用它时最好给出复现路径、失败日志、环境差异、相关测试命令和不希望修改的范围。

Agent 执行时,提示词里最好同时写四类信息:

  • 目标:这次要解决什么问题,最终效果是什么。
  • 范围:可以看哪些目录,可以改哪些文件。
  • 限制:不要改什么,不要引入什么,不要碰什么兼容逻辑。
  • 验收:要跑什么命令,怎么判断结果正确,最后要输出哪些风险点。

一个更完整的提示可以这样写:

目标:修复订单详情页点击保存后状态没有更新的问题。

范围:
- 可以查看 src/pages/order、src/api/order、src/stores/order。
- 可以修改订单详情页和订单 API 封装。

限制:
- 不要改全局 request wrapper。
- 不要改其他业务页面。
- 不要引入新依赖。

验收:
- 改完运行 pnpm test:order。
- 最后列出改动文件、验证结果、仍需人工确认的风险。

这种写法看起来更啰嗦,但它会显著降低 Agent 自行扩大范围的概率。越是让模型动代码,越要把边界写清楚。

把项目经验写进 Rules、Skills 和 AGENTS.md

模型本身不会天然知道一个项目的历史包袱、目录职责、测试命令、接口约定和 review 重点。这些信息如果只停留在个人对话里,下次别人还要重新解释一遍,Agent 也会重复犯同样的错。

Cursor 的 Rules 适合放持续生效的项目约定,例如常用命令、目录职责、代码风格、不能随便改的兼容逻辑、推荐参考的真实文件。Project Rules 可以进入版本管理,按路径、手动引用或相关性触发;Team Rules 和 User Rules 则适合更大范围或个人习惯。

Skills 更适合放一次性的流程,比如 review 当前 diff、补测试建议、整理 PR 描述、按 bug 描述定位代码、生成项目入门路径。Rules 解决「项目一直是什么样」,Skills 解决「这次任务应该怎么做」。

AGENTS.md 则越来越像跨工具的项目说明文件。只要项目里同时使用 Cursor、Codex、Claude Code、GitHub Copilot 等工具,就不应该把所有约定绑死在某一个工具里。通用项目约定放进 AGENTS.md,Cursor 专属触发规则放进 .cursor/rules,具体流程放进 .cursor/skills,这套分工会更稳。

一个简单结构可以长这样:

.cursor/
  rules/
    project-overview.mdc
    code-style.mdc
    testing.mdc
    review-checklist.mdc
  skills/
    review/
      SKILL.md
    write-tests/
      SKILL.md
    create-pr/
      SKILL.md
.cursorignore
.cursorindexingignore
AGENTS.md

Rules 不要写成口号,也不要复制大段源码。更有价值的是判断标准和入口信息:哪些目录负责什么,哪些命令最可靠,哪些文件能代表项目当前写法,哪些历史逻辑不能轻易改。Skills 也不要只写一句「review 当前 diff」,而应该固定检查 diff、测试、兼容、安全、权限、埋点、异常处理和人工确认点。

第三方的 Cursor Rules 实践 也提醒过一个常见问题:不要把所有规则都设成 always apply。持续进入上下文的规则越多,每次请求越重,真正关键的信息反而更容易被淹没。能按目录、文件类型或任务触发的规则,就不要全局常开。

Rules 可以从最小可用版本开始,不需要一口气写成手册。比如一个前端项目,可以先写这些内容:

# Project Overview

- 业务入口在 src/pages。
- API 封装在 src/api,不要在组件里直接写 fetch。
- 多语言文案放在 src/i18n,新增文案要同步补中英文 key。
- 表单提交前必须走 src/utils/validate.ts 里的校验方法。

# Commands

- 类型检查:pnpm typecheck
- 单测:pnpm test
- lint:pnpm lint

# Review Notes

- 涉及支付、权限、埋点、用户数据删除的改动必须人工 review。
- 不要绕过 request wrapper。
- 不要把后端返回字段直接透传到 UI,先经过 adapter。

这种规则不花哨,但对 Agent 很有用。它告诉模型项目怎么组织、哪些入口可信、哪些地方不能绕开、改完要跑什么命令。真正好的 Rules 通常来自 Agent 反复犯错的地方:它老是找错入口,就补入口说明;它老是绕过 wrapper,就补禁止项;它老是忘记跑测试,就补验证命令。

Skills 则更适合沉淀流程。比如 /review 可以要求 Agent 先读当前 diff,再按权限、兼容、测试、异常处理、埋点和性能列风险;/write-tests 可以要求它根据当前改动列测试场景,再补最小测试;/create-pr 可以整理 PR 标题、变更范围、测试结果和人工确认点。

Rules 和 Skills 的区别可以简单记成一句话:Rules 让 Agent 知道项目长期是什么样,Skills 让 Agent 知道这次任务应该怎么做。

让 Cursor 读最新资料

模型记忆不等于最新资料。框架、云服务、SDK、浏览器 API、AI 工具本身都在快速变化,Cursor 如果只靠模型记忆,很容易给出旧版本答案。

Cursor 支持用 @Docs@Web 和 MCP 补上下文。Prompting Agents 文档说明了文件、目录、文档、Past Chats 和浏览器上下文等 mention 能力;Cursor MCP 则说明了 Cursor 如何通过 MCP 接入外部系统。

几个常见用法:

  • 升级 React、Vue、Vite、Next.js、Chrome Extension API 或支付 SDK 时,先把官方文档加到 @Docs,再让 Cursor 对照当前项目代码判断迁移方式。
  • 刚发布的新模型、新框架版本、新浏览器能力,先用 @Web 查官方公告、changelog 和社区反馈,再决定是否采用。
  • 内部接口文档、工单、日志、监控和告警,应该走组织允许的 MCP 或内部工具,不要复制到公开网页工具里。

这也是一种成本控制。公开资料的问题先在官方文档里解决,回到 Cursor 时,问题会更具体,Agent 不需要靠猜补旧版本知识。

@Docs@Web 和 MCP 的边界不一样。

@Docs 更适合稳定的官方资料。比如升级 Vite、Next.js、React、Vue、Chrome Extension API、Stripe SDK、Figma Plugin API 时,先让 Cursor 读官方文档,再结合项目代码判断要怎么改。这样比直接问「这个 API 怎么用」可靠,因为它能同时看到官方资料和当前项目写法。

@Web 更适合变化快的信息。比如新模型刚发布、某个库刚出 breaking change、浏览器刚改权限策略、社区里有人遇到同类坑,可以先看官方公告、changelog、issue 和讨论,再让 Cursor 汇总取舍。它适合补「现在发生了什么」,但不要把随便搜到的社区答案当成事实。

MCP 更适合连接受控系统。它可以理解成一种把外部系统接入 Agent 的协议。内部接口文档、工单、监控、日志、Sentry、Datadog、Slack、数据库查询,都可以通过组织允许的 MCP 暴露给 Agent。这样比复制粘贴材料更稳,因为数据来源、权限、审计和脱敏可以统一控制。

最重要的边界是:公开资料可以走公开工具,私有资料要走组织允许的工具。不要为了省事把内部日志、接口文档、用户数据、密钥、未公开方案贴到公开网页模型里。Cursor 可以作为工程工具使用,但它也不应该变成绕过数据治理的入口。

截图和浏览器证据要用起来

UI 问题、样式问题、设计稿还原问题、报错弹窗和移动端兼容问题,单靠文字很容易讲不清。Cursor 官方的 Agent 最佳实践 提到,可以给 Agent 粘贴截图、拖入设计稿,或者结合浏览器检查页面。

截图适合这些场景:

  • 页面布局错位、遮挡、换行、溢出。
  • 控制台报错和页面状态需要一起看。
  • 设计稿和实现不一致。
  • 移动端和桌面端表现不同。
  • 某个交互只能通过实际页面状态解释。

给截图时也要写清页面入口、期望效果、实际问题、相关文件和是否允许修改。图片只是证据,不是任务说明本身。真正稳定的 UI 修复应该形成闭环:截图说明问题,Agent 找代码,修改后打开页面验证,再用新的截图或测试结果确认。

对外分享 Cursor 界面截图时,干净 demo 项目截图比真实工作区更安全。真实工作区很容易露出账号、仓库名、分支名、侧边栏文件、最近打开记录和内部路径。需要讲方法论时,自绘 SVG 通常更稳;只有解释按钮位置和具体入口时,才需要少量干净截图。

截图也要控制上下文。一次 UI 问题通常不需要十几张图,更需要一张能说明问题的截图,加上页面入口、复现步骤、期望效果和实际效果。如果移动端和桌面端表现不同,就各给一张;如果 hover、弹窗、滚动后才出现问题,要说明触发状态。

更好的提示是:

这是订单详情页移动端截图。
问题:底部保存按钮遮挡了错误提示。
期望:错误提示完整展示,保存按钮固定在底部但不覆盖内容。
请先定位相关布局和样式文件,不要直接改公共 Button 组件。

不太好的提示是:

页面样式不符合预期,请直接修复。

视觉问题最怕只修表面。按钮被挡住,原因可能是容器高度、固定定位、安全区、键盘弹出、滚动区域、设计稿尺寸或组件复用边界。截图能帮 Agent 看见表象,但仍然要让它回到代码和页面验证里闭环。

设计工具也可以分流一部分工作。Figma 的 AI tools 可以处理设计文件里的文本、图层、图片和交互;Figma Make 更适合 prompt-to-app 或交互原型探索。早期原型、设计文案、图层整理和交互尝试,不一定要放到 Cursor 里解决。

生成代码必须 review

Cursor 可以写代码,也可以跑测试,生成结果仍然需要 review。

Agent Review 可以对本地改动做专门代码评审,支持 Agent 任务结束后自动运行,也支持用 /agent-review 手动触发。它适合做额外检查,尤其是较大 diff、复杂逻辑和重构后的遗漏点。

但 Agent Review 不能替代人工 review。权限、支付、风控、埋点、数据删除、兼容逻辑、性能敏感路径、用户隐私相关代码,仍然要开发者自己看 diff。AI 很容易写出「差一点就对」的代码,这类问题最麻烦,因为它表面能跑,细节会埋在边界条件里。

Stack Overflow 的 2025 Developer Survey AI 章节 里,开发者最常见的挫败感就是 AI 结果接近正确但不完全正确;METR 关于 AI Coding 生产力的随机对照研究 也提醒,在熟悉的大型代码库里,经验开发者使用 AI 工具不一定天然更快,review、清理和上下文偏差都可能吞掉收益。

团队里可以把底线写清楚:

  • 重要改动必须看 diff。
  • Agent 跑过测试,不代表测试覆盖了风险。
  • 新代码要贴合项目现有模式,不要为了「看起来能跑」引入新风格。
  • Agent 连续走错方向时及时 Stop,回到计划和上下文边界,不要在错误方向上继续补 prompt。
  • 最终合入前,把测试结果、风险点、人工确认项写进 PR 描述。

Cursor 还有并行 Agent、Cloud Agent、Bugbot 这类能力。它们很有价值,但不要把它们理解成「可以少 review」。并行 Agent 会产生多份候选实现,消耗和 review 成本会一起升高;Cloud Agent 涉及仓库、依赖、凭据、构建环境和网络访问;Bugbot 依赖代码托管平台集成和权限配置。越是自动化,越需要清楚边界。

Agent Review 可以放进本地开发习惯里。比如一次 Agent 任务结束后,不要马上接受所有改动,可以先看 Cursor 给出的检查,再自己看最终 diff。Quick 更适合小 diff 和快速检查,Deep 更适合复杂逻辑、安全敏感代码和大范围重构。

Bugbot 更像 PR / MR 场景里的额外 review 机器人,能不能用取决于代码托管平台、权限、付费方案和组织集成方式。它适合了解机制,但不要把它当成所有团队天然可用的流程。

并行 Agent 也要谨慎。Cursor 官方实践里提到,Cursor 会为并行运行的 Agent 管理 git worktrees,让多个 Agent 在隔离工作区里处理任务。这个能力适合两类场景:一类是同题多解,让不同模型或不同 Agent 比较方案;另一类是拆分并行,把大任务拆成互不冲突的子任务,比如一个 Agent 改接口适配,一个 Agent 补测试,一个 Agent 整理文档。

并行的代价也很直接:三份 Agent 就是三份上下文、三份推理、三份输出、三份 diff。没有时间 review 多份结果时,并行只会放大混乱。适合并行的任务通常有高价值、高不确定性和明确验收标准;小文案、小样式、基础问题、需求还没讲清楚的任务,都不适合并行。

Cloud Agent 属于更重的能力。它的思路是让 Agent 在远程开发环境里克隆仓库、安装依赖、写代码、跑测试、提交变更,本机离线时也能继续工作。这个能力对开源项目、云端仓库和标准化环境很有吸引力,但它会涉及仓库权限、依赖安装、凭据、构建系统、网络访问和日志数据。组织内部使用时,需要先经过基础设施和安全评估,不适合个人临时绕过去使用。

越往自动化方向走,越要把这几条写清楚:

  • 哪些仓库和文件可以被访问。
  • 哪些命令可以运行。
  • 哪些数据不能进入上下文。
  • 哪些结果必须人工 review。
  • 出问题时怎么回滚。

AI Coding 的成熟度,取决于 Agent 产出的结果能不能被人理解、验证、回滚和沉淀,而不取决于它能不能自己一路跑到底。

能分流的问题就不要全放进 Cursor

Cursor 很适合代码仓库上下文,但它不应该承包所有 AI 任务。工具分流有两个价值:一是把 Cursor 留给真正依赖代码上下文的工程任务;二是让问题在最贴近材料的工具里解决。

办公文档里的会议纪要、需求摘要、周报、评审记录,优先用办公文档 AI。设计稿里的文案、图层、原型和交互探索,优先用 Figma AI 或 Figma Make。公开技术资料,优先用官方文档、文档自带问答、搜索和通用模型。回到 Cursor 时,问题应该已经更具体,例如「按这份官方迁移文档,判断当前项目哪些文件需要改」。

免费或低成本通用模型适合公开知识和脱敏材料:

  • 概念解释。
  • 语法问题。
  • SQL、正则、CSS 小问题。
  • 脱敏后的报错初步分析。
  • 文案和翻译。
  • 官方文档片段解释。

不要放过去的内容也要明确:

  • 私有仓库源码。
  • 密钥、token、cookie。
  • 用户数据。
  • 未脱敏日志。
  • 内部接口文档。
  • 未公开产品方案。
  • 客户、营收、合同、权限等敏感信息。

Cursor 和免费工具的安全边界也不一样。Cursor 的 SecurityData Use 页面会说明 Privacy Mode、数据使用、训练和模型供应商 Zero Data Retention 等口径。组织批准的商业工具和个人随手打开的免费网页工具,在协议、管理、权限、审计和数据处理上通常不是一回事。

这条边界不代表任何东西都能随便贴进 Cursor。密钥、token、cookie、生产用户数据、客户资料、未脱敏日志、合同、营收、权限清单、内部账号、数据库导出等,仍然要按安全规范处理。Cursor 可以读代码,不代表可以把敏感数据当普通上下文粘进去。

可以按这个表判断:

材料类型 Cursor 免费或个人 AI 工具 处理方式
项目源码、业务调用链 适合 不适合 在组织允许的工程工具里处理
线上日志、用户数据、客户资料 先脱敏裁剪 不适合 只保留必要字段和关键报错
密钥、token、cookie 不适合 不适合 不进入任何 AI 上下文
公开 API 文档、官方示例 可以 可以 优先官方文档和 @Docs
脱敏后的通用报错 可以 可以 去掉路径、用户信息、内部接口
SQL、正则、CSS 小问题 可以但不优先 适合 优先分流
文案、翻译、会议摘要 不优先 适合 优先办公文档 AI 或通用模型
设计初稿、原型、图层整理 不优先 不适用 优先 Figma AI / Figma Make

一份日常自查清单

真正开始用 Cursor 之前,可以先问自己几个问题。这些问题不复杂,但能避免大量后续返工。

第一,当前任务到底要不要用 Cursor。只要问题不依赖项目源码、私有调用链、测试环境或真实 diff,就先考虑官方文档、搜索、通用模型、办公文档 AI 或设计工具 AI。Cursor 最擅长的是工程上下文,不是所有知识问答。

第二,这次应该用 Ask、Plan 还是 Agent。还没理解入口和影响范围时,用 Ask;知道目标但不确定方案时,用 Plan;方案已经清楚、文件范围和验收标准也清楚时,再让 Agent 改。不要把 Agent 当成第一步。

第三,模型和模式是否过重。普通解释、小改动、文案和公开 API 查询,不需要高阶模型、Thinking、Fast 和 Max Mode 一起上。复杂重构、疑难 bug、发布前风险评审才值得升级模型或打开更重模式。

第四,上下文是否过大。文件、日志、截图、旧对话、目录、规则都会一起进入上下文。给得越多,模型未必越聪明,反而可能更难抓住关键点。先给最小闭环材料,让 Agent 需要时再补。

第五,当前对话是否已经太长。如果一个 chat 里连续处理多个需求,旧任务会影响新任务。任务结束后生成交接摘要,再开新对话;任务还没结束但上下文已经很重,可以先 /compress,再继续当前任务。

第六,项目规则是否已经沉淀。Agent 反复犯错的地方,不要每次都靠临时 prompt 修。入口找错,就写进 Rules;review 流程重复,就做成 Skill;多个工具都要读的项目说明,就放进 AGENTS.md

第七,生成代码是否经过 review。Agent 改完以后,至少看 diff、测试结果和风险点。涉及权限、支付、数据删除、埋点、风控、兼容逻辑的代码,要人工重点看。AI 代码最危险的地方不是完全错,而是差一点就对。

可以把这份清单压成一个固定动作:

1. 这件事需要代码上下文吗?
2. 现在是理解、计划,还是执行?
3. 模型和模式有没有过重?
4. 上下文是不是只保留必要材料?
5. 当前对话是否该总结后切新对话?
6. 重复经验有没有写进 Rules / Skills / AGENTS.md?
7. 最终 diff、测试和风险点有没有 review?

这七个问题比任何单个 prompt 都更重要。Prompt 写得再漂亮,如果任务分错、模型选错、上下文乱掉、review 缺失,最后还是会变成「AI 看起来很忙,人类还得收拾」。

几个常见误区

第一个误区是把 Cursor 当搜索引擎。公开 API、框架参数、版本变更、报错含义,官方文档通常更可靠。Cursor 的优势是把这些资料和当前项目代码放到一起判断,而不是替代官方资料本身。

第二个误区是把 Agent 当实习生随便派活。实习生也需要需求、范围、验收标准和 review,Agent 更需要。只说「看看哪里有问题」,它就只能扩大搜索范围;说清页面、现象、相关模块、禁止改动和测试命令,它才更像在做工程任务。

第三个误区是把上下文当保险。很多人会下意识把整个目录、整份日志、整段聊天记录都给模型,觉得这样更安全。实际情况经常相反:模型看到了更多无关信息,关键文件反而不突出。上下文管理的目标不是「多」,而是「刚好够定位问题」。

第四个误区是把强模型当默认安全选项。强模型适合难题,但不能替代清楚的任务说明。一个范围含糊的任务,用更强模型也可能产出更大的错误 diff;一个边界清楚的任务,用日常模型也能完成得很好。

第五个误区是用一次成功经验替代团队沉淀。某个人用 Cursor 排查完一个复杂 bug,如果只留下一个 PR,下次别人还要重新摸索。更好的做法是把排查路径、关键文件、常见坑、测试命令、review 重点写进 Rules、Skills、FAQ 或项目文档。

第六个误区是只看单点编码速度。Cursor 让代码写得更快以后,如果 review、测试、上线、回滚没有跟上,整体风险会变高。真正有价值的提效应该体现在整个链路上:需求理解更快、影响范围更清楚、测试更完整、PR 更好 review、上线风险更可控。

第七个误区是把工具能力当成安全边界。.cursorignore 能减少无关文件进入上下文,但不能替代敏感信息管理;Agent Review 能发现一部分问题,但不能替代人工 review;Cloud Agent 能在远程跑任务,但不能绕过仓库权限、网络访问和数据合规。

这些误区本质上都指向同一件事:Cursor 的定位仍然是工程工具。工程工具需要输入、约束、验证和沉淀;缺了这些,它再聪明也会把复杂度转嫁给后面的人工 review。

从个人提效走向工程链路提效

很多人用 Cursor 后,最先感受到的是写代码更快。这当然有价值,但如果需求拆解、方案评审、测试验证、代码 review、上线回归没有同步变顺,整体交付周期不一定会明显缩短。

Cursor 参与的地方可以更靠前,也可以更靠后:

  • 需求阶段:梳理历史逻辑、找相关页面和接口、列影响范围。
  • 方案阶段:比较实现路线、列风险点、找类似实现。
  • 开发阶段:跨文件修改、补类型、处理重复逻辑、生成辅助代码。
  • 自测阶段:生成测试场景、解释失败日志、补测试建议。
  • 评审阶段:整理 PR 描述、列人工 review 重点、检查遗漏文件。
  • 上线阶段:整理回归点、灰度注意事项和回滚风险。
  • 复盘阶段:把排障路径、测试命令和经验写进 Rules、Skills、FAQ 或项目文档。

Google DORA 的 生成式 AI 软件开发研究 有个值得警惕的观察:AI 使用和文档质量、代码质量、code review 速度提升相关,但交付稳定性可能下降。一个可能原因是 AI 让代码产出变快以后,改动批次变大,如果小批量交付、测试、review、发布控制没有跟上,整体链路反而更容易失稳。

BVP 整理的 Shopify AI-first engineering 案例 也能看到类似思路。大团队不会只采购 AI Coding 工具,还会建设 LLM proxy、MCP、prompt library、Hack Days、自动化测试和人工 PR review。工具只是入口,真正的收益来自工程体系一起调整。

更合理的看法是把 Cursor 当成一种工程生产资料。它能显著提高个人局部效率,但更大的价值在于:让任务更清楚,让上下文更干净,让复杂修改更可验证,让团队经验能沉淀下来。

Cursor 用得好,关键习惯是:先判断任务是否真的需要代码上下文,再选择合适模型和模式;先让 Cursor 理解和计划,再让它执行;先控制上下文,再追求长任务;最后把有效经验写进规则、技能、文档和 review 流程里。

这样用,AI Coding 才会从「写代码更快」走向「工程链路更稳」。