前言¶
DeepSeek Harness(DSH)采用「一切皆插件」的架构:能力通过 bundle 与 profile 补丁挂载,装得越多,越容易遇到功能重叠、兼容冲突、启停状态难以核对等问题。常见做法是手动翻 cordis.patch.yml、对照 package.json 里的 bundles,或凭记忆判断哪个看图插件、哪个语音插件正在生效——插件一多,维护成本会明显上升。
下面介绍由 MutaLucem 维护的 dsh-plugin-integration(GitHub:MutaLucem/dsh-plugin-integration)。它在 DSH 设置栏底部新增「插件整合」分页,对已装插件做动态发现、打标分类、重叠与兼容检测,并支持一键启停与失效诊断。新装插件会自动出现在清单里,无需改代码或维护硬编码列表。
这是什么¶
dsh-plugin-integration 是面向 DSH web profile 的插件整合中心,归类为工作流类插件。当前版本为 1.3.10,采用 MIT 许可证,在 GitHub 上约有 11 个 star。
它解决的核心问题是:在插件数量增长后,如何统一查看已装插件的真实状态,识别功能重叠与兼容冲突,并安全地完成启停与切换。与单纯浏览 bundles 目录不同,本插件会结合运行时数据(如 clientModules.graph()、加载阶段的 fiberPhase)判断插件是否真正生效,并内置精选知识库描述能力边界与重叠组。
社区目录页:SkillHub - dsh-plugin-integration。该目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
安装并重启 DSH 后,设置栏底部会出现 「插件整合」 分页,内含 5 个标签页。顶部汇总卡片展示已装插件数、已启用数、已生效数、兼容冲突数、未入知识库数。
插件清单:动态发现与打标¶
插件清单页通过三层数据模型工作:
- 动态发现:运行时读取 profile
package.json的dsh.profile.bundles,再解析各 bundle 的cordis.patch.yml,提取 entryId 与模块名。新装插件会自动出现。 - 通用元数据回退:未知插件从
package.json派生名称、描述与关键词标签。 - 精选知识库覆盖:已录入插件使用精确标签、能力边界、重叠组与兼容规则;可通过
~/.dsh/dsh-plugin-integration.json扩展或覆盖。
清单支持按入库时间分类与双向排序,提供搜索栏及状态、待更新、tag 筛选;可联网刷新插件 logo 与 GitHub star(自动读取 gh token),并检测 npm/GitHub 上的真实版本。每个插件展示名称、entryId、能力描述、能力边界、多 tag、所属 bundle 及状态(已生效 / 已启用 / 已停用 / 加载失败),并标记「受保护」或「未知」。
重叠切换:功能覆盖识别¶
内置功能重叠组,用于识别同一能力被多个插件覆盖的情况。README 中列出的典型组包括:
| 重叠组 | 成员 | 说明 |
|---|---|---|
| 视觉 / 多模态 | deepeye-vision / modlens / describe-image |
多个看图/OCR 插件并存导致工具冗余 |
| 语音输入 | voice / voice-input |
两个麦克风按钮并存冲突 |
| 右侧面板 / 文件管理 | better-sidebar / ui-dsh-aionui-panel |
都占用右侧详情列 |
| 插件管理 / 市场 | dsh-market / plugin-console |
两个管理器互相覆盖组合补丁 |
每组显示当前生效、已启用但未生效、未启用等状态。点「切换为此」会停用组内其余插件、仅保留所选。对每个插件还区分四态:完全生效、部分生效、已停用、失效。
兼容检测:存在性与共用性¶
兼容检测页区分三类问题:
- 存在性冲突(
existence):插件只要共存于同一目录就会出问题,例如同一条目既走 bundle 通道、又在 profile 补丁里手动insert(双重挂载)。 - 共用性冲突(
coexistence):同时启用才出问题,内置规则与重叠组对应,每条附带修复预案,可一键「采用」。 - 工具名冲突(
tool-name):两个插件注册同名工具时,后加载者会导致宿主在就绪前退出;若冲突方提供关闭工具注册的配置(如tool: false),可尝试共存,否则只能二选一停用。
此外会单独展示 fiberPhase === 'failed' 的运行时加载失败项。
启用 / 停用与核心保护¶
启用 / 停用页可对已装插件做启停,操作写入 profile 的 cordis.patch.yml(disabled: true/false),与官方 dsh-skin 同机制。独立 bundle 形态下,profile 的 HMR 监听器可让变更热重载即时生效,无需重启。
protected 保护名单中的核心条目(默认含 ui-web-ui-compat)禁止停用,UI 与 RPC 层均会拦截,避免误停导致 DSH 无法进入。
失效检测与操作日志¶
在清单、重叠或启停页,可对「已启用但疑似未生效」的插件点「判定失效」,结果持久化到 ~/.dsh/dsh-plugin-integration.state.json。失效插件页集中展示手动判定与可疑项,detectFailures 会诊断具体原因并给出修复方案与影响说明,例如缺少 ./client 产物需 pnpm run build、被 cordis.patch.yml 停用需重新启用、或被其它插件覆盖等。
标题栏提供「操作日志」按钮,分当前日志(本次启动)与历史日志,支持删除与清空,持久化到 ~/.dsh。设置窗口支持浏览器原生 resize 拖拽调整大小,尺寸写入 localStorage;标题栏「重置窗口」可恢复默认 800×800。
动态工具¶
Host 半注册动态工具 plugin_integration,供模型或脚本调用;RPC 暴露 analyze、toggle、switch、applyFix 等接口。
安装与启用¶
在 web profile 下执行官方安装命令:
dsh plugin --profile web add github:MutaLucem/dsh-plugin-integration
重启 DSH 后,设置栏底部会出现「插件整合」分页。
仓库同时提供动态插件形态(src/host.js + src/client.js)与独立 bundle 形态(src/host.standalone.js + src/client.standalone.js)。package.json 默认指向独立 bundle 形态,也是 README 推荐的发布安装方式。
典型用法¶
查看已装插件并筛选¶
- 打开 DSH 设置,进入底部「插件整合」分页。
- 在「插件清单」标签页查看动态发现的插件列表。
- 用搜索栏或 tag / 状态筛选定位目标插件,核对 entryId、能力边界与生效状态。
处理功能重叠¶
- 切换到「重叠切换」标签页。
- 找到对应重叠组(如视觉 / 多模态、语音输入)。
- 查看组内各插件的生效状态,点「切换为此」保留一个、停用其余。
运行兼容检测并应用修复¶
- 打开「兼容检测」标签页,执行自检或手动检测。
- 查看存在性冲突、共用性冲突或工具名冲突及附带的修复预案。
- 对共用性冲突可点「采用」一键应用;工具名冲突需按预案停用一方或调整配置。
启停插件¶
- 在「启用 / 停用」标签页搜索目标插件。
- 切换启用状态;受保护条目会显示「受保护」且无法停用。
- 独立 bundle 形态下变更通常热重载生效;若未生效,重启 DSH。
自定义知识库与规则¶
将默认配置复制为 ~/.dsh/dsh-plugin-integration.json 后编辑,无需重新编译:
{
"protected": ["ui-web-ui-compat"],
"plugins": {
"my-plugin": {
"label": "我的插件",
"category": "某类",
"tags": ["某tag"],
"stars": 123,
"capability": "…",
"boundary": "…"
}
},
"overlaps": [],
"compatRules": []
}
合并规则:plugins 按 key 合并(用户条目覆盖或新增),overlaps、compatRules、protected 整体替换。
适用场景与注意¶
适合谁
- 在 DSH web profile 下安装了多个功能相近插件(看图、语音、侧边栏、插件市场等),需要明确当前哪个在生效。
- 需要定期检查 profile 补丁与 bundle 之间是否存在双重挂载或共用性冲突。
- 希望在不直接编辑 YAML 的情况下安全启停插件,并保留操作日志。
使用前注意
- 本插件以当前 DSH 进程的权限运行,会读取
package.json、cordis.patch.yml、~/.dsh下的配置与状态文件,并写入 profile 补丁。安装前应阅读源码与 MIT 许可证,确认可接受其文件访问范围。 - 联网刷新 star 与版本检测依赖
ghtoken 及外部网络;未知插件的标签来自通用回退,精确描述依赖知识库或你的自定义配置。 - 兼容规则与重叠组随版本更新,具体条目以仓库
config.default.json及 README 为准。 - SkillHub 目录页为社区收录,安装命令以 README 与本文所列
dsh plugin --profile web add为准。
结尾¶
dsh-plugin-integration 把 DSH 插件的发现、分类、重叠切换、兼容检测、启停与失效诊断集中到设置页的一个入口里,减少手动维护 bundles 与补丁的成本。若你已在 web profile 下积累了一批插件,可以把它当作日常巡检与切换的操作面板。