前言¶
DeepSeek Harness (DSH) 采用「一切皆插件」的架构。官方设置页提供了一个只读的插件清单,无法直接在运行时切换插件状态,也不区分不同来源的插件层级。当需要在开发调试中快速启用或禁用某个插件时,这种机制会带来不便。
dsh-plugin-hotplug 解决了这个问题。它是一个热插拔管理器和替代插件清单 UI,用一份具备来源感知的清单替换了官方只读清单,并提供了安全的运行时控制能力。
插件信息¶
- 名称: dsh-plugin-hotplug
- 描述: DeepSeek Harness (DSH) 的热插拔管理器和替代插件清单 UI
- 作者: zhangnan
- 许可: MIT
核心功能¶
该插件在清单展示和运行时控制上具备以下能力:
- 分层分组: 按当前配置文件、第三方 Profile Bundles、全局层和 DSH 内置插件进行分组展示。
- 即时控制: 对当前配置文件插件和第三方 Bundles 进行启用/禁用操作,无需重启 DSH 进程。
- 状态持久化: 将开关状态写入当前配置文件的
cordis.patch.yml中。 - 生命周期管理: 基于 Cordis Loader 生命周期实现可逆的热卸载与恢复。
- 状态分离: 在 UI 中分别展示配置状态和运行时 Fiber 阶段的状态。
- 安全保护: 对 Web 传输、UI Shell、全局插件以及管理器自身进行保护,防止误删。
安装与使用¶
- 安装插件:
dsh plugin --profile web add -w dsh-plugin-hotplug
- 安装完成后,需重启 Web Profile 以使管理器生效。
- 在设置页中,插件会替换原本只读的清单 Tab,提供可操作的开关。
适用场景与注意¶
- Profile Patch 插件: 可以通过当前配置文件的 Patch 插入的插件进行开关控制。
- 第三方 Bundle: 支持对第三方 Profile Bundles 进行开关控制。
- 层级限制: 由于配置文件层优先于全局层,全局层插件在清单中显示为只读。DSH 内置插件同样为只读。
- 核心保护: Web 传输、UI 入口、全局插件以及该插件本身始终处于受保护状态,不会被意外移除。
- 状态写入: 插件将持久化状态写入一个小的托管区域,而不是重写整个用户补丁文件。
总结¶
该工具为 DSH 用户提供了更精细的插件管理手段,解决了官方界面功能受限的问题。通过热插拔机制,可以更方便地进行插件调试和配置管理。
- 插件目录: https://www.skillhub.cn/plugins/zhangnan/dsh-plugin-hotplug
- 源码地址: https://github.com/zhangnan/dsh-plugin-hotplug