Skip to content

权限与模式

dsh 里"模式"一词出现在四个层面,各自独立、组合生效:

1. Agent 预设(会话形态)

决定这个会话里的 agent 拥有哪些能力、工具如何呈现。dsh 内置四个预设(在宿主应用的模式选择器中切换):

预设说明
标准模式功能完整的编码 Agent:文件编辑、Shell、文件与网页检索、Skills、计划、目标、子代理和工作流
PTC 模式标准模式全部能力,并经 Code Mode SDK 呈现工具——模型用一个 TypeScript 程序组合多步操作(run_code 传输)
极简模式仅提供持久 bash 与 str_replace_editor 的双工具编码 Agent
创造模式面向自定义 Agent 预设的作者:标准能力 + 运行时检查、插件实验与预设创作指导

工具呈现方式由 tools.mode 配置控制:native(默认,函数调用)/ code(仅 run_code 传输)/ both;单个 agent 也可以用自己的选择遮蔽全局默认。

2. 审批策略(approval policy)

工具调用需要授权时走 approval/request,策略只有两个值:

策略语义
ask(默认)请求交给应答方链——Blue 的四选项审批面板就是应答方(见审批与问卷浮层);无人应答时失败关闭
never从不询问,一切 ask 直接拒绝——CI / 无人值守的严格姿态

结果只有四种:allowed-once(仅本次放行)/ rejected / cancelled / unavailable,缺省一律按拒绝处理(fail-closed)。

3. 沙箱模式(sandbox mode)

约束 shell/进程的文件系统影响面(网络与进程可见性不在其管辖内):

模式语义
read-only拒绝一切写入
workspace-write允许写入工作区根目录与后端定义的临时区
danger-full-access完全绕过隔离

后端按平台自动选择:Linux 用 Landlock/bwrap,macOS 用 Seatbelt,Windows 用 ACL 受限令牌;无法提供沙箱时显式报错,绝不静默放行。部分平台边界(旧 Landlock ABI、Windows 硬链接)会降级为部分强制。

4. 权限预设(permission presets)

把沙箱模式与审批策略打包成具名档位,让客户端用一个"权限"选择器同时切换两者:

预设沙箱审批
workspace-writeworkspace-writeask
danger-full-accessdanger-full-accessnever

与 Blue 的关系

权限预设(dsh-permission-presets在默认装配里(dsh-base 78 行之一)。Blue 目前以审批面板承担 ask 策略;预设切换器在 Blue 侧的界面化仍在路线上。

预览版 · v0.1.0-rc.1