| 1 | # 工具权限:询问、自动与 Yolo 模式 |
| 2 | |
| 3 | Reasonix 桌面端输入框下方的“询问 / 自动 / Yolo”控制的是工具权限审批方式。三种模式始终显示,可以直接切换,不必依赖快捷键或设置页。 |
| 4 | |
| 5 | 工具权限和“协作方式”是两条独立轴: |
| 6 | |
| 7 | - **协作方式与运行模式**决定 Reasonix 怎么推进任务,以及采用轻量、均衡还是交付优先倾向。 |
| 8 | - **工具权限**决定 Reasonix 调用受控工具时,是否需要你审批。 |
| 9 | |
| 10 | ## 快速对比 |
| 11 | |
| 12 | | 模式 | 行为 | 适合场景 | 不适合场景 | |
| 13 | | --- | --- | --- | --- | |
| 14 | | 询问 | 默认在写文件、跑命令等受控工具前请求批准。 | 不熟悉的仓库、高风险改动、生产相关操作、需要逐步确认的任务。 | 大量低风险重复操作,或你已经明确允许 Reasonix 连续执行。 | |
| 15 | | 自动 | 自动批准普通工具权限;显式 `ask` / `deny` 规则和计划确认仍生效。有界的新 project/reference 记忆可走安全 create-only 路径,其余记忆变更仍会询问。 | 日常读代码、改小问题、跑测试、可信工作区里的常规实现任务。 | 你希望每个写入或命令都人工确认的任务。 | |
| 16 | | Yolo | 跳过普通工具权限审批,让写文件和命令尽量连续执行;`deny` 规则、计划确认、ask 问题和强制审批仍不会被自动回答。 | 临时分支、可回滚工作区、已确认计划后的批量机械改动。 | 生产环境、敏感文件、删除/发布/推送等高风险操作,或需求边界不清时。 | |
| 17 | |
| 18 | ## 询问模式 |
| 19 | |
| 20 | 询问模式是最保守的工具权限模式。Reasonix 遇到需要审批的工具调用时,会弹出审批卡片,你可以选择允许一次、本会话允许、总是允许或拒绝。 |
| 21 | |
| 22 | 动态 Bash 都不能继承更宽的裸 `Bash`、前缀或 glob 规则。参数/算术展开、赋值、重定向、不含嵌套执行的 heredoc 与 glob 仍按普通模式 fallback;只有嵌套/间接执行在交互 Ask 与 Auto 中强制走人工审批。本会话与持久授权会把完全相同的整条命令保存为 `Bash=<literal>`。 |
| 23 | |
| 24 | ### 审批卡片快捷键 |
| 25 | |
| 26 | - `←` / `→` 循环切换高亮动作。 |
| 27 | - `Enter` 确认当前高亮的普通工具审批动作,默认高亮“允许一次”。 |
| 28 | - `1` / `2` / `3` / `4` 可以选择对应编号的普通工具审批动作。 |
| 29 | - 计划确认有三个直接动作:「开始执行 / 修改计划 / 暂不执行,退出计划模式」。桌面端点击一次或按对应数字键即可;CLI 可按对应数字键,或选中一行后按 `Enter`,并继续兼容使用 `n` / `Esc` 留在计划模式。退出操作会拒绝待处理计划并返回普通模式,不会启动执行回合。 |
| 30 | - 除 CLI 正在等待计划确认的情况外,`Esc` 停止当前任务。 |
| 31 | - 如果你用 `Tab` 聚焦到某个按钮,再按 `Enter` 会触发当前聚焦按钮本身,不会被高亮动作覆盖。 |
| 32 | |
| 33 | ### 建议使用场景 |
| 34 | |
| 35 | - 第一次让 Reasonix 处理某个仓库或目录。 |
| 36 | - 任务可能涉及删除文件、改配置、提交、发布、安装依赖或访问外部服务。 |
| 37 | - 你想观察 Reasonix 准备调用什么工具,再决定是否继续。 |
| 38 | - 你正在处理生产数据、密钥、隐私文件或不可轻易回滚的环境。 |
| 39 | |
| 40 | ### 注意事项 |
| 41 | |
| 42 | - 询问模式更安全,但会增加交互次数。 |
| 43 | - 询问不等于只读:批准普通 writer 后,写文件或命令仍会执行;已安装或明确授权的 MCP 不走逐调用审批。Sandbox 才是强制能力边界。 |
| 44 | - 审批卡片里的“本会话允许”和“总是允许”是权限规则,不是切换到自动模式。 |
| 45 | - 如果你已经确认任务范围很清楚,且操作都在可信工作区内,自动模式通常更顺手。 |
| 46 | |
| 47 | 无头 `reasonix run` 没有可以回答的审批卡,因此默认询问姿态会对 writer fallback |
| 48 | 和显式 `ask` 规则 fail closed,不会增加无法完成的确认,也不会静默放行。无人值守 |
| 49 | 自动化需要放行普通 writer 时,使用现有的 `--auto` / `-y`;不需要再学习额外的 |
| 50 | 安全设置。 |
| 51 | |
| 52 | ## 自动模式 |
| 53 | |
| 54 | 自动模式适合日常开发。它会把普通工具权限自动放行,减少反复点击审批;但它不是无限制执行。 |
| 55 | |
| 56 | 自动模式仍会遵守这些边界: |
| 57 | |
| 58 | - 显式 `deny` 规则仍然阻止对应工具或命令。 |
| 59 | - 显式 `ask` 规则仍然会弹出审批。 |
| 60 | - 计划模式的“开始执行”确认仍然需要你选择。 |
| 61 | - 全局、偏好、feedback、更新、重复、敏感或超长的 `remember`,以及所有 `forget` |
| 62 | 仍需要新鲜人工审批;Guardian/安全审查不能代替用户批准。新的、有界、非敏感 |
| 63 | project/reference 事实可被判定为 create-only 并免提示保存。 |
| 64 | - 嵌套或间接 Bash 即使处于获批计划执行窗口也需要人工审批,Guardian 与 hook allow 不能代替用户批准;普通展开、赋值、重定向和 glob 仍走 Auto 快速路径。 |
| 65 | - 用户安装或明确授权的 MCP 直接执行,不再受这套逐调用模式影响;显式 `deny`、Plan 和严格只读子会话边界仍然生效。 |
| 66 | - ask 问题仍然等待你回答,不会由自动模式代选。 |
| 67 | |
| 68 | ### 建议使用场景 |
| 69 | |
| 70 | - 普通代码阅读、搜索、编辑和测试。 |
| 71 | - 你信任当前工作区,且改动可以通过 Git 或测试回滚。 |
| 72 | - 目标模式下希望 Reasonix 连续推进,但仍保留显式规则和关键确认。 |
| 73 | - 计划模式已经确认方案,后续只是常规实现和验证。 |
| 74 | |
| 75 | ### 自动模式什么时候会询问 |
| 76 | |
| 77 | 自动模式是一种行为承诺,不是用户还要额外学习和配置的功能: |
| 78 | |
| 79 | > Auto 自动执行权限策略允许的操作;只有遇到新计划、产品取舍或其他真正属于用户的决定时才询问。 |
| 80 | |
| 81 | - 工作区读写、命令、源码/配置/工作流编辑、依赖变更、测试和外部操作都按现有权限策略执行,不再由 Auto Guard 额外按风险弹窗。 |
| 82 | - 因此,默认 Auto 下的 `git push`、发布或部署不会仅因属于外部操作而询问;用户配置的显式 `ask` / `deny`、sandbox、MCP 和工具专属权限仍然有效。 |
| 83 | - 初次建立普通任务计划保持快速路径;当已有未完成的结构化任务计划被改写时,独立 reviewer 会比较旧计划、新计划和用户任务。合理的实现细化自动继续。真正的产品、策略或范围选择会显示一张中性的计划决策卡,列出移除和新增的步骤;「采用新计划并继续」会继续执行,「不采用,告诉 Auto 如何调整」只展开内联意见框,不会立即提交决定。 |
| 84 | - 工具失败是执行可靠性信号,不是整个任务的权限边界。与失败操作无关的其他工作会直接继续,不经过 Auto Guard 确认或恢复 Reviewer;只有对同一精确失败操作的重试才进入有限恢复审查,真正的结构化计划选择仍是唯一会弹出用户决策卡的恢复路径。 |
| 85 | - 超时只会获得简短的失败路径提示,要求先检查当前状态和部分执行结果再重试;不会要求用户重置 Auto、切换模式或重启会话。 |
| 86 | - 失败后的诊断和恢复在固定的主机侧 Episode 预算内自动推进(无设置项):同一精确操作失败 3 次后只停止该操作;自最近一次真实进展后累计 6 次有效执行失败、累计 3 次 Reviewer 拒绝、或已停止操作被重复提交 3 次时,会停止后续 mutation/verification。改参数、命令或目标不能重置 Episode 总数。成功的 mutation 或主机识别的 verification 会清空无进展预算;普通诊断读取不会。 |
| 87 | - Episode 硬停止后,主机确认的只读诊断仍可使用,后续 mutation 和 verification 会被隔离。随后 Auto 获得一次只总结的收尾机会,并以冷静的 `recovery_paused` 状态结束(不是发送失败)。下一条用户消息会自动开启新 Episode。 |
| 88 | - “换个方案”、计划“开始执行”、真实的工具权限模式切换,以及新的普通用户消息,都会开启新 Episode。目标自动续跑与子 Agent 继承当前 Episode。显式的「继续任务」授权按 TaskScope 跨 Episode 保留。 |
| 89 | - Reviewer 暂时不可用不会把普通恢复变成人工确认;若已检测到结构化计划转换,则直接把计划选择交给用户,避免 Auto 静默替用户决定。 |
| 90 | - 无人值守环境遇到真正的计划决策时会 fail closed,不会静默代选。 |
| 91 | - 无头 Ask/Auto/DontAsk 遇到嵌套或间接 Bash 也会 fail closed,除非已有完全相同的 `Bash=<literal>` 精确授权。 |
| 92 | - 这些边界仅在自动模式下生效;Ask 与 YOLO 保持既有审批语义,也没有额外的安全开关需要理解。 |
| 93 | |
| 94 | 自动模式不是文件系统快照或回滚机制。需要可恢复性时仍应使用干净 Git 分支或一次性 worktree。计划模式决定是否开始;开始后由 Auto 处理常规执行。 |
| 95 | |
| 96 | ### 注意事项 |
| 97 | |
| 98 | - 自动模式不等于 Yolo。它不会跳过显式 `ask` 规则,也不会自动回答产品决策问题。 |
| 99 | - 自动模式不会替代执行安全配置;希望拦截推送、发布、删除或生产操作时,应保留对应的 `deny` 或 `ask` 规则及 sandbox 边界。 |
| 100 | - Auto Guard 不提供需要用户管理的写入工具白名单或重置流程;操作级停止仍然很窄,Episode 硬停止只暂停本轮自动恢复。基础能力边界仍由权限策略和 sandbox 决定。 |
| 101 | - 如果你发现 Reasonix 反复准备做你不想要的操作,切回询问模式更容易干预。 |
| 102 | |
| 103 | ## Yolo 模式 |
| 104 | |
| 105 | Yolo 模式用于最大化连续执行。开启后,普通工具审批会被跳过,写文件、运行命令等操作可以更少中断地执行。 |
| 106 | |
| 107 | Yolo 是唯一可以绕过嵌套/间接 Bash 人工审批要求的工具权限姿态;显式 `deny` 与 Sandbox 仍然生效。 |
| 108 | |
| 109 | ### 怎么开启 |
| 110 | |
| 111 | - 直接在输入框下方选择 Yolo、把它设为新会话默认审批,或使用 **设置 → 快捷键** |
| 112 | 中显示的当前绑定(默认 `Ctrl+Y` / `Cmd+Y`)切换。 |
| 113 | - 直接选择“询问”或“自动”即可退出 Yolo。 |
| 114 | - 通过快捷键进入 Yolo 时,Reasonix 会记住原来的“询问”或“自动”基线;再次按快捷键退出 Yolo,会恢复之前的基线模式。 |
| 115 | |
| 116 | ### 建议使用场景 |
| 117 | |
| 118 | - 当前在临时分支或干净工作树,改坏了也能快速回滚。 |
| 119 | - 任务已经在计划模式里确认过,后续只是按计划执行。 |
| 120 | - 批量机械改动、格式化、补测试、跑一组本地验证命令。 |
| 121 | - 你明确希望减少所有普通工具审批中断。 |
| 122 | |
| 123 | ### 注意事项 |
| 124 | |
| 125 | - Yolo 只跳过工具权限审批,不会跳过计划确认和 ask 问题。 |
| 126 | - Yolo 不会绕过后端的 `deny` 规则、系统权限、工作区限制或沙箱限制。 |
| 127 | - 需要强制新鲜审批的记忆变更和计划确认仍然会等待你处理;只有符合安全策略的新 project/reference |
| 128 | create-only 事实可以免提示。MCP 授权发生在用户安装或项目配置声明时,不需要额外项目身份确认; |
| 129 | 之后不会因为 writer 分类或 `destructiveHint` 再弹二次审批。显式 `deny`、Plan 与严格只读 |
| 130 | 子代理的工具过滤仍然生效。 |
| 131 | - 不建议在生产环境、敏感目录、密钥文件、发布流程或需求不清楚的任务里开启。 |
| 132 | |
| 133 | ## 与协作方式的组合 |
| 134 | |
| 135 | | 组合 | 行为 | |
| 136 | | --- | --- | |
| 137 | | 计划 + 询问 | 规划期间,普通内置工具仍按询问模式处理;MCP writer、destructive 目标与未授权 reader 会被 Plan 直接阻止。确认计划后,普通 writer fallback 自动放行,显式 `ask` / `deny` 与强制新鲜审批仍生效。 | |
| 138 | | 计划 + 自动 | 计划确认仍需要你批准;开始执行后,普通工具权限自动放行。 | |
| 139 | | 计划 + Yolo | 计划确认仍需要你批准;开始执行后,普通工具审批尽量不再打断。 | |
| 140 | | 目标 + 询问 | 目标会持续推进,但遇到工具审批会停下来等你。 | |
| 141 | | 目标 + 自动 | 适合大多数日常目标任务,连续推进且保留显式规则边界。 | |
| 142 | | 目标 + Yolo | 适合边界非常清楚、可回滚的目标任务;风险最高。 | |
| 143 | | 任一运行模式 + 任一工具权限 | 支持。运行模式影响工具面和执行合约,不改变工具审批语义。 | |
| 144 | |
| 145 | ## 推荐选择 |
| 146 | |
| 147 | - **不确定怎么选**:用“询问”。 |
| 148 | - **日常开发**:用“自动”。 |
| 149 | - **已确认计划、可回滚、想减少中断**:短时间使用“Yolo”。 |
| 150 | - **高风险命令或敏感环境**:用“询问”,并通过 `deny` / `ask` 规则保护关键操作。 |
| 151 |