Appearance
三种模式选择
Cursor 的核心交互分三种模式:Ask、Edit 和 Agent。选对模式是提高效率最直接的方式——不是因为有对错,而是因为用错了会让你多绕一圈。
Ask 模式
Ask 是纯对话,不改文件。你可以在 Chat 面板(Cmd+L)里用,也可以在 Composer 面板里切到 Ask 模式。
适合:
- 你不确定方向,先想清楚再动手
- 你想理解现有代码的逻辑
- 你在比较两种方案的优劣
- 你想让 AI 解释一段报错的原因
几个典型问法:
这段代码用了什么设计模式?为什么要这样组织?
我想在这个 API 里加一个速率限制,有哪几种方案?
各自的优缺点是什么?
这个错误是什么意思:
"Cannot set headers after they are sent to the client"Ask 的价值在于它不会触发任何修改,你可以安全地探索。如果聊着聊着已经有明确结论了,再切换到 Edit 或 Agent 动手。
Edit 模式
Edit 模式用于精确修改一段已有代码。选中要改的代码,按 Cmd+K,然后描述你想要的结果。
适合:
- 你知道要改哪里,只是不想手动写
- 修改范围局限在几行到几十行
- 对现有代码做小幅调整,不涉及新建文件
- 重命名、重构、提取函数
几个典型用法:
把这个函数改成支持异步调用,并且加上 try/catch 错误处理。
把这个 if/else 链改成 switch,并且加上 default 处理。
给这个类加上 JSDoc 注释,描述每个参数和返回值。Edit 模式和 Ask 的关键区别是:Edit 会直接修改选中的代码,生成 diff 让你确认。选中范围越小,结果越可控。如果你对着整个文件用 Edit,AI 可能会做比你预期更多的改动。
Agent 模式
Agent 模式是让 AI 自主完成一个更完整的任务。它可以:
- 同时读取和修改多个文件
- 创建新文件、新目录
- 运行终端命令(如果你开放了权限)
- 在多步操作之间自己规划顺序
按 Cmd+I 打开,然后描述任务目标:
给这个 Express 应用加一个用户认证中间件,用 JWT。
登录接口 /auth/login,注册接口 /auth/register。
密码用 bcrypt 加密存储。
需要认证的路由加上中间件保护。Agent 会分析现有文件结构,决定要改哪些文件、加哪些文件,然后一步步执行。你能看到它的执行过程,也可以随时打断。
适合:
- 任务涉及多个文件联动
- 你能描述清楚目标,但不想逐文件操作
- 新建功能模块
- 搭项目骨架
Agent 模式的风险是改动范围比较大,出问题时可能涉及多个文件。所以描述任务时要足够具体,避免让 AI 自己猜测边界。
怎么选
| 场景 | 推荐模式 |
|---|---|
| 先想清楚方向再动手 | Ask |
| 理解一段现有代码的逻辑 | Ask |
| 读懂报错信息的原因 | Ask |
| 改一个函数的逻辑 | Edit(选中函数,Cmd+K) |
| 重构一个组件 | Edit 或 Agent |
| 重命名变量/提取方法 | Edit |
| 新增完整功能(跨文件) | Agent |
| 搭新项目骨架 | Agent |
| 修复 bug(范围已明确) | Edit(选中相关代码) |
| 修复 bug(不确定在哪) | Ask 先定位,再 Edit |
| 加测试用例 | Agent(生成多个文件)或 Edit(补一个文件里的用例) |
几个容易混淆的点
Ask 和 Chat 的关系
Chat 面板(Cmd+L)默认就是 Ask 模式。Composer(Cmd+I)里也有 Ask 选项,两者功能相同,只是位置不同。如果你只是想问问题,用 Chat 面板就够了。
Edit 和 Agent 的区别
Edit 只改选中的代码块,不会碰其他文件。Agent 有权限改任何文件,包括你没打开的文件。如果你只想改一个地方,用 Edit 风险更低。
Agent 能运行命令,要不要允许
Cursor 会在 Agent 尝试运行终端命令时弹出确认。如果你理解它要跑什么命令(比如 npm install、npm run build),可以允许。不熟悉的命令先看清楚再决定。
实际中的切换节奏
不需要每次都选对。一个常见的工作节奏是:
- 用 Ask 聊清楚思路,确认方向
- 小改动切到 Edit,选中代码直接改
- 较大的任务切到 Agent,描述目标让它自主完成
- Agent 完成后,用 Ask 验证它的实现思路是否符合预期
三种模式可以在同一个项目里随时切换。没有哪种模式"更高级",只有"更合适当前任务"。
下一步建议读 Rules 配置,把项目的编码规范、技术栈偏好、写作习惯沉淀成可复用的规则,让 AI 每次都按你的约定工作,而不是每次重新说。