前言¶
DeepSeek Harness(dsh)的内置沙箱与进程管理能力,在复杂场景下可能无法满足精细化的文件策略与审计需求。如果需要更强的执行边界、结构化审计事件以及环境凭证清理能力,可以在 dsh 中替换为 RunSeal 提供的沙箱服务。
插件定位¶
runseal-labs/dsh-tool-runseal 是一个独立的 DeepSeek Harness 插件。它将 dsh 的内置沙箱替换为 RunSeal,在 Windows、macOS 和 Linux 上提供基于 OS 原生的策略执行边界,支持文件系统策略、进程清理、结构化审计事件与环境凭证清理。插件版本 0.2.6 内置 RunSeal 0.2.3,与 dsh 0.2.1-rc.2 的发布包兼容。
提供的能力¶
ctx.sandbox提供者:继承自SandboxProvider,通过confine()方法将命令行参数封装为 RunSeal RPC 调用。ctx.subprocess提供者:管理 RPC 执行、输入流传输、输出收集与清理完成,支持取消操作。- 策略映射:dsh 的
read-only与workspace-write映射到 RunSeal 的对应沙箱级别;调用者工作目录与可写工作区根目录独立解析。 - 网络模式:
unmanaged(默认,不隔离网络)、disabled(禁用网络)、proxy(受认证代理管理,目前不实现基于路由的企业允许列表)。 - 流式输出:通过
execution.stdout与execution.stderrRPC 事件将输出转发到消费者标准输入输出,退出码一并传播。 - 容错与审计:安装缺失或后端不可用时拒绝调用;受限子进程失败暴露
SANDBOX_UNAVAILABLE;插件会打印runseal: <reason>并返回非零退出码。执行生命周期事件与 JSONL 记录会在execution.finished或execution.failed时生成。
安装¶
使用 npm 仓库安装插件包:
dsh plugin --profile web add dsh-tool-runseal@0.2.6
安装后重启 dsh,在 Web 界面打开 Plugins → RunSeal 进行配置。插件 0.2.6 会在 npm 的 postinstall 阶段下载 RunSeal 0.2.3,根据当前操作系统与架构选择对应的二进制,验证 SHA-256 校验和,并将可执行文件与 Windows 辅助工具安装到包内。
支持的平台与架构:Windows、macOS、Linux(x64 或 arm64)。安装需要访问 GitHub Releases 和启用的 npm 生命周期脚本;如果包管理器阻止脚本,允许该包的安装脚本或使用 npm rebuild dsh-tool-runseal 启用脚本。
配置¶
在 dsh 的会话访问模式中选择 read-only、workspace-write 或 full access。插件继承该策略,无需单独启用沙箱开关。
| 字段 | 默认值 | 说明 |
|---|---|---|
command |
空(自动) | 自定义可执行文件路径或 PATH 名称。空时优先使用 RUNSEAL_BINARY,否则使用包内下载的二进制。 |
subprocess |
true |
注册 RPC 管理的子进程提供者。仅在纯沙箱集成场景下设为 false;旧版 Windows 杀死范围限制会保留。 |
args |
[] |
在 rpc 子命令前传递的额外参数(不经过 shell 展开)。 |
networkMode |
unmanaged |
网络策略:unmanaged、disabled 或 proxy。 |
maxStdinBytes |
65536 |
RunsealEngine.execute() 缓冲输入的最大字节数;包装器的流式输入独立管理。 |
timeoutMs |
600000 |
受限调用的超时时间。普通子进程调用使用调用方的取消/截止时间。 |
autoSetup |
true |
仅用于包装器的历史集成:请求 Windows 沙箱设置,并在首次拒绝后重试一次。子进程提供者需要在运行前完成设置,不会触发 UAC。 |
使用方式¶
- 受限调用:通过
confine(argv, policy, signal)返回Promise<ConfinedArgv>,参数结构为[node, wrapper.cjs, {command, args, argv, cwd, policy, network, timeoutMs}]。 - 子进程提供者:识别该插件包装器参数后,直接将原始命令发送给 RunSeal,不启动包装器。普通子进程调用使用
danger-full-access,保持原有无限制语义。 - 工作区根目录:调用者工作目录与可写工作区根目录分别解析,避免策略冲突。
- 可执行名称解析:在准入前基于执行的有效 PATH 与工作目录解析子进程名称;参数不经过 shell 展开。独立包装器使用相同的解析器。
- Shell 内建:Shell 内建仍需显式指定 shell。
适用场景与注意事项¶
- 适合需要细粒度文件策略、结构化审计与凭证清理的 dsh 应用场景。
- 插件以当前 dsh 进程的权限运行,需要确保环境与配置符合安全策略。
- 在 Windows 受限模式下(
read-only或workspace-write)首次使用前,需执行一次沙箱设置:
runseal setup windows-sandbox --cwd <workspace> --elevate
- 安装前建议检查源码与许可证(MIT),确保符合使用场景要求。
- 插件版本 0.2.6 内置 RunSeal 0.2.3;如果需要离线安装或自定义可执行文件,可在安装时设置
RUNSEAL_SKIP_DOWNLOAD=1并配置command,或设置RUNSEAL_BINARY。
生态背景¶
DeepSeek Harness 遵循「一切皆插件」的理念,该插件通过独立仓库维护,与 DeepSeek 或幻方无官方从属关系。
总结¶
runseal-labs/dsh-tool-runseal 在 dsh 中引入 RunSeal 原生沙箱与进程管理能力,提供文件策略、网络控制、审计事件与凭证清理。通过官方安装命令即可启用,并在 Web 界面进行细粒度配置。
目录页:https://www.skillhub.cn/plugins/runseal-labs/dsh-tool-runseal
GitHub:https://github.com/runseal-labs/dsh-tool-runseal