自动批准操作
⚠️ 安全警告: 自动批准设置会绕过确认提示,让 Roo 直接访问您的系统。这可能导致数据丢失、文件损坏或更严重的问题。命令行访问尤其危险,因为它可能执行有害操作,损坏您的系统或危及安全。仅对您完全信任的操作启用自动批准。
自动批准设置通过消除重复的确认提示来加速您的工作流程,但它们会显著增加安全风险。
快速入门指南
- 打开聊天输入框旁边的自动批准下拉菜单
- 切换下拉菜单右下角的"启用"以激活或暂停自动批准
- 使用全部/无芯片批量选择或清除权限,或选择单个图块;您可以在选择"无"时保持启用状态
- (可选)点击齿轮图标打开设置以进行更深入的按权限控制
键盘快捷键
默认快捷键: Cmd+Alt+A (macOS) / Ctrl+Alt+A (Windows/Linux)
无需使用鼠标即可快速切换自动批准的开启/关闭状态。此快捷键会切换全局"启用"状态,同时保留您的权限选择。
自定义快捷键:
- 打开 VS Code 命令面板 (
Cmd+Shift+P/Ctrl+Shift+P) - 搜索"Preferences: Open Keyboard Shortcuts"
- 搜索命令名称(因语言而异):
- 英语:"Toggle Auto-Approve"
- 其他语言:查找本地化等效项
- 点击命令旁边的铅笔图标
- 按下您想要的组合键
- 按 Enter 保存
注意: 命令名称会出现在您的 VS Code 界面语言中。如果您使用非英语区域设置,命令将相应地被翻译。
自动批准下拉菜单
下拉菜单显示权限图块的网格。控制项:
- 启用(右下角):自动批准的主暂停/恢复
- 全部 / 无(左下角):批量选择或清除权限而不更改启用状态
- 权限图块:选择哪些操作可以在没有提示的情况下运行;图块仅在禁用时才失效。某些权限仅在您的模型支持该功能时才生效。
可用权限
| 权限 | 作用 | 风险等级 |
|---|---|---|
| 读取文件和目录 | 让 Roo 在不询问的情况下访问文件 | 中等 |
| 编辑文件 | 让 Roo 在不询问的情况下修改文件 | 高 |
| 执行已批准的命令 | 自动运行白名单终端命令 | 高 |
| 使用浏览器 | 允许无头浏览器交互 | 中等 |
| 使用 MCP 服务器 | 让 Roo 使用配置的 MCP 服务 | 中等-高 |
| 切换模式 | 自动在 Roo 模式之间切换 | 低 |
| 创建和完成子任务 | 无需确认即可管理子任务 | 低 |
| 回答后续问题 | 为后续问题选择默认答案 | 低 |
全局启用开关
工作原理:
- 启用 - 自动批准为您选择的权限运行
- 禁用 - 暂停所有自动批准;您的按权限选择保持不变
- 全部 / 无 - 在启用状态不变的情况下批量调整选择
- 注意:仅当启用开启且至少选择了一个权限时,自动批准才会运行。
切换时机:
- 敏感或生产工作 → 关闭
- 快速迭代和重构 → 开启
- 在探索和编辑任务之间切换
高级设置面板
设置面板提供详细的控制和重要的安全上下文:
允许 Roo 在不需要批准的情况下自动执行操作。仅当您完全信任 AI 并了解相关安全风险时才启用这些设置。
要访问这些设置:
- 点击下拉菜单右上角的
- 导航到自动批准设置
设置面板镜像相同的权限,并提供额外的上下文和保护措施。
重要行为
- 工作区外的读/写需要相应的工作区外标志以及基础权限。
- MCP 工具的自动批准需要全局"始终批准 MCP 工具"和每个工具的"始终允许"。资源访问仅遵循全局设置。
- 模式切换仅在启用模式切换权限时自动批准(涵盖切换到另一个模式和创建新模式)。
- 自动写入后,Roo 会使用设置 → 上下文管理 → 诊断下的全局写入延迟控制进行等待。
读取操作

