前言¶
在 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 manifest 和 apiproxy 白名单两处文件,并且均先备份。
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 manifest和apiproxy白名单两处文件,并均先备份;建议安装前关闭 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