返回 DeepSeek-Reasonix
TOOL_APPROVAL_MODES.zh-CN.md
根目录 / docs / TOOL_APPROVAL_MODES.zh-CN.md
1 # 权限模式
2
3 Reasonix 的桌面端、CLI、Serve、ACP、机器人、自动任务和子代理共用同一套权限模式。协作方式(普通、计划、目标)决定任务如何推进;权限模式决定文件系统和进程的强制边界。
4
5 | 权限模式 | 文件系统边界 | 审批行为 |
6 | --- | --- | --- |
7 | **仅可查看**(`read-only`) | 工作区和会话文件只读。 | 读取直接执行;写入及未知外部副作用需要一次或本会话的精确授权。 |
8 | **工作区内修改**(`workspace-write`) | 工作区及会话私有临时目录可写。 | 默认模式。命令位于边界内时,管道、命令替换、Python/Node 内联脚本、构建和测试不会仅因语法触发审批。 |
9 | **完全权限**(`danger-full-access`) | 命令以当前系统账户走宿主正常执行路径,不使用 Reasonix 文件和网络沙箱。 | 跳过普通询问规则;宿主会在启动前执行显式 `deny`,但不再限制已启动进程。 |
10
11 - **协作方式**(普通 / 计划 / 目标)决定 Reasonix 怎么推进任务。没有自动任务模式或可选质量底线;验证义务由真实工具动作、项目规则、任务风险和用户显式要求共同建立。
12 - **权限预设**决定强制执行的文件系统与进程边界,以及何时请求精确授权。
13
14 macOS 使用 Seatbelt,Linux 使用 bubblewrap;这两个平台上受限模式所需的沙箱无法启动时,Reasonix 会失败关闭,不会提示用户关闭沙箱后重试。Windows 没有 OS 级 Shell 沙箱:受限模式仍约束 Reasonix 文件工具并请求精确授权,但 Shell 命令以当前系统账户运行。
15
16 ## 授权范围
17
18 审批卡最多提供三个决定:
19
20 1. **允许一次**:只授权当前请求 ID。
21 2. **本会话允许**:在会话结束前复用卡片显示的规范目录、命令前缀、服务器能力或操作目标。
22 3. **拒绝**:拒绝调用,并把结果返回给模型。
23
24 普通审批不再提供永久授权。会话授权只保存在内存中,不跨重启或会话分支,可以查询和撤销。切换权限或撤销授权都会推进 permission revision。权限切换和审批提交会串行处理:先提交的审批继续有效,旧于已提交 revision 的回复会被拒绝。
25
26 普通命令错误、HTTP 错误、超时和应用异常都按工具错误处理,不会转成权限弹窗。只有宿主记录了真实沙箱拒绝后,重试才可以申请 `sandbox_permissions`,并必须携带匹配的 `denial_id` 和理由。
27
28 ## CLI
29
30 新会话默认使用工作区内修改:
31
32 ```sh
33 reasonix --permission-mode read-only
34 reasonix --permission-mode workspace-write
35 reasonix --permission-mode danger-full-access
36 reasonix run --permission-mode workspace-write "运行测试"
37 ```
38
39 交互式 CLI 中,`Shift+Tab` 按“仅可查看 → 工作区内修改 → YOLO → 计划”循环,`Ctrl+Y` 可直接切换 YOLO。两个快捷键进入 YOLO 时都会设置规范权限值 `danger-full-access`。旧配置仍保守迁移:`ask` 映射为仅可查看,`auto` 和 `yolo` 映射为工作区内修改,旧值不会开启完全权限。
40
41 ## 远程兼容
42
43 Serve 通过 `permission-presets-v1` 声明真实强制能力。未声明该能力的旧远程仍可查看历史,但执行和权限修改会被禁用,直到远程服务完成升级。
44
44 lines MARKDOWN