设置: "始终批准只读操作"
描述: "启用后,Roo 将自动查看目录内容和读取文件,而无需您点击批准按钮。"
附加选项:
- 包含工作区外的文件: 允许 Roo 读取当前工作区目录外的文件
风险等级: 中等
虽然此设置仅允许读取文件(不修改它们),但它可能暴露敏感数据。仍建议作为大多数用户的起点,但请注意 Roo 可以访问哪些文件。
工作区边界保护
默认情况下,Roo 只能读取当前工作区目录中的文件。"包含工作区外的文件"选项将读取访问权限扩展到工作区边界之外。考虑安全影响:
- 默认(未选中): Roo 只能读取项目目录中的文件
- 启用: Roo 可以读取您有访问权限的系统上的任何文件
- 建议: 除非您特别需要 Roo 访问外部文件,否则保持禁用状态
写入操作

设置: "始终批准写入操作"
描述: "无需批准即可自动创建和编辑文件"
写入延迟控制: 在设置 → 上下文管理 → 诊断下配置。请参见 诊断集成。
附加选项:
- 包含工作区外的文件: 允许 Roo 修改当前工作区目录外的文件
- 包含受保护的文件: 允许 Roo 修改由
.roo/和.rooignore目录保护的文件
风险等级: 高
此设置允许 Roo 在没有确认的情况下修改您的文件。延迟计时器至关重要:
- 较高值(2000ms+):推荐用于诊断需要更长时间的复杂项目
- 默认(1000ms):适用于大多数具有活动诊断的项目
- 0ms:无延迟 - 在速度是关键时使用
- 较低值:仅在受控环境中使用
安全边界
写入操作设置包含两个重要的安全控制:
- 工作区边界保护: 默认情况下,Roo 只能修改当前工作区内的文件。启用"包含工作区外的文件"时要极度谨慎。
title: "自动批准操作" description: "了解如何配置 Roo 的自动批准设置以提高工作效率,同时管理安全风险。" linkTitle: "自动批准操作" tags: ["auto-approval", "security", "settings", "permissions", "workflow"]
-
受保护文件:Roo 阻止修改以下文件:
.roo/目录中的文件.rooignore文件
"包含受保护文件"选项可以绕过此保护 - 仅在您确实需要修改这些文件时使用。
写入延迟和问题窗格集成

VSCode 问题窗格,Roo 在写入延迟期间会检查此窗格
当您启用文件写入的自动批准时,Roo 会使用设置 → 上下文管理 → 诊断下配置的全局写入延迟。延迟计时器与 VSCode 的问题窗格配合工作:
- Roo 对您的文件进行更改
- VSCode 的诊断工具分析更改
- 问题窗格更新显示任何错误或警告
- Roo 在继续之前注意到这些问题
这就像人类开发者在更改代码后暂停检查错误一样。您可以根据以下因素调整延迟时间:
- 项目复杂性
- 语言服务器速度
- 错误检测对您工作流程的重要性
浏览器操作
设置: "始终批准浏览器操作"
描述: "自动执行浏览器操作而无需要求批准"
注意: "仅在模型支持计算机使用时适用"
风险等级: 中等
允许 Roo 在无需确认的情况下控制无头浏览器。这可能包括:
- 打开网站
- 导航页面
- 与网页元素交互
请考虑允许自动化浏览器访问的安全影响。
MCP 工具
设置: "始终批准 MCP 工具"
描述: "在 MCP 服务器视图中启用单个 MCP 工具的自动批准(需要此设置和工具单独的'始终允许'复选框)"
风险等级: 中高(取决于配置的 MCP 工具)
此设置需要两步权限流程以确保安全:
- 启用此全局设置 - 作为所有 MCP 工具自动批准的主开关
- 启用单个工具权限 - 在 MCP 服务器视图中,为特定工具勾选"始终允许"
重要: 工具要自动批准,必须激活两个权限。此双重权限系统确保您对哪些 MCP 工具可以在无需确认的情况下执行保持细粒度控制。资源检索(access_mcp_resource)仅遵循全局设置。
权限存储: 您的 MCP 工具权限会被保存,下次使用 Roo Code 时会记住。
示例工作流程:
- 在设置中启用"始终批准 MCP 工具"
- 导航到 MCP 服务器视图
- 找到特定工具(例如,文件系统操作)
- 勾选其"始终允许"复选框
- 只有这样该特定工具才会自动批准
模式切换
设置: "始终批准模式切换"
描述: "在不同模式之间自动切换而无需要求批准"
风险等级: 低
允许 Roo 在不同模式(代码、架构师等)之间切换而无需请求权限。这主要影响 AI 的行为而不是系统访问。启用此权限时,自动批准还涵盖模式切换和创建新模式。
子任务
设置: "始终批准子任务的创建和完成"
描述: "允许创建和完成子任务而无需要求批准"
风险等级: 低
启用 Roo 自动创建和完成子任务。这与工作流程组织相关,而不是系统访问。
命令执行

