dsh-sandbox-tester:为 DSH 插件测试提供进程级隔离沙盒

前言

在 DeepSeek Harness(DSH)上做插件开发、补丁修改或测试时,改动如果直接进入本体运行,测试失败带来的影响范围会更大。dsh-sandbox-tester 是一个 DSH 插件,用于把待测改动放进隔离沙盒中先跑,再决定是否合回本体。

下面介绍它的定位、核心能力、安装方式、典型用法和注意事项。

这是什么

  • 仓库:Sutera-Diffusus/dsh-sandbox-tester
  • 维护者:Sutera-Diffusus
  • 许可证:MIT
  • 定位:为 DSH 提供进程级隔离测试场

它解决的核心问题是:插件或补丁改动先在沙盒实例中运行,避免测试阶段的问题直接影响本体。

核心功能

进程级隔离沙盒

每个沙盒实例具备以下隔离项:

  • 独立进程
  • 独立 DSH_HOME
  • 独立端口,从 3182 起,冲突时自动 +1

每个沙盒默认裁剪复制约 270 MB

9 个原生工具

dsh-sandbox-tester 提供以下工具:

  • sandbox_list:查看当前沙盒
  • sandbox_create:创建沙盒
  • sandbox_inject:把待测插件或补丁注入沙盒
  • sandbox_run:运行沙盒
  • sandbox_health:检查沙盒健康状态
  • sandbox_stop:停止沙盒
  • sandbox_destroy:销毁沙盒
  • sandbox_merge:门禁式合回
  • sandbox_prune:清理沙盒,适合处理超龄沙盒

合回门禁

sandbox_merge 默认 dryRun,只执行校验并产出结果,不进行真实写入。合回流程包含:

  • 目标白名单
  • 逐文件 node --check
  • bundle 校验
  • 备份计划与回滚清单

真实写入需要设置:

DSH_SANDBOX_MERGE_ALLOW=1

如果真实写入失败,会自动回滚。

一键 QA

一键 QA 通过 CDP 9223 驱动 headless Edge,检查以下内容:

  • 首页
  • /plugins/dsh-sandbox/client.js
  • 设置页「测试沙盒」区段
  • 控制台异常

检查结果会产出报告。

设置页管理

在 DSH 设置的「测试沙盒」区段中,可以:

  • 查看沙盒卡片
  • 新建沙盒
  • 查看 48h 超龄提示
  • 一键清理
  • 查看合回门禁摘要

终止安全

sandbox_stop 在执行前会反查 3080 监听 PID。如果目标进程树包含本体,会拒绝执行。

安装与启用

环境要求

  • 操作系统:Windows 10/11
  • Node.js:18+
  • DeepSeek Harness:0.1.0-rc.6 或同系列版本

安装步骤

1、获取 dsh-sandbox-tester,并确认 DSH 安装目录。下文以 <DSH_INSTALL_DIR> 表示该目录。

2、建议安装前关闭 DSH 页面。然后执行安装脚本:

node install.mjs --target "<DSH_INSTALL_DIR>"

安装脚本会修改 DSH 安装目录中的 profile manifestapiproxy 白名单两处文件,并且均先备份。

3、重启 DSH。

4、打开设置页,查看「测试沙盒」区段;再让 Agent 调用 sandbox_list,确认工具已注册。

典型用法

让 Agent 执行完整测试流程

可以在会话中要求 Agent 按以下顺序执行:

1、sandbox_create
2、sandbox_inject
3、sandbox_run
4、健康检查通过后执行 sandbox_merge

也可以直接说明:

用测试沙盒验证这个补丁:先 sandbox_create,再 sandbox_inject,然后 sandbox_run,健康检查通过后 sandbox_merge

查看和清理沙盒

sandbox_list 查看当前沙盒,并清理超龄沙盒。

运行本地测试

node test/smoke.mjs
node test/e2e.mjs
node test/qa-cdp.mjs <port>

其中 <port> 需要替换为目标实例端口。

适用场景与注意

适合在 DSH 上开发插件、打补丁或做测试的场景。使用前注意以下几点:

  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。该插件许可证为 MIT。
  • 安装脚本会修改 profile manifestapiproxy 白名单两处文件,并均先备份;建议安装前关闭 DSH 页面。
  • sandbox_merge 默认 dryRun;真实写入需要显式设置 DSH_SANDBOX_MERGE_ALLOW=1,失败会自动回滚。
  • 每个沙盒默认裁剪复制约 270 MB,需要预留磁盘空间。
  • 插件不读取、不上传用户凭据或会话数据;无遥测、无外部网络请求;一键 QA 仅连本机 127.0.0.1

小结

dsh-sandbox-tester 的价值在于把 DSH 插件测试从直接改动本体,变成先隔离运行、再按门禁合回的流程。

  • GitHub 仓库:https://github.com/Sutera-Diffusus/dsh-sandbox-tester
  • 社区目录:在 DSH 社区目录中搜索 dsh-sandbox-tester
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