尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

DeepSeek-Reasonix 工具权限模式完全指南:询问 / 自动 / Yolo 的审批语义、边界与源码解析

DeepSeek-Reasonix 工具权限模式完全指南:询问 / 自动 / Yolo 的审批语义、边界与源码解析 DeepSeek-Reasonix 工具权限模式完全指南询问 / 自动 / Yolo 的审批语义、边界与源码解析【免费下载链接】DeepSeek-ReasonixDeepSeek-native AI coding agent for your terminal. Engineered around prefix-cache stability — leave it running.项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-ReasonixReasonix 桌面端输入框下方常驻的“询问 / 自动 / Yolo”三档开关控制的是 Agent 调用受控工具时是否需要你审批。本文以 docs/TOOL_APPROVAL_MODES.zh-CN.md 为主线系统讲解三种模式的完整行为、审批卡片快捷键、与协作方式的组合关系并深入 internal/control/approval.go、internal/cli/cli.go 与桌面端前端实现解释每一档位背后的审批裁决逻辑与边界条件帮助你为不同场景选对权限姿态。先厘清概念工具权限与协作方式是两条独立轴Reasonix 中存在两个容易混淆的概念它们互不替代协作方式普通 / 计划 / 目标决定 Reasonix 如何推进任务。没有自动任务模式唯一的会话角色是质量底线standard/delivery验证义务由宿主根据真实工具动作建立。工具权限询问 / 自动 / Yolo决定 Reasonix 调用受控工具时是否需要你审批。两种模式常驻在输入框下方始终显示可以直接切换不必依赖快捷键或设置页。协作方式的完整说明见 docs/COLLABORATION_MODES.zh-CN.md。三种模式快速对比模式行为适合场景不适合场景询问默认在写文件、跑命令等受控工具前请求批准。不熟悉的仓库、高风险改动、生产相关操作、需要逐步确认的任务。大量低风险重复操作或你已经明确允许 Reasonix 连续执行。自动自动批准普通工具权限包括交互式remember/forget显式ask/deny规则和计划确认仍生效。无头记忆仍保留 create-only 边界。日常读代码、改小问题、跑测试、可信工作区里的常规实现任务。你希望每个写入或命令都人工确认的任务。Yolo跳过普通工具权限审批让写文件、命令以及remember/forget尽量连续执行deny规则、计划确认、ask 问题和沙箱/配置审批仍不会被自动回答。临时分支、可回滚工作区、已确认计划后的批量机械改动。生产环境、敏感文件、删除/发布/推送等高风险操作或需求边界不清时。询问模式Ask询问模式是最保守的工具权限模式。Reasonix 遇到需要审批的工具调用时会弹出审批卡片你可以选择允许一次、本会话允许、总是允许或拒绝。动态 Bash 的特殊处理动态 Bash由参数拼接而来的命令不能继承更宽的裸Bash、前缀或 glob 规则。具体地参数/算术展开、赋值、重定向、不含嵌套执行的 heredoc 与 glob 仍按普通模式 fallback只有嵌套/间接执行在交互 Ask 与 Auto 中强制走人工审批本会话与持久授权会把完全相同的整条命令保存为Bashliteral即授权粒度是命令字面量本身。审批卡片快捷键←/→循环切换高亮动作。Enter确认当前高亮的普通工具审批动作默认高亮“允许一次”。1/2/3/4可以选择对应编号的普通工具审批动作。计划确认有三个直接动作「开始执行 / 修改计划 / 暂不执行退出计划模式」。桌面端点击一次或按对应数字键即可CLI 可按对应数字键或选中一行后按Enter并继续兼容使用n/Esc留在计划模式。退出操作会拒绝待处理计划并返回普通模式不会启动执行回合。除 CLI 正在等待计划确认的情况外Esc停止当前任务。如果你用Tab聚焦到某个按钮再按Enter会触发当前聚焦按钮本身不会被高亮动作覆盖。在桌面端前端中审批卡片的动作列表与快捷键由 ApprovalModal.tsx 实现普通工具审批默认渲染“允许一次1”“本会话允许2”“总是允许3”“拒绝4”四个动作其中本会话与持久授权在onAnswer(true, true, false)/onAnswer(true, true, true)中被区分而沙箱逃逸与受管配置写入等“强制新鲜审批”类目则只提供有限的会话授权或拒绝选项不会给出持久放行。方向键ArrowUp/ArrowDown、数字键与Enter/Esc的全局 keydown 处理也集中在同一组件内ApprovalModal.tsx。建议使用场景第一次让 Reasonix 处理某个仓库或目录。任务可能涉及删除文件、改配置、提交、发布、安装依赖或访问外部服务。你想观察 Reasonix 准备调用什么工具再决定是否继续。你正在处理生产数据、密钥、隐私文件或不可轻易回滚的环境。注意事项询问模式更安全但会增加交互次数。询问不等于只读批准普通 writer 后写文件或命令仍会执行已安装或明确授权的 MCP 不走逐调用审批。Sandbox 才是强制能力边界。审批卡片里的“本会话允许”和“总是允许”是权限规则不是切换到自动模式。如果你已经确认任务范围很清楚且操作都在可信工作区内自动模式通常更顺手。无头运行时的 fail closed无头reasonix run没有可以回答的审批卡因此默认询问姿态会对 writer fallback 和显式ask规则fail closed不会增加无法完成的确认也不会静默放行。无人值守自动化需要放行普通 writer 时使用现有的--auto/-y不需要再学习额外的安全设置。这一点在 CLI 实现中也有印证reasonix run是无头模式没有按键循环可以回答审批或 ask因此无人值守写入必须显式传--auto/-y见 cli.go且--auto/-y不能与--permission-mode同时指定cli.go。自动模式Auto自动模式适合日常开发。它会把普通工具权限自动放行减少反复点击审批但它不是无限制执行。自动模式仍会遵守的边界显式deny规则仍然阻止对应工具或命令。显式ask规则仍然会弹出审批。计划模式的“开始执行”确认仍然需要你选择。交互式remember/forget使用普通 Auto fallback因此默认调用不弹窗显式ask/deny规则仍生效。无头记忆仍只保留有界 create-only 例外其余 fail closed。扩展工作区外的可写根Auto、Ask 和 YOLO 都不会在没有「扩展写入范围」审批卡的情况下突破沙箱边界。文件工具会自动申请目标父目录Bash 必须传additional_write_dirs和justification。批准只会扩展沙箱可写根不会把命令改成无沙箱运行。嵌套或间接 Bash 即使处于获批计划执行窗口也需要人工审批Guardian 与 hook allow 不能代替用户批准普通展开、赋值、重定向和 glob 仍走 Auto 快速路径。用户安装或明确授权的 MCP 直接执行不再受这套逐调用模式影响显式deny、Plan 和严格只读子会话边界仍然生效。ask 问题仍然等待你回答不会由自动模式代选。建议使用场景普通代码阅读、搜索、编辑和测试。你信任当前工作区且改动可以通过 Git 或测试回滚。目标模式下希望 Reasonix 连续推进但仍保留显式规则和关键确认。计划模式已经确认方案后续只是常规实现和验证。自动模式什么时候会询问自动模式是一种行为承诺不是用户还要额外学习和配置的功能Auto 自动执行权限策略允许的操作只有遇到新计划、产品取舍或其他真正属于用户的决定时才询问。工作区读写、命令、源码/配置/工作流编辑、依赖变更、测试和外部操作都按现有权限策略执行不再由 Auto Guard 额外按风险弹窗。因此默认 Auto 下的git push、发布或部署不会仅因属于外部操作而询问用户配置的显式ask/deny、sandbox、MCP 和工具专属权限仍然有效。初次建立普通任务计划保持快速路径当已有未完成的结构化任务计划被改写时独立 reviewer 会比较旧计划、新计划和用户任务。合理的实现细化自动继续。真正的产品、策略或范围选择会显示一张中性的计划决策卡列出移除和新增的步骤「采用新计划并继续」会继续执行「不采用告诉 Auto 如何调整」只展开内联意见框不会立即提交决定。工具失败是执行可靠性信号不是整个任务的权限边界。与失败操作无关的其他工作会直接继续不经过 Auto Guard 确认或恢复 Reviewer只有对同一精确失败操作的重试才进入有限恢复审查真正的结构化计划选择仍是唯一会弹出用户决策卡的恢复路径。超时只会获得简短的失败路径提示要求先检查当前状态和部分执行结果再重试不会要求用户重置 Auto、切换模式或重启会话。失败后的诊断和恢复在固定的主机侧 Episode 预算内自动推进无设置项同一精确操作失败 3 次后只停止该操作自最近一次真实进展后累计 6 次有效执行失败、累计 3 次 Reviewer 拒绝、或已停止操作被重复提交 3 次时会停止后续 mutation/verification。改参数、命令或目标不能重置 Episode 总数。成功的 mutation 或主机识别的 verification 会清空无进展预算普通诊断读取不会。Episode 硬停止后主机确认的只读诊断仍可使用后续 mutation 和 verification 会被隔离。随后 Auto 获得一次只总结的收尾机会并以冷静的recovery_paused状态结束不是发送失败。下一条用户消息会自动开启新 Episode。“换个方案”、计划“开始执行”、真实的工具权限模式切换以及新的普通用户消息都会开启新 Episode。目标自动续跑与子 Agent 继承当前 Episode。显式的「继续任务」授权按 TaskScope 跨 Episode 保留。Reviewer 暂时不可用不会把普通恢复变成人工确认若已检测到结构化计划转换则直接把计划选择交给用户避免 Auto 静默替用户决定。无人值守环境遇到真正的计划决策时会 fail closed不会静默代选。无头 Ask/Auto/DontAsk 遇到嵌套或间接 Bash 也会 fail closed除非已有完全相同的Bashliteral精确授权。这些边界仅在自动模式下生效Ask 与 YOLO 保持既有审批语义也没有额外的安全开关需要理解。自动模式不是文件系统快照或回滚机制。需要可恢复性时仍应使用干净 Git 分支或一次性 worktree。计划模式决定是否开始开始后由 Auto 处理常规执行。注意事项自动模式不等于 Yolo。它不会跳过显式ask规则也不会自动回答产品决策问题。自动模式不会替代执行安全配置希望拦截推送、发布、删除或生产操作时应保留对应的deny或ask规则及 sandbox 边界。Auto Guard 不提供需要用户管理的写入工具白名单或重置流程操作级停止仍然很窄Episode 硬停止只暂停本轮自动恢复。基础能力边界仍由权限策略和 sandbox 决定。如果你发现 Reasonix 反复准备做你不想要的操作切回询问模式更容易干预。Yolo 模式Yolo 模式用于最大化连续执行。开启后普通工具审批会被跳过写文件、运行命令以及remember/forget可以更少中断地执行。Yolo 是唯一可以绕过嵌套/间接 Bash 人工审批要求的工具权限姿态显式deny与 Sandbox 仍然生效。因为 Yolo 本就承诺跳过确认CLI 的/clear命令在 Yolo 模式下会直接清空会话不再弹出确认覆盖层Ask、Auto 与 Plan 模式保留确认。怎么开启直接在输入框下方选择 Yolo、把它设为新会话默认审批或使用设置 → 快捷键中显示的当前绑定默认CtrlY/CmdY切换。直接选择“询问”或“自动”即可退出 Yolo。通过快捷键进入 Yolo 时Reasonix 会记住原来的“询问”或“自动”基线再次按快捷键退出 Yolo会恢复之前的基线模式。这个“记住基线”的行为有明确的前后端实现支撑。前端 toolApprovalMode.ts 定义了restorableToolApprovalModeyolo不能作为恢复基线只可能恢复到ask或auto与toggleYoloToolApprovalMode从 ask/auto 切到 yolo 时暂存原模式从 yolo 退出时恢复useComposerModeActions.ts 按 tab 保存恢复基线yoloRestoreRef多会话场景下互不串扰。快捷键注册在 keyboardShortcuts.ts动作toolApproval.yolo默认绑定modCombo(y)即CtrlY/CmdY并允许在输入框聚焦时触发allowInEditable: true。配套测试 tool-approval-mode.test.ts 覆盖了“CtrlY 把 ask 变成 yolo”“把 auto 变成 yolo”“从 yolo 恢复 auto / 恢复 ask”等全部切换路径CLI 侧对应的恢复逻辑见 chat_tui.go 的yoloRestoreToolApprovalMode。建议使用场景当前在临时分支或干净工作树改坏了也能快速回滚。任务已经在计划模式里确认过后续只是按计划执行。批量机械改动、格式化、补测试、跑一组本地验证命令。你明确希望减少所有普通工具审批中断。注意事项Yolo 会跳过工具权限审批包括显式的交互式remember/forgetask 审批不会跳过计划确认和 ask 问题。Auto 也会跳过默认记忆 fallback但仍保留显式ask。Yolo 不会绕过后端的deny规则、系统权限、工作区限制或沙箱限制。计划确认、沙箱逃逸和受管配置写入仍然会等待你处理。Ask 保留记忆确认交互式 Auto 只跳过默认记忆 fallback并保留显式 ask/deny交互式 Yolo 会绕过记忆 ask 审批除非命中显式 deny。MCP 授权发生在用户安装或项目配置声明时不需要额外项目身份确认之后不会因为 writer 分类或destructiveHint再弹二次审批。显式deny、Plan 与严格只读子代理的工具过滤仍然生效。不建议在生产环境、敏感目录、密钥文件、发布流程或需求不清楚的任务里开启。与协作方式的组合工具权限与协作方式自由组合行为如下表组合行为计划 询问规划期间普通内置工具仍按询问模式处理MCP writer、destructive 目标与未授权 reader 会被 Plan 直接阻止。确认计划后普通 writer fallback 自动放行显式ask/deny与强制新鲜审批仍生效。计划 自动计划确认仍需要你批准开始执行后普通工具权限自动放行。计划 Yolo计划确认仍需要你批准开始执行后普通工具审批尽量不再打断。目标 询问目标会持续推进但遇到工具审批会停下来等你。目标 自动适合大多数日常目标任务连续推进且保留显式规则边界。目标 Yolo适合边界非常清楚、可回滚的目标任务风险最高。任一运行模式 任一工具权限支持。运行模式影响工具面和执行合约不改变工具审批语义。其中“计划 询问/自动”在确认计划后的 writer fallback 自动放行对应后端planAutoApprove执行窗口在 approval.go 的bypassAllowsLocked中可以看到普通工具在ToolApprovalYolo下直接放行否则只有处于计划执行窗口且策略允许时才放行而requiresFreshApprovalTool计划确认、记忆、沙箱逃逸、受管配置写入在任何姿态下都返回 false即永远需要人工。推荐选择不确定怎么选用“询问”。日常开发用“自动”。已确认计划、可回滚、想减少中断短时间使用“Yolo”。高风险命令或敏感环境用“询问”并通过deny/ask规则保护关键操作。深入源码审批裁决是如何做出的三种模式的差异最终都收敛在后端审批管理器approval manager的统一裁决逻辑中核心文件是 internal/control/approval.go。模式归一化normalizeToolApprovalModeapproval.go把来自不同入口的模式别名统一归一到四个姿态auto、approve、allow→ Autodontask、dont-ask、deny→ DontAskyolo、full、full-access、bypass→ Yolo其余默认 → AskCLI 侧parsePermissionModecli.go则把--permission-mode的参数ask/manual/auto/acceptEdits/dontask/plan/yolo/bypassPermissions映射为上述姿态其中acceptEdits等价于 Ask 一组写文件类工具的预授权列表。--auto/-y与--permission-mode互斥cli.go避免冲突配置。切换模式时的排水drain机制当用户从 Ask 切到 Auto 或 Yolo 时setModeapproval.go会调用drainLocked把新姿态应当自动放行的待处理审批一次性放行并保留每个审批的 prompt id让前端能精确关闭已被新模式解决的卡片。drainLockedapproval.go的过滤条件是理解三档差异的关键writeAccessKind扩展写入范围永不自动放行必须人工审批强制新鲜审批fresh 或工具属于requiresFreshApprovalTool默认跳过仅记忆类工具在 Auto/Yolo 下有 bypass 例外requireHuman显式 ask只有在 Yolo 的includeExplicitAsktrue时才被 drain。必须人工审批的工具集RequiresFreshHumanApprovalToolapproval.go定义了五类连会话授权/Guardian/hooks/无头 approver 都无法自动放行的工具计划确认plan、记忆写入remember/forget、沙箱逃逸、受管配置写入。这解释了为什么“Yolo 也不会自动回答计划确认与沙箱/配置审批”。其中沙箱逃逸与受管配置写入允许会话级授权allowsFreshSessionGrantTool但不会持久放行。无头与评测场景的姿态控制除交互终端外Reasonix 的评测基础设施同样复用这套权限模型cmd/e2ebench/main.go中的--permission标志接受auto | yolo姿态并在启动子进程时以run --auto的方式驱动被测 Agentmain.go说明权限姿态是贯穿交互、无头与评测的统一契约。总结询问逐调用人工把关适合陌生仓库与高风险操作无头场景默认 fail closed自动放行普通工具保留显式 ask/deny、计划确认与 Episode 恢复预算适合日常开发Yolo最大化连续执行是唯一能绕过嵌套 Bash 人工审批的姿态但仍受 deny 规则与沙箱约束只适合可回滚环境短时使用。三档权限与普通/计划/目标三种协作方式正交组合构成 Reasonix 完整的任务推进与安全边界体系。切换到具体环境时先问自己三个问题工作区可否回滚操作是否涉及生产或敏感数据任务边界是否已经清晰答案决定了你该停留在哪一档。【免费下载链接】DeepSeek-ReasonixDeepSeek-native AI coding agent for your terminal. Engineered around prefix-cache stability — leave it running.项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Reasonix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表