DeepSeek Harness 沙箱有什么用?DSH plugin 的三种 SandboxMode 权限
DeepSeek Harness 的 dsh-sandbox 用 SandboxMode 管控文件系统效果,分 read-only、workspace-write 与 danger-full-access 三档:只读不能写、工作区可写限在目录内、完全访问不加限制;网络与进程可见性不在这套沙箱范围内(来源)。 沙箱存在的理由很直接:既然模型能通过工具让命令真正跑起来,就必须有一条边界来约束「跑起来之后能动什么」。这篇讲这三档各是什么、边界在哪、怎么选;插件的权限边界见《dsh plugin 的能力与权限边界》,命令执行相关报错见《沙箱升级报错怎么修》。
为什么需要沙箱:给执行划一条边界
模型本身不能动文件,但它可以通过工具请求执行命令——一旦命令真的跑起来,副作用就发生在你的机器上,沙箱就是为这条执行路径划出的文件系统边界(来源)。 把因果链摆清楚:
- 能力来自工具:模型能执行命令,是因为有工具把请求转成了真实进程;没有工具,它连「请求执行」都做不到。
- 副作用来自真实进程:命令一旦执行,读写的是真实的文件系统,所以约束必须落在执行这一侧,而不是指望模型自觉。
- 约束需要档位化:不同任务对写入的需求差别很大——有的只需读、有的要在项目内改、少数确实需要全盘权限,一刀切既不安全也不好用。
- 档位带来可预期的默认值:有明确的三档,用户就能用「从紧到松」的方式起步,而不是每次都被迫做全有或全无的选择。
DeepSeek Harness 沙箱的三档 SandboxMode
DeepSeek Harness 的 SandboxMode 分三档:read-only、workspace-write 与 danger-full-access,档位决定执行的写入被限制到什么程度(来源)。 逐档看:
read-only:不允许写入,执行只能读。适合「只想看不想改」的场景,比如检索、分析、生成报告。workspace-write:允许写入,但限制在工作区目录内。这是日常使用的中间档——既能让任务真正产出文件,又不会把改动扩散到项目之外。danger-full-access:不加这层文件系统限制,能力最强也最需要谨慎。名字里的danger不是修辞,它意味着执行可以写到任意位置。
档位构成一条从紧到松的阶梯:越宽的能力,越容易在需要时触发审批,这也是「升级」这件事存在的原因。
它只管控文件系统效果
DeepSeek Harness 的这套沙箱只管控文件系统效果,网络与进程可见性不在范围内(来源)。 这条边界必须说清楚,否则很容易高估它的保护范围:
- 管的是写入这类副作用:它能约束执行动了哪些文件,这是隔离的主要目标,也是「read-only / workspace-write」这两档的实际含义。
- 网络访问不由它负责:命令能不能联网、能连哪里,不在这套沙箱的管辖内,需要另行评估。
- 进程可见性也不由它负责:一条命令能看到机器上哪些其它进程,同样不属这套沙箱的范围。
- 因此别把「装了沙箱」当成万能保险:它是文件系统这一维度的边界,其它维度各有各的机制。
档位怎么被触发:审批与升级
档位不只是配置项,它还会在执行时被校验——当一次调用请求比当前档位更宽的权限时,就会触发审批相关的处理(来源)。 三点理解:
- 执行前校验:真正的执行会带着它所要求的档位意图,系统据此判断是否越出当前允许范围。
- 越界即触发审批:请求更宽权限时不会静默放行,而是走审批路径,由人决定要不要放宽。
- 升级必须是「更宽」:升级只在方向上是放宽时才有意义;这一约束相关的问题与报错见《沙箱升级报错怎么修》。
各平台后端与消费方
DeepSeek Harness 的本地沙箱后端按系统提供不同机制:Linux 用 bwrap 或 Landlock,macOS 用 Seatbelt,Windows 用受限令牌;上层看到的仍是同一套档位语义(来源)。 谁在用:
- 命令执行类消费方:如
dsh-bash-sandbox与dsh-pwsh-sandbox,在自己的执行路径上套用当前档位。 - 远端后端:
dsh-sandbox-ssh把执行放到远程环境,同样遵循这套档位。 - 提供方包与语义分离:具体机制由提供方包实现,但对上层暴露同一套
SandboxMode语义——因此 DSH plugin 不需要为每个系统各写一份逻辑。 - 想装会执行命令的插件前:先评估它需要哪一档,可在「设置 → 插件市场」即 DSH Plugin Hub 里查看插件说明再决定。
怎么选档位:从紧到松
选档位的原则是从紧到松、按实际需要逐级放宽,而不是一上来就给最宽的那档(来源)。 一个可操作的判断顺序:
- 先问「这个任务需要改文件吗」:如果只是读取与分析,
read-only就够,别默认放开写。 - 再问「只需要改当前项目吗」:如果产出都落在工作区目录内,
workspace-write是合适的选择。 - 最后才问「真的需要全盘吗」:只有确实要写到项目外的场景才考虑
danger-full-access,并且要对后果有预期。 - 改动后重新评估:任务结束后不妨把档位收回更紧的一档,让默认状态保持安全。
理解沙箱的注意事项
把沙箱理解成「按档位限制文件系统效果」,就不会误以为它管网络。
- 三档是从紧到松:
read-only→workspace-write→danger-full-access。 - 默认越紧越安全:能用只读就别升到可写,能用工作区可写就别开完全访问。
- 范围有限:只约束文件系统效果,网络与进程可见性另论。
- 越界会走审批:请求更宽权限不是静默放行,而是需要确认。
- 后端随系统不同:Linux、macOS、Windows 机制各异,但对外语义一致。
- 升档要谨慎:
danger-full-access风险最高,用完记得收回。 - 插件能力边界另见《dsh plugin 的能力与权限边界》;升级报错见《沙箱升级报错怎么修》。
常见问题
**DeepSeek Harness 的沙箱由 dsh-sandbox 提供,用来管控命令与工具对文件系统的效果。** 它把执行放进一条有档位的边界里,按当前 SandboxMode 决定能读哪些、能写哪些;这样 DSH plugin 触发的文件操作不会随意扩散到整台机器。
**DeepSeek Harness 的 SandboxMode 分三档:read-only、workspace-write 与 danger-full-access。** read-only 不允许写入,workspace-write 把写入限制在工作区目录内,danger-full-access 则不加这层限制;档位越宽,越需要谨慎使用。
**DeepSeek Harness 的这套沙箱只管控文件系统效果,网络与进程可见性不在它的范围内。** 也就是说它能约束写文件这类副作用,但不要指望它同时限制网络访问或进程能看到什么;这几件事在 DeepSeek Harness 里由别的边界负责。
**DeepSeek Harness 的本地沙箱后端在不同系统上采用不同机制:Linux 用 bwrap 或 Landlock,macOS 用 Seatbelt,Windows 用受限令牌。** 这些由提供方包实现,对上层是同一套 SandboxMode 语义,因此 DSH plugin 不需要为每个系统各写一份逻辑。
**使用 DeepSeek Harness 沙箱的典型消费方是执行命令的工具,例如 bash 与 PowerShell 的沙箱包。** 它们在自己的执行路径上套用当前档位;此外还有面向远端的沙箱后端,用于把执行放到远程环境里,同样遵循这套档位语义。
相关术语
- SandboxMode
- SandboxMode 是 DeepSeek Harness 沙箱的档位,取值为 read-only、workspace-write 或 danger-full-access,决定执行的写入被限制到什么程度。— DeepSeek Harness 官方文档 - 沙箱子系统
- dsh-sandbox
- dsh-sandbox 是 DeepSeek Harness 中提供进程沙箱能力的 seam,负责按当前档位约束执行对文件系统的效果。— DeepSeek Harness 官方文档 - 沙箱子系统
- workspace-write
- workspace-write 是 DeepSeek Harness 沙箱的中间档,允许写入但限制在工作区目录范围内,兼顾可用性与隔离。— DeepSeek Harness 官方文档 - 沙箱子系统
- danger-full-access
- danger-full-access 是 DeepSeek Harness 沙箱的最宽档,不加文件系统写入限制,风险最高,需谨慎授予。— DeepSeek Harness 官方文档 - 沙箱子系统
来源
- DeepSeek Harness 官方文档 - 沙箱子系统· deepseek-harness
- DeepSeek Harness 官方文档 - 架构总览· deepseek-harness