跳至正文
教程 / Step 13

权限、沙箱与运行时不变量

区分软约束、人工审批、文件系统强制边界与工具执行策略。

简要结论

区分软约束、人工审批、文件系统强制边界与工具执行策略。

安全配置最危险的误解是把一个标签当成完整保证。DeepSeek Harness 中至少有四层控制:任务文字、工具策略、审批、进程沙箱。它们解决不同问题。

四层控制地图

性质失败时会怎样
Prompt / Plan软约束模型可能误解或偏离
Tool Schema / policy调用边界参数被拒绝或工具不可见
Approval policy人工决策请求暂停、拒绝或按策略继续
Sandbox文件效果强制子进程写入被后端阻止

不要用“我已经在 Prompt 里写了”替代沙箱,也不要把审批弹窗等同于底层隔离。

三种 SandboxMode

  • read-only:只允许执行所需接收器,拒绝文件写入。
  • workspace-write:允许写工作区和后端承诺的临时区域。
  • danger-full-access:绕过隔离,消费方直接启动原始命令。

该沙箱词汇只承诺文件系统效果,不自动限制网络或进程可见性。若任务要求“绝不联网”,还需要相应网络控制或不暴露网络工具。

检查强制完整性

后端会报告 fullpartial。部分强制执行意味着当前平台、内核或 ACL 只覆盖承诺的一部分。需要绝对边界的工作流不能把 partial 当作“基本等于安全”。

Windows ACL、旧版 Landlock 等环境可能存在特定边界。上线前应在目标主机验证,而不是从开发机结果推断。

运行时不变量的意义

不变量是运行时始终应该成立的关系,例如工具调用与结果配对、Session Event 的可回放顺序、注册项随插件卸载清理。它们比 Prompt 更适合表达系统内部必须成立的条件。

设计扩展时问:

  1. 这个规则能否由类型或 Schema 表达?
  2. 能否在注册时快速失败?
  3. 能否由沙箱或批准策略强制?
  4. 只剩策略判断时,才放进 Skill 或 Prompt。

权限矩阵练习

为任务“扫描依赖并生成报告”写矩阵:

能力是否需要建议
读取清单与 lockfileread-only 足够
写报告文件可选限定 workspace-write
安装依赖不批准
访问漏洞数据库视目标明确域名和上传数据
读取环境变量不暴露秘密

先用只读模式生成聊天内报告;只有确认确实需要落盘时,再把写范围扩大到单一目录。

破坏性操作的双重门

删除、迁移、发布、付费 API 和生产写入至少需要:

  1. 任务契约明确授权具体目标;
  2. 执行前审批展示实际命令或请求;
  3. 存在备份、预览或 dry-run;
  4. 执行后有独立验证。

如果任一条件缺失,Agent 应停止并给出最小可行的只读替代。

下一篇把这些约束落到可靠工具设计

一手来源