LAYER 04 · 理解安全与耐久性

审批、策略与权限预设

把一次性人类决定、会话策略和沙箱模式分成三个正交旋钮

18 min3 处源码锚点upstream@47f9438
preset = sandbox knob + approval knob
本章要解决的问题

为什么“danger-full-access + never ask”仍然不等于所有工具都能执行?

先建立直觉

门禁区域、是否呼叫管理员、物品禁运清单是三套制度:权限预设只是把前两项组合成方便选择的套餐,不能取消硬性禁运。

MECHANISM

机制拆解

ctx.approval 为一次具体操作返回 allowed-once/rejected/cancelled/unavailable;除 allowed-once 外全部 fail closed。ApprovalPolicy 只有 ask 与 never。

PermissionPreset 把 sandbox/mode 与 approval/policy 写入各自权威 setter;current() 从实际 knob 折叠结果派生,未匹配时显示 custom。

第 1 步 / 共 5 步

选择预设

记录 permission/preset 用户意图。

INVARIANTS

无论怎么扩展,都不能破坏

  • unavailable 必须拒绝
  • allowed-once 只授权当前操作
  • 预设不拥有强制执行,只组合权威旋钮
FAILURE MODES

最容易踩中的坑

  • ×把 never 理解成自动允许
  • ×审批请求复制一份可能漂移的工具参数
  • ×把 custom 当可选择的预设写入日志
VERIFY IN SOURCE

不要相信结论,去源码里复核

以下链接固定到官方 deepseek-harness@47f9438;查看当前上游时请留意后续 breaking changes。

KNOWLEDGE CHECK

先停十秒,再揭晓答案

审批应答者异常时为什么不是重试或默认允许?

为什么下一章紧接在这里

审批决定“是否继续”,沙箱与能力 seam 决定“在哪里、能影响什么”。

Learn DeepSeek Harness

独立教学项目。解释力来自源码,判断边界以官方仓库为准。