Lzh on GitHub

自动批准操作

⚠️ 安全警告:自动批准设置会绕过确认提示,使 Roo 直接访问您的系统。这可能导致数据丢失、文件损坏或更糟。命令行访问尤其危险,因为它可能执行有害操作,从而损坏您的系统或危及安全。仅在您完全信任的操作上启用自动批准。

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

快速入门指南

  1. 点击聊天输入上方的 自动批准工具栏
  2. 选择 Roo 可以无需许可执行哪些操作
  3. 使用主开关(最左边的复选框)快速启用/禁用所有权限

自动批准工具栏

显示已启用权限的提示框和自动批准工具栏

点击工具栏可展开它并配置单个权限:

提示文本框和包含所有选项的展开工具栏

API 请求限制

工具栏包含一个输入字段,用于设置 Roo 可以自动发出的最大 API 请求数:

  • 目的:防止失控的 API 使用和意外成本
  • 默认:无限制(空字段)
  • 建议:根据您的任务复杂性设置一个合理的限制(例如,对于大多数任务为 50-100)
  • 工作方式:一旦超过限制,Roo 将暂停并显示一个对话框,允许您重置计数器并继续

此安全功能在以下情况下特别有用:

  • 使用昂贵的 API 模型时
  • 测试新工作流时
  • 让 Roo 自主工作较长时间时

可用权限

权限作用风险级别
读取文件和目录允许 Roo 在不询问的情况下访问文件
编辑文件允许 Roo 在不询问的情况下修改文件
执行批准的命令自动运行白名单中的终端命令
使用浏览器允许无头浏览器交互
使用 MCP 服务器允许 Roo 使用已配置的 MCP 服务中-高
切换模式自动在 Roo 模式之间切换
创建和完成子任务无需确认即可管理子任务
重试失败的请求自动重试失败的 API 请求
回答后续问题为后续问题选择默认答案
更新待办事项列表自动更新任务进度

用于快速控制的主开关

主开关(复选框)一次性控制所有自动批准权限

工作方式:

  • 选中:激活所有已配置的自动批准权限
  • 未选中:暂时禁用所有自动批准,而不更改单个设置
  • 重要提示:切换时会保留单个权限设置
  • 注意:当自动批准菜单展开时,主开关暂时禁用

这意味着您可以:

  1. 一次性配置您首选的权限
  2. 使用主开关快速启用或禁用所有权限
  3. 您的配置将保持完整以备下次使用

在以下情况下使用主开关:

  • 在敏感代码中工作时(关闭)
  • 进行快速开发时(打开)
  • 在探索和编辑任务之间切换时
  • 暂时暂停自动化而不丢失设置时

高级设置面板

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

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

要访问这些设置:

  1. 点击右上角的齿轮图标
  2. 导航到自动批准设置

完整的设置面板视图

读取操作

读取操作(风险:中)

  • 设置:“始终批准只读操作”
  • 描述:“启用后,Roo 将自动查看目录内容和读取文件,而无需您点击‘批准’按钮。”
  • 附加选项:“包含工作区外的文件”:允许 Roo 读取当前工作区目录之外的文件
  • 风险级别:中

虽然此设置仅允许读取文件(不修改),但它可能会暴露敏感数据。对于大多数用户来说,它仍然是推荐的起点,但请注意 Roo 可以访问哪些文件。

工作区边界保护

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

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

写入操作

写入操作(风险:高)

  • 设置:“始终批准写入操作”
  • 描述:“无需批准即可自动创建和编辑文件”
  • 延迟滑块:“写入后延迟,以允许诊断检测潜在问题”(默认值:1000 毫秒/1 秒)
  • 附加选项
    • “包含工作区外的文件”:允许 Roo 修改当前工作区目录之外的文件
    • “包含受保护的文件”:允许 Roo 修改通常受 .rooignore.roo/ 目录保护的文件
  • 风险级别:高

此设置允许 Roo 在没有确认的情况下修改您的文件。延迟计时器至关重要:

  • 较高的值(2000 毫秒以上):建议用于诊断时间较长的复杂项目
  • 默认值(1000 毫秒):适用于大多数具有活动诊断的项目
  • 0 毫秒:无延迟 - 在速度至关重要时使用
  • 较低的值:仅在受控环境中使用

安全边界

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

  1. 工作区边界保护:默认情况下,Roo 只能修改当前工作区中的文件。启用“包含工作区外的文件”时请务必格外小心。
  2. 受保护的文件:Roo 具有针对敏感配置文件的内置保护,以防止意外修改。这包括:
  • .roo/ 目录中的文件
  • .rooignore 中列出的文件
  • Roo 自己的配置文件(当它们包含 Roo 特定设置时,例如 package.jsontsconfig.json 等)

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

写入延迟和问题面板集成

Roo 在写入延迟期间检查的 VS Code 问题面板

当您为写入文件启用自动批准时,延迟计时器会与 VS Code 的问题面板协同工作:

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

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

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

浏览器操作

浏览器操作(风险:中)

  • 设置:“始终批准浏览器操作”
  • 描述:“无需批准即可自动执行浏览器操作”
  • 注意:“仅在模型支持计算机使用时适用”
  • 风险级别:中

允许 Roo 在没有确认的情况下控制无头浏览器。这可能包括:

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

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

API 请求

API 请求(风险:低)

  • 设置:“始终重试失败的 API 请求”
  • 描述:“当服务器返回错误响应时,自动重试失败的 API 请求”
  • 延迟滑块:“重试请求前的延迟”(默认值:10 秒)
  • 风险级别:低

