返回 DeepSeek-Reasonix
TOOL_APPROVAL_MODES.zh-CN.md
根目录 / docs / TOOL_APPROVAL_MODES.zh-CN.md
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
151 lines MARKDOWN