Skip to main content

自动批准操作

⚠️ 安全警告: 自动批准设置会绕过确认提示,直接授予 Roo 访问您系统的权限。这可能导致数据丢失、文件损坏,甚至更严重的后果。命令行访问尤其危险,因为它可能执行有害操作,损害系统安全或危及系统完整性。仅对您完全信任的操作启用自动批准。

自动批准设置通过消除重复的确认提示来加速您的工作流,但会显著增加安全风险。



快速开始指南

  1. 打开聊天输入框旁的自动批准下拉菜单
  2. 点击下拉菜单右下角的“启用”以激活或暂停自动批准
  3. 使用“全部/无”芯片批量选择或清除权限,或选择单个图块;您可以在“无”权限被选中的情况下保持“启用”状态
  4. (可选)点击齿轮图标打开设置以进行更细致的权限控制

键盘快捷键

默认快捷键: Cmd+Alt+A(macOS)/ Ctrl+Alt+A(Windows/Linux)

无需使用鼠标即可快速切换自动批准的开启/关闭状态。此快捷键切换全局“启用”状态,同时保留您的权限选择。

自定义快捷键:

  1. 打开 VS Code 命令面板(Cmd+Shift+P / Ctrl+Shift+P
  2. 搜索“Preferences: Open Keyboard Shortcuts”
  3. 搜索命令名称(因语言而异):
    • 英文:“Toggle Auto-Approve”
    • 其他语言:查找本地化等效命令
  4. 点击命令旁的铅笔图标
  5. 按下您期望的键组合
  6. 按 Enter 保存

注意: 命令名称会以您 VS Code 界面的语言显示。如果您使用非英语环境,命令将被翻译为相应语言。


自动批准下拉菜单

自动批准下拉菜单,包含全部/无芯片和全局启用切换(右下角)

下拉菜单显示权限图块的网格。控制项:

  • 启用(右下角):自动批准的主暂停/恢复开关
  • 全部 / 无(左下角):批量选择或清除权限,不改变启用状态
  • 权限图块:选择哪些操作可以无需提示自动运行;仅当启用关闭时图块才会禁用。某些权限仅在您的模型支持该功能时生效。

可用权限

权限作用风险等级
读取文件和目录允许 Roo 无需询问即可访问文件中等
编辑文件允许 Roo 无需询问即可修改文件
执行已批准的命令自动运行白名单中的终端命令
使用浏览器允许无头浏览器交互中等
使用 MCP 服务器允许 Roo 使用配置的 MCP 服务中等-高
切换模式自动在不同 Roo 模式间切换
创建和完成子任务无需确认即可管理子任务
回答后续问题为后续问题选择默认答案

全局启用开关

自动批准下拉菜单;启用在右下角,全部/无芯片在左下角

工作原理:

  • 启用 — 自动批准对您选择的权限运行
  • 关闭 — 暂停所有自动批准;您的权限选择保持不变
  • 全部 / 无 — 在启用状态不变的情况下批量调整选择
  • 注意:仅当启用开启且至少选择了一个权限时,自动批准才会运行

何时切换:

  • 敏感或生产工作 → 关闭
  • 快速迭代和重构 → 开启
  • 在探索和编辑任务间切换

高级设置面板

设置面板提供带有重要安全上下文的详细控制:

允许 Roo 自动执行操作而无需批准。仅在您完全信任 AI 并了解相关安全风险时启用这些设置。

访问这些设置的方法:

  1. 点击下拉菜单右上角的
  2. 导航到自动批准设置

设置面板镜像了相同的权限,同时提供额外的上下文和保护。

重要行为

  • 站点外读写需要相应的站点外标志以及基础权限。
  • MCP 工具的自动批准需要全局“始终批准 MCP 工具”和每个工具的“始终允许”。资源访问仅遵循全局设置。
  • 仅当启用模式切换权限时,模式切换才会自动批准(涵盖切换到其他模式和创建新模式)。
  • 自动写入后,Roo 使用设置 → 上下文管理 → 诊断中的全局写入延迟控制等待。参见 诊断集成

读取操作

读取操作(风险:中等)
仅读操作设置

设置: “始终批准仅读操作”

描述: “启用后,Roo 将自动查看目录内容和读取文件,无需您点击批准按钮。”

附加选项:

  • 包含工作区外文件: 允许 Roo 读取当前工作区目录外的文件

风险等级: 中等

虽然此设置仅允许读取文件(不修改),但可能暴露敏感数据。仍推荐作为大多数用户的起点,但需注意 Roo 可访问的文件。

工作区边界保护

默认情况下,Roo 只能读取当前工作区目录内的文件。“包含工作区外文件”选项将读取访问扩展到工作区边界之外。考虑安全影响:

  • 默认(未勾选): Roo 只能读取项目目录中的文件
  • 启用: Roo 可以读取您系统上可访问的任何文件
  • 建议: 除非特别需要 Roo 访问外部文件,否则保持禁用

写入操作

写入操作(风险:高)
写入操作设置与延迟滑块

设置: “始终批准写入操作”

描述: “自动创建和编辑文件,无需批准”

写入延迟控制: 在设置 → 上下文管理 → 诊断中配置。参见 诊断集成

附加选项:

  • 包含工作区外文件: 允许 Roo 修改当前工作区目录外的文件
  • 包含受保护文件: 允许 Roo 修改 .roo/.rooignore 目录保护的文件

风险等级:

此设置允许 Roo 无需确认即可修改文件。延迟计时器至关重要:

  • 较高值(2000ms+):推荐用于诊断耗时较长的复杂项目
  • 默认值(1000ms):适用于大多数活跃诊断的项目
  • 0ms:无延迟 — 在速度关键时使用
  • 较低值:仅在受控环境中使用

安全边界

写入操作设置包括两个重要的安全控制:

  1. 工作区边界保护: 默认情况下,Roo 只能修改当前工作区内的文件。启用“包含工作区外文件”需格外谨慎。

  2. 受保护文件: Roo 阻止修改:

    • .roo/ 目录中的文件
    • .rooignore 文件

    “包含受保护文件”选项绕过此保护 — 仅在特别需要修改这些文件时使用。

写入延迟与问题窗格集成

VSCode 问题窗格显示诊断信息

VSCode 问题窗格,Roo 在写入延迟期间检查

启用文件写入的自动批准后,Roo 使用设置 → 上下文管理 → 诊断中的全局写入延迟。延迟计时器与 VSCode 的问题窗格配合工作:

  1. Roo 对您的文件进行更改
  2. VSCode 的诊断工具分析更改
  3. 问题窗格更新错误或警告
  4. Roo 在继续之前注意到这些问题

这就像人类开发者在更改代码后暂停检查错误。您可以根据以下因素调整延迟时间:

  • 项目复杂度
  • 语言服务器速度
  • 错误检测对您工作流的重要性

浏览器操作

浏览器操作(风险:中等)

设置: “始终批准浏览器操作”

描述: “自动执行浏览器操作,无需批准”

注意: “仅当模型支持计算机使用时适用”

风险等级: 中等

允许 Roo 无需确认即可控制无头浏览器。这可能包括:

  • 打开网站
  • 导航页面
  • 与网页元素交互

考虑允许自动浏览器访问的安全影响。

MCP 工具

MCP 工具(风险:中等-高)

设置: “始终批准 MCP 工具”

描述: “启用 MCP 服务器视图中单个 MCP 工具的自动批准(需要此设置和工具的单独‘始终允许’复选框)”

风险等级: 中等-高(取决于配置的 MCP 工具)

此设置需要两步权限流程以确保安全:

  1. 启用此全局设置 — 作为所有 MCP 工具自动批准的主开关
  2. 启用单独工具权限 — 在 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-字符串的子 shell、zsh 进程替换 =(...)、zsh 带 e:...: 的 glob 限定符),也不会自动批准。

配置

  • UI(推荐):设置 → 自动批准 → 执行 → 使用“允许的命令”和“拒绝的命令”编辑器添加/移除前缀。
  • 设置 JSON(替代方案):
{
"roo-cline.allowedCommands": ["git", "npm run", "echo"],
"roo-cline.deniedCommands": ["git push", "npm publish", "rm", "sudo", "*"]
}

同时定义两个列表时,应用最长前缀规则;如果拒绝更具体或同等,则拒绝优先。

安全前缀示例:

  • git
  • npm run
  • python -m pytest
  • cargo test
  • go test
  • docker ps
  • ls
  • cat

安全提示:前缀要具体。不要允许所有 python 命令,而是限制为 python -m pytest 仅用于测试执行。

后续问题

后续问题(风险:低)
后续问题操作设置与超时滑块

设置: 始终默认后续问题的答案

描述: 在可配置的超时后自动选择第一个 AI 建议答案,以加速您的工作流,让 Roo 在无需手动干预的情况下继续。

超时滑块: 使用滑块将等待时间设置为 1 到 300 秒(默认:60 秒)

工作原理:

  • 超时后,第一个建议自动被选择
  • 任何用户操作(选择不同建议、编辑建议或输入自己的回答)都会取消自动选择

覆盖选项: 您可以通过以下方式随时取消自动选择:

  • 点击不同的建议
  • 编辑任何建议
  • 输入您自己的回答

风险等级:

用例:

  • 过夜运行,您希望 Roo 继续工作
  • 重复任务,其中默认建议通常正确
  • 交互不关键的测试工作流