AI 简明手册
DeepSeek Harness 源码解读 · 审批与沙箱审批和沙箱为什么是两个开关

审批和沙箱为什么是两个开关

它要解决什么

DSH 权限分两个正交变量:sandbox/mode 管文件效果,approval/policy 管是否询问。审批全程 fail-closed,唯一放行值是 allowed-once。

源码给出的答案

sandbox/mode 三档

sandbox/mode 三档:read-only、workspace-write、danger-full-access。approval/policy 两档:ask 交应答者链,never 直接拒绝。preset 只是旋钮组合的命名映射。

[repo]

切换 `preset` 只写实际变化的旋钮

切换 preset只写实际变化的旋钮,custom 是保留字,仅在组合不匹配任何 preset 时派生。无应答者、异常、关界面都归一化为拒绝。提权一次性,只授权那一个操作。

[repo]

收益与代价

  • 审批弹窗弹出后用户关掉浏览器,结果如何: 请求归一化为 unavailable 或 cancelled,按拒绝处理,拿不到 allowed-once 就不放行。

  • 策略为 never 时,prepend 一个 always-allow 应答者能绕过吗: 不能。never 在 decide() 开头直接拒绝,应答者链根本不执行。

别把取舍当成定律

  • 本页结论对应 revision 0a53fb55bea101816fa226bb964ae2bed71c343b。文件位置、命名和默认行为可能随版本变化,引用实现细节时应同时记录 commit。

来源与核验

  1. [repo] DeepSeek Harness 官方源码(固定 revision)
  2. [official] DeepSeek Harness 官方介绍

Revision:0a53fb55bea101816fa226bb964ae2bed71c343b · 核验日期:2026-08-31