设置: "始终批准允许的执行操作"
描述: "自动执行允许的终端命令而无需要求批准"
命令管理: "启用'始终批准执行操作'时可以自动执行的命令前缀。添加 * 以允许所有命令(谨慎使用)。"
风险等级: 高
此设置允许终端命令执行并带有控制。使用白名单和黑名单一起进行深度防御。
- 优先级:当拒绝规则的匹配前缀等于或比允许匹配更具体时,拒绝规则优先(最长前缀获胜)。
- 默认拒绝的高风险命令:
- Unix/macOS: rm, sudo, dd, mkfs, diskutil eraseDisk, shutdown, reboot, chmod -R, chown -R, kill -9, curl | sh, wget | sh
- Git/Package: git push, npm publish, yarn publish, pnpm publish
- Windows/PowerShell: Remove-Item, Format-Volume, Stop-Process, shutdown, Set-ExecutionPolicy
- 生产模板:
- 用"*"拒绝所有,然后允许特定安全前缀如"git"、"npm run"、"echo"。
- 危险替换保护:即使允许的前缀,如果命令包含危险的参数或进程替换(例如,
${var@P}、插入到 here-strings 中的子shell、zsh 进程替换=(...)、带e:...:的 zsh glob 限定符),也不会自动批准。
配置
- UI(推荐):设置 → 自动批准 → 执行 → 使用"允许的命令"和"拒绝的命令"编辑器添加/移除前缀。
- Settings JSON(替代方案):
{
"roo-cline.allowedCommands": ["git", "npm run", "echo"],
"roo-cline.deniedCommands": ["git push", "npm publish", "rm", "sudo", "*"]
}
当定义了两个列表时,应用最长前缀规则;如果拒绝规则等于或更具体,则获胜。
安全前缀示例:
gitnpm runpython -m pytestcargo testgo testdocker pslscat
安全提示:使用具体的前缀。而不是允许所有python命令,仅限制为python -m pytest用于测试执行。
后续问题

设置: 始终默认回答后续问题
描述: 在可配置的超时后自动选择 AI 为后续问题建议的第一个答案。这通过让 Roo 在无需手动干预的情况下继续进行来加快您的工作流程。
超时滑块: 使用滑块设置 1 到 300 秒的等待时间(默认:60 秒)
工作原理:
- 在配置的超时后,第一个建议会自动选择
- 任何用户操作(选择不同的建议、编辑或输入自己的响应)都会取消自动选择
覆盖选项: 您可以随时通过以下方式取消自动选择:
- 点击不同的建议
- 编辑任何建议
- 输入自己的响应
风险等级: 低
使用场景:
- 您希望 Roo 继续工作的夜间运行
- 默认建议通常正确的重复性任务
- 交互不关键的测试工作流程