此设置会在 API 调用失败时自动重试。重试机制使用指数退避:

  • 初始延迟:由滑块设置(默认值:10 秒)
  • 退避公式min(baseDelay * 2^retryAttempt, 600)
  • 最大延迟:600 秒(10 分钟)

示例:基本延迟为 10 秒的重试序列:

  • 第 1 次重试:10 秒
  • 第 2 次重试:20 秒
  • 第 3 次重试:40 秒
  • 第 4 次重试:80 秒
  • 第 5 次重试:160 秒
  • 第 6 次重试:320 秒
  • 第 7 次重试及以后:600 秒(封顶)

这种指数退避有助于防止 API 过载,同时仍能从瞬态错误中恢复。

MCP 工具

MCP 工具(风险:中-高)

  • 设置:“始终批准 MCP 工具”
  • 描述:“在 MCP 服务器视图中启用单个 MCP 工具的自动批准(需要此设置和工具的单独‘始终允许’复选框)”
  • 风险级别:中-高(取决于已配置的 MCP 工具)

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

  1. 启用此全局设置 - 作为所有 MCP 工具自动批准的主开关
  2. 启用单个工具权限 - 在 MCP 服务器视图中,选中特定工具的“始终允许”复选框

重要提示:两个权限都必须处于活动状态,工具才能自动批准。这种双重权限系统可确保您对哪些 MCP 工具可以无需确认即可执行保持精细控制。

权限存储:您的 MCP 工具权限会保存,并在您下次使用 Roo Code 时被记住。

示例工作流

  • 在设置中启用“始终批准 MCP 工具”
  • 导航到 MCP 服务器视图
  • 找到特定工具(例如,文件系统操作)
  • 选中其“始终允许”复选框
  • 只有这样,该特定工具才会自动批准

模式切换

模式切换(风险:低)

  • 设置:“始终批准模式切换”
  • 描述:“无需批准即可自动在不同模式之间切换”
  • 风险级别:低

允许 Roo 在不同模式(代码、架构师等)之间切换,无需请求许可。这主要影响 AI 的行为,而不是系统访问。

子任务

子任务(风险:低)

  • 设置:“始终批准子任务的创建和完成”
  • 描述:“允许自动创建和完成子任务,无需批准”
  • 风险级别:低

使 Roo 能够自动创建和完成子任务。这与工作流组织有关,而不是系统访问。

命令执行

命令执行(风险:高)

  • 设置:“始终批准允许的执行操作”
  • 描述:“无需批准即可自动执行允许的终端命令”
  • 命令管理:“启用‘始终批准执行操作’时可以自动执行的命令前缀。添加 * 以允许所有命令(谨慎使用)。”
  • 风险级别:高

此设置允许终端命令执行,并带有控制功能。虽然有风险,但白名单功能限制了可以运行的命令。重要的安全功能:

  • 白名单特定命令前缀(推荐)
  • 切勿在生产环境或处理敏感数据时使用 * 通配符
  • 考虑每个允许命令的安全影响
  • 始终验证与外部系统交互的命令

界面元素:

  • 输入命令前缀的文本字段
  • “添加”按钮以添加新前缀
  • 带有 X 的可点击命令按钮以删除它们

常见的白名单示例:

  • git - 版本控制操作
  • npm run - 运行 package.json 脚本
  • python -m pytest - 运行 Python 测试
  • cargo test - 运行 Rust 测试
  • go test - 运行 Go 测试
  • docker ps - 列出 Docker 容器
  • ls - 列出目录内容
  • cat - 显示文件内容

安全提示:使用特定的前缀。与其允许所有 python 命令,不如限制为 python -m pytest 以仅用于测试执行。

后续问题

后续问题(风险:低)

  • 设置:“始终为后续问题选择默认答案”
  • 描述:在可配置的超时后,自动为后续问题选择第一个 AI 建议的答案。这使 Roo 无需手动干预即可继续,从而加快您的工作流程。
  • 可视倒计时:启用后,第一个建议按钮上会显示一个倒计时计时器,显示自动选择前的剩余时间。计时器以圆形进度指示器显示,随着时间的推移而耗尽。
  • 超时滑块:使用滑块设置等待时间,范围为 1 到 300 秒(默认值:60 秒)

工作方式:

  • 倒计时从您配置的时间开始(默认值:60 秒)
  • 当计时器达到零时,第一个建议会被自动选择
  • 您可以通过点击计时器来暂停倒计时

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

  • 点击不同的建议
  • 编辑任何建议
  • 输入您自己的响应
  • 点击计时器以暂停它

风险级别:低

用例:

  • 您希望 Roo 继续工作的隔夜运行
  • 默认建议通常正确的重复性任务
  • 交互不重要的测试工作流

更新待办事项列表

更新待办事项列表(风险:低)

  • 设置:“始终批准待办事项列表更新”
  • 描述:“无需批准即可自动更新待办事项列表”
  • 风险级别:低

此设置允许 Roo 在工作会话期间自动更新任务进度和待办事项列表。这包括:

  • 将任务标记为已完成
  • 添加新发现的任务
  • 更新任务状态(待处理、进行中、已完成)
  • 重新组织任务优先级

优点

  • 保持实时任务进度可见性
  • 减少多步工作流中的中断
  • 使项目状态准确反映
  • 帮助跟踪复杂的任务依赖关系

用例

  • 长时间运行的开发会话
  • 多步重构项目
  • 复杂的调试工作流
  • 具有许多子任务的功能实现

当与“子任务”权限结合使用时,这尤其有用,因为它允许 Roo 在没有持续批准请求的情况下维护项目的完整视图。