Skip to content

如何阻止 Cursor Agent 未经批准自动修改代码

问题

Cursor Agent 在运行时会主动修改代码文件,有时会改动与当前任务无关的区域,甚至同时修改多个项目的文件。即使关闭了 Auto-Run Mode(YOLO 模式),代码依然会被自动修改,找不到"每次修改前请求批准"的设置。

解决方案

关键认知:Auto-Run 不控制代码编辑权限

很多用户误以为关闭 Auto-Run(自动运行)就能阻止代码被自动修改——但实际上:

Auto-Run Mode 只控制 Agent 是否在执行终端命令(如 npm installgit commit)前询问。它不影响代码文件的读写行为。

要控制代码编辑权限,需要使用以下方法:


方法一:使用 Custom Mode(推荐)

这是最精细的权限控制方式:

  1. 打开 Cursor 设置(Ctrl+,)→ ChatCustom Modes (BETA)
  2. 创建一个新模式,名称如"审批模式"
  3. 在权限配置中:
    • Search:✅ 启用
    • Edit:❌ 禁用
    • Terminal:❌ 禁用(或仅读取命令)

禁用 Edit 后,Agent 只能建议修改,你需要手动接受或拒绝每一处变更。


方法二:切换为 Ask Mode(只读建议)

在 Chat 面板顶部,将模式从 Agent 切换为 Ask

  • Ask Mode:AI 只分析代码、给出建议,不直接修改任何文件
  • 适合需要先理解 AI 的意图,再手动决定是否执行

注意:社区有反映 Ask Mode 下仍可能发生自动编辑(属于已知 bug),目前自定义模式禁用 Edit 是更可靠的方案。


方法三:通过 Rules 或 Memory 固化审批要求

.cursor/rules/ 中创建规则文件,或在 Settings → Rules & Memories 中添加:

Every time you are about to edit a file, first describe what you plan to change and wait for my approval before proceeding.

将此规则设为"Always apply",AI 每次修改前会先描述计划,给你审批的机会。


方法四:Manual Mode 限定编辑范围

在 Chat 模式选择 Manual,Agent 只被允许编辑你当前在编辑器中选中(高亮)的文件或代码块,不会主动扩散到其他文件。