前言¶
DeepSeek Harness(dsh)把模型、工具、沙箱、会话和界面都做成可替换的 Cordis 插件。开发者预览阶段里,往 Profile 里加 Bundle 很方便,麻烦通常出在后面:证据散落在浏览器收藏和聊天记录里、不同任务抢同一份上下文、装插件前不知道包里有什么、RC 升级后哪些 Bundle 会挂。改完 cordis.patch.yml 再回滚,也缺少一份可核对的计划。
社区目录把这类能力归在「工具与能力」。dsh-toolbox 的做法是把产品研究、上下文切换、插件预检和兼容性监控做成四个本机 Bundle,再用一个跑在 Harness 进程外的控制台去看 Profile、做健康检查、预览变更并回滚。本文按目录页、GitHub 仓库 README、package.json 和 LICENSE 核对后整理。
需要先说明两件事。DeepSeek Harness 的官方仓库是 deepseek-ai/deepseek-harness,核心理念是「一切皆插件」。社区插件目录 deepseek-harness-plugin.com 是独立站点,和 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。dsh-toolbox 的 README 也写明:项目独立开发,与 DeepSeek 无隶属或背书关系。
这是什么¶
dsh-toolbox 是给单人本地工作流准备的 DeepSeek Harness 配套工具,由 HiWhaleW 维护,源码在 HiWhaleW/dsh-toolbox。目录页分类为「工具与能力」。截至 2026-08-17,目录页与 GitHub 仓库星标均为 26。仓库版本为 0.2.1,主要语言是 JavaScript。
它要解决的不是再做一个聊天皮肤,而是这几件事:
- 把公开网页或粘贴文本收成可追溯的研究证据,并导出 Markdown / HTML 报告
- 按任务路由到有边界的运行时上下文,激活后可以回滚
- 安装前静态检查本地 Bundle 的包语义、能力信号、SBOM 和指纹
- 对照目标运行时做兼容性快照,升级前先看差异
- 在 Harness 进程外查看 Profile、规划 Bundle 变更、备份并回滚
四个功能包作为原生 DSH Profile Bundle 运行;第五项 DSH Switchboard 刻意放在当前 Harness 进程之外。README 的理由很直接:正在跑的插件不应该去改启动它自己的那份配置。
0.2.1 及之后的源码采用 PolyForm Noncommercial License 1.0.0,允许个人学习、研究、实验、教育和许可文本定义的非营利用途,不允许商业使用。目录页和 GitHub 的 SPDX 字段显示为 NOASSERTION,是因为这份许可证不在 GitHub 常见 SPDX 列表里;以仓库 LICENSE 原文为准。更早已经按 MIT 分发的副本,仍受当时授权约束。
核心功能¶
仓库把能力拆成五个包。前四项可独立安装,第五项是源码分发的本地控制面,目前不是任何 DSH Profile 的 npm 依赖。
| 组件 | 日常用途 | 工具数 |
|---|---|---|
@dsh-toolbox/product-research-workbench |
导入 URL / 文本证据,整理发现、评估机会、备份项目并生成报告 | 12 |
@dsh-toolbox/context-switchboard |
把任务路由到有边界的上下文,激活原生运行时上下文并支持回滚 | 10 |
@dsh-toolbox/plugin-preflight |
安装前检查本地 Bundle 的包语义、能力、策略、SBOM 与指纹 | 2 |
@dsh-toolbox/compatibility-radar |
发现 Bundle,对比目标运行时,保存 / 比较快照并生成升级报告 | 7 |
@dsh-toolbox/dsh-switchboard |
发现 Profile、检查 Bundle、规划变更、验证、备份、报告与回滚 | CLI / 控制面 |
四个 Bundle 合计 31 个工具。SECURITY.md 的发版检查清单也要求:在隔离的 DSH_HOME 里装入四个打包后的 Bundle,核对 --dump-config、全部 31 个工具注册,以及原生运行时上下文。
产品研究工作台¶
product-research-workbench 把粘贴文本和公开网页收成证据卡片、痛点聚类、机会评分和报告。抽取与聚类用的是本地确定性规则,不是再调一次模型。URL 导入只对未认证的公开 http(s) 页面发 GET,默认拦截回环、私网、链路本地、元数据等非公开地址。登录爬取、浏览器 Cookie、验证码绕过和社交媒体抓取不在 MVP 范围内。
默认数据目录是 ~/.local/share/dsh-toolbox/product-research-workbench。报告可同时出 Markdown 和自包含 HTML,HTML 不加载远端脚本。research_export 默认不带原文;只有显式打开 includeSourceContent=true 才会把原始文本打进可恢复的 JSON 备份。
上下文切换¶
context-switchboard 保存带关键词、指引、资源指针和 token 预算的上下文配置,按任务做确定性路由,再通过 DSH 原生的 systemPrompt.context() 注册表注入一份有边界的运行时上下文快照。当前完整包会物化成会话里的快照,并替换上一份,而不是越积越厚。它不替换部署人设、沙箱策略或审批策略。资源指针只是标签,插件不会自动打开这些路径。
建议流程是:context_profile_save → context_route → context_activate → context_current / context_history → context_rollback。
插件预检与兼容性雷达¶
plugin-preflight 是只读静态扫描。plugin_preflight_scan 检查包清单、Profile Bundle 的 patch 语义、打包文件、许可证声明、生命周期脚本、依赖名、符号链接、文件大小,以及 JS/TS 里的能力信号,并给出结构化发现、打包内容的 SHA-256 指纹、依赖 SBOM 和 Markdown。plugin_preflight_report 再写成私有 Markdown / HTML 回执。它不执行脚本、不装依赖、不跟随符号链接、不访问注册表。扫描通过不是安全保证。
compatibility-radar 读取允许范围内的本地 package.json,对照目标运行时做矩阵,可保存快照并用 compatibility_diff / compatibility_report 看升级风险。它理解当前 DSH 插件里常见的精确版本、比较符、caret、tilde、通配和 || 范围。雷达不会自动升级软件,也不在后台查注册表。预发布 semver 仍要靠一次真实安装冒烟。
Switchboard:进程外的本地控制台¶
DSH Switchboard 发现 $DSH_HOME/profiles 下的 Profile,解释有序的 Bundle 层,调用 Preflight 和 Radar,生成可审阅的变更计划,用官方 dsh --profile <name> --dump-config 做运行时校验,并在 SQLite 里留下备份和回滚回执。只读检查不要求 dsh 在 PATH 上;写入或回滚默认需要 CLI,因为一次成功的 dump-config 是安全门。
图形界面从仓库检出后启动:
pnpm install --frozen-lockfile
pnpm switchboard:gui
然后打开 http://127.0.0.1:4173/。服务只监听本机回环地址,读取 $DSH_HOME/profiles,不展示 API 凭据,写入前必须经过审阅。界面左侧导航四个工作视图:DSH Profiles、Plugins、Activity、Settings;右侧固定最近活动。
仓库 README 还提供在线交互演示:https://dsh-toolbox.lisongyang0130.chatgpt.site 。在线版只在当前浏览器内存里模拟健康检查、Bundle 开关、变更计划、活动和回滚,刷新即复原。它不会连接访客电脑,也不会读取 DSH Profile、API 凭据或 SQLite。装上本地版之后才会接通真实 DSH 链路。
安装与启用¶
目录页给出的安装命令是:
dsh plugin add github:HiWhaleW/dsh-toolbox
如需可复现安装,目录页建议固定 commit:
dsh plugin add github:HiWhaleW/dsh-toolbox#commit
把 #commit 换成实际哈希。插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源码仓库和许可证。
根仓库的 package.json 标记为 private workspace,SECURITY.md 写明尚未发布 npm 包或 GitHub Release。README 把已经验证过的便携流程写成:先 npm pack 四个工作区包,再分别加入同一个 Profile。打包本身不执行插件代码,也不要求先装仓库依赖。
环境要求来自 README:
- Node.js
^22.19.0 || >=24.0.0(使用内置node:sqlite) - npm,用于打包本地 Bundle
@deepseek-ai/dsh@0.1.0-rc.6- 一个你有权修改的本地 DSH Profile
已验证的组合是 DeepSeek Harness 0.1.0-rc.6、DSH Tools 0.1.0-rc.6、Cordis 4.0.1,以及 Node.js 24.x 和声明的 22.19+ 范围。若本机还没有钉住的 CLI:
npm install --global @deepseek-ai/dsh@0.1.0-rc.6
dsh --version
五分钟安装(仓库 README 原文流程,版本号对应 0.2.1):
git clone https://github.com/HiWhaleW/dsh-toolbox.git
cd dsh-toolbox
mkdir -p dist
npm pack --workspace @dsh-toolbox/product-research-workbench --pack-destination dist
npm pack --workspace @dsh-toolbox/context-switchboard --pack-destination dist
npm pack --workspace @dsh-toolbox/plugin-preflight --pack-destination dist
npm pack --workspace @dsh-toolbox/compatibility-radar --pack-destination dist
dsh plugin --profile toolbox add ./dist/dsh-toolbox-product-research-workbench-0.2.1.tgz
dsh plugin --profile toolbox add ./dist/dsh-toolbox-context-switchboard-0.2.1.tgz
dsh plugin --profile toolbox add ./dist/dsh-toolbox-plugin-preflight-0.2.1.tgz
dsh plugin --profile toolbox add ./dist/dsh-toolbox-compatibility-radar-0.2.1.tgz
dsh --profile toolbox --dump-config
最后一条应能看到四个 Bundle 层。之后用同一 Profile 启动:
dsh --profile toolbox
可以只装需要的 tarball。各包没有 install lifecycle scripts。也可以在仓库根目录 npm install 后按检出路径安装,但 tarball 更接近 npm 打包语义,也是文档里验证过的便携方式。
Switchboard 目前是源码分发的技术预览,从检出目录运行:
npm run switchboard -- detect
npm run switchboard -- profiles
npm run switchboard -- inspect toolbox
npm run switchboard -- health toolbox
变更命令是 plan-first:没有 --apply 时只打印计划、不写盘。
npm run switchboard -- bundle disable toolbox @dsh-toolbox/context-switchboard
npm run switchboard -- bundle disable toolbox @dsh-toolbox/context-switchboard --apply
npm run switchboard -- history
它会保存 SHA-256 状态指纹、原子写入备份和 SQLite 回执;过期计划会被拒绝,也不会在用户后续手工改过 Profile 之后强行回滚。
典型用法¶
四个 Bundle 在 DSH 里注册工具,不是独立的 shell 命令。可以对助手直接点名工具,也可以描述目标,让 dsh 选择。
产品研究的建议顺序:
research_create → research_add_source → research_extract
→ research_evidence_add(可选的人工校正)
→ research_analyze → research_report
README 里的示例请求:
Create a research project called "Local AI research workflows".
Import this pasted interview text, extract evidence, analyze the opportunities,
and generate both Markdown and HTML reports.
上下文切换的示例请求:
Save a context profile named "DSH plugin development" with the keywords
"dsh", "cordis", and "plugin"; use a 1,200-token budget. Route this task,
activate the best profile, and show me the activation receipt.
安装前预检:
Run plugin_preflight_scan on packages/context-switchboard and explain every
finding before I install it. Then create the Markdown and HTML audit report.
兼容性快照:
Discover DSH bundles under packages, check them against DSH Tools 0.1.0-rc.6,
Cordis 4.0.1, and my current Node version, then save a compatibility snapshot.
改 DSH 或 Cordis 版本前,再存一份快照,用 compatibility_diff 或 compatibility_report 看回归。雷达不会替你升级。
默认数据目录都在 ~/.local/share/dsh-toolbox/ 下,按组件分子目录。运行数据库、报告、导出、会话、环境文件和 Cookie 已被仓库 .gitignore 排除,提交前仍应检查暂存区。研究报告和导出可能含原文、引文、URL、本地路径或个人信息,外发前要审一遍。
适用场景与注意事项¶
适合这些人和场景:
- 本机跑 DeepSeek Harness,Profile Bundle 越装越多,需要可视化检查和可回滚变更
- 做产品调研时希望证据、分析和报告留在本机 SQLite,而不是送到托管后端
- 写或审查社区插件,安装前要看包语义、lifecycle scripts 和能力信号
- 钉在
0.1.0-rc.6这类 RC 上,升级前想先留兼容性快照
使用时注意下面几条,均来自目录页或仓库文档:
- 插件以当前 dsh 进程权限运行。 安装可能执行代码。装前检查源码和许可证;要可复现就固定 commit。
- 这是实验性 MVP,仅限非商业用途。 DeepSeek Harness 仍处于 Developer Preview,版本升级可能影响 Profile Bundle 兼容性。商业产品、收费服务、商业咨询交付物或内部业务用途,按许可文本均不允许。
- 在线演示不等于本机数据。 演示站只在浏览器内存里模拟;真实 Profile、备份和 SQLite 只在本地完整版出现。
- 预检通过不是安全保证。 静态扫描可能漏掉传递依赖、混淆代码、原生模块或运行时行为。SBOM 来自清单,不是已解析的依赖图。
- 上下文包不会改沙箱和审批。 导入的上下文配置应按不可信配置审阅后再激活。
- Node 版本有硬门槛。 需要
^22.19.0 || >=24.0.0。Switchboard GUI 绑在127.0.0.1,不是多用户授权边界;同一操作系统用户下的其他进程仍可能直接读 Profile 或备份。 - 报告可能带本地路径。 截图、诊断和 HTML 报告外发前应脱敏。完整边界见仓库 PRIVACY.md 和 SECURITY.md。
小结¶
dsh-toolbox 把产品研究、上下文路由、插件预检和兼容性监控收进四个本地 Bundle,再用进程外的 Switchboard 做 Profile 健康检查、变更计划和回滚。数据默认留在本机 SQLite,没有账号、托管后端和遥测。对正在本地折腾 DeepSeek Harness Profile 的人来说,它主要补的是「装得进去、改得回去、升级前能先看一眼」。
相关地址:
- 目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-toolbox/
- GitHub:https://github.com/HiWhaleW/dsh-toolbox
- 在线演示(仅浏览器内存模拟):https://dsh-toolbox.lisongyang0130.chatgpt.site
- DeepSeek Harness 官方仓库:https://github.com/deepseek-ai/deepseek-harness