前言¶
DeepSeek Harness (DSH) 的核心设计理念是「一切皆插件」。随着插件生态的丰富,手动维护依赖、检查更新以及通过配置文件管理启停状态变得繁琐。dsh-plugin-mgr 是一个插件管理插件,它为 DSH 的 Web 界面新增了「插件管理」子页面,用于卡片式管理已安装插件,并提供启停、卸载、版本检查与搜索功能。
核心功能¶
该插件通过 Host/Client 分离架构实现功能,主要包含以下能力:
- 卡片式列表与视图切换:以卡片形式展示已安装插件,显示名称、版本、运行状态和启停开关。支持单列/双列布局切换,并自动记忆用户偏好。
- 启停与卸载管理:
- 启停:通过操作
cordis.patch.yml配置文件实现插件的启用/停用。修改后约 1s 通过热重载 (HMR) 生效,且状态跨重启保留。 - 卸载:支持一键卸载,操作前会进行二次确认。卸载流程会先清理启停配置,再执行
dsh plugin remove命令。
- 启停:通过操作
- 详情与搜索:
- 详情:点击卡片可展开详情,查看版本号、安装来源(npm/GitHub/本地)、仓库地址及插件介绍。
- 搜索:工具栏提供搜索框,支持按名称、描述或 spec 进行大小写不敏感的过滤。
- 更新检查:
- 仅支持 npm 来源插件的更新检查。
- 自动比对 npm registry 最新版本(结果缓存 5 分钟),卡片显示「可更新」徽标。
- 支持一键更新到最新版,更新过程不会冲掉已有的启停状态。
- 运行错误展示:监听宿主的 fiber 状态事件。当插件加载失败时,卡片会显示红色「加载失败」标识,详情页展示具体错误信息;插件恢复运行后自动清除失败状态。
安装与启用¶
在安装前,请确保宿主环境已安装 DeepSeek Harness 并运行 dsh web。
使用官方提供的命令安装插件:
dsh plugin --profile web add dsh-plugin-mgr
安装完成后,在 dsh web 界面中依次进入「设置」→「插件」标签,点击「插件管理」子页面即可查看已安装插件列表。
实现细节与注意事项¶
- 架构设计:
- Host 侧:负责注册 API 路由(列表、启停、卸载、更新检查)和读写
cordis.patch.yml配置文件。 - Client 侧:负责在设置页面的插件 tab 中注入 UI,展示卡片列表、搜索框和详情面板。
- Host 侧:负责注册 API 路由(列表、启停、卸载、更新检查)和读写
- 安全与限制:
- 宿主保护:宿主的基础设施模块拒绝被插件管理器启停或卸载;插件管理器自身的开关与卸载按钮在 UI 上会被置灰。
- CSRF 校验:所有 POST 接口均校验 CSRF 门卫,并限制请求体上限为 64KB。
- 更新范围:更新检查仅支持 npm 来源的插件,宿主模块与自身无法通过此功能更新。
- 稳定性与并发:
- 补丁层写入操作已做串行化处理,防止并发交错导致配置损坏。
- 运行错误捕获通过
cordis internal/status事件实现,不依赖轮询,能够即时感知插件失败与恢复状态。
生态背景¶
DeepSeek Harness 的插件生态由社区维护,与 DeepSeek 或幻方在技术层面无官方从属关系。在使用第三方插件前,请务必检查源码与许可证。