Appearance
如何阻止 Cursor Agent 未经批准自动修改代码
问题
Cursor Agent 在运行时会主动修改代码文件,有时会改动与当前任务无关的区域,甚至同时修改多个项目的文件。即使关闭了 Auto-Run Mode(YOLO 模式),代码依然会被自动修改,找不到"每次修改前请求批准"的设置。
解决方案
关键认知:Auto-Run 不控制代码编辑权限
很多用户误以为关闭 Auto-Run(自动运行)就能阻止代码被自动修改——但实际上:
Auto-Run Mode 只控制 Agent 是否在执行终端命令(如
npm install、git commit)前询问。它不影响代码文件的读写行为。
要控制代码编辑权限,需要使用以下方法:
方法一:使用 Custom Mode(推荐)
这是最精细的权限控制方式:
- 打开 Cursor 设置(
Ctrl+,)→ Chat → Custom Modes (BETA) - 创建一个新模式,名称如"审批模式"
- 在权限配置中:
- 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 只被允许编辑你当前在编辑器中选中(高亮)的文件或代码块,不会主动扩散到其他文件。