AI 简明手册
DeepSeek Harness 源码解读 · 审批与沙箱沙箱隔离的究竟是什么

沙箱隔离的究竟是什么

先设定故障

DSH 沙箱分三层:子进程用 confine 限制 runner,进程内工具用 fs-sandbox 结构化拒绝,执行世界通过替换 fs 与 subprocess 插口整体搬家。

失败如何传播

  1. 子进程层按平台用 bwrap、Landlock、Seatbelt 或受限令牌

    子进程层按平台用 bwrap、Landlock、Seatbelt 或受限令牌。策略按调用解析并随身携带,同进程两会话可各持不同边界。fs-sandbox 规范化路径后做包含检查,拒绝抛 FS_SANDBOX_DENIED。

    [repo]

  2. 拒绝与 runner 故障由两套分类器区分

    拒绝与 runner 故障由两套分类器区分,先识致命签名,再查拒绝签名。无后端且受限时抛 SandboxUnavailableError,绝不裸奔。插口替换后所有状态工作迁至远端沙箱,消费方零改动。

    [repo]

恢复与防线

  • 同进程两个会话沙箱模式不同,需要提供方切换吗: 不需要。策略在每次能力调用时解析为参数,提供方只按本次参数执行。

  • 命令以 125 退出,能直接判定为启动器失败吗: 不能。启动器约定退出码 125,但子进程自己也可能退 125,须结合诊断行判断。

仍会失效的地方

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

来源与核验

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

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