DeepSeek Harness 的官方插件页面是只读的:它列出模块名,但不解释它们是做什么的。想关掉一个插件,需要手改 cordis.patch.yml。技能那边更糟:装了 57 个技能,其中 14 个模型根本看不到。这个插件在同一个页面添加了一个“插件管家”标签页,补上这些事。
插件管理¶
1. 插件说明¶
界面展示插件的中文名与说明。说明按优先级获取:dshhub.summary、package.json 的 description、README.md 首段(自动剥离 Markdown 标记)。实测覆盖率中,description 覆盖了绝大多数插件。
2. 来源徽章¶
界面根据 pnpm-lock.yaml 判定来源:
* 官方:包名在 @deepseek-ai/ 命名空间下。
* 社区:lockfile 中为普通 semver 版本号。
* GitHub 直装:lockfile specifier 为 github:owner/repo#tag。
* 本地链接:specifier 为 file: 或 link:。
3. 热生效开关¶
提供一键停用/启用功能,通过 Cordis 的 Entry.update({ disabled }) 更新通道实现。停用时 loader 会 await _dispose(fiber) 注销工具与路由;启用时重新 init() 装配。此操作热生效,无需重启。状态保存在 ~/.dsh/plugin-manager.json,重启后自动重放。
4. 安全卸载¶
卸载流程包含快照、移除与校验:
1. 先快照 entry 的 options。
2. 执行 loader.remove()。
3. 校验确实移除;若仍在,按快照 loader.create() 恢复原状。
官方 @deepseek-ai/* 组件禁止卸载(会破坏启动),界面会置灰相关按钮。
5. 噪声过滤¶
列表会自动过滤非插件库(没有 dsh.bundle 的普通依赖)和框架内部条目(如 cordis:include、node:* 等)。
技能管理¶
插件管家页支持在“插件”与“技能”分段切换。
1. 唯一可用触发方式¶
界面展示技能的 invocation 策略:
* 模型自动加载 + / 命令:模型会自己调用,也可用 /name 手动唤起。
* 仅模型自动加载:模型可见,/name 不可用。
* 仅 / 命令:模型看不到它,只能用 /name 手动唤起。
* 均不可用:已停用。
2. 两个真开关¶
提供两个独立开关:模型自动加载与 / 命令可用。插件注册一个 rank 0 的影子 provider,将策略置为 false。消费点(模型目录、加载守卫、命令目录)均按策略过滤,实现真正的热生效。
3. 清理线索¶
界面会标记不生效的技能:
* 目录内有不生效的 SKILL.md:加载器只认 <技能名>/SKILL.md,嵌套目录一律忽略。
* 混入非技能文件:如根目录出现 package.json。
4. 来源与升级¶
根据路径反解归属:
* 路径含 node_modules/<pkg>/:显示为“插件提供 · 升级对象 <pkg> v<version>”。
* 路径在 ~/.agents/skills/ 或 ~/.dsh/skills/ 下:显示为“用户安装”。
* 注意:插件不提供自动升级按钮,因为技能本身不具备 git 仓库或安装元数据。
安装与启用¶
dsh plugin --profile web add "github:Amouren7/dsh-plugin-desk#v0.2.1"
安装完成后重启 dsh web,打开 设置 → 插件 → 插件管家。
页面采用懒加载,浏览器可能缓存旧前端。若看不到新标签页,按 Ctrl+Shift+R 强制刷新。
兼容性与依赖¶
系统要求¶
- DSH:
>=0.1.5-rc.1 - Node:
>=20 - Profile:
web
服务依赖¶
技能功能需要部署提供 skills 与 agentPresets 服务,以及可解析的 @deepseek-ai/dsh-scope。缺任一项时,技能开关会拒绝生效。
权限与数据¶
读取权限¶
- profile 的
node_modules(仅读取package.json/README.md)。 pnpm-lock.yaml。- 运行中的 loader 条目。
- 技能注册表。
写入权限¶
~/.dsh/plugin-manager.json(插件停用/卸载记忆)。~/.dsh/plugin-desk-skills.json(技能开关覆盖)。
注意:技能开关不修改任何 SKILL.md 文件,通过影子 provider 覆盖策略。删除状态文件即可复原默认策略。
卸载¶
dsh plugin --profile web remove dsh-plugin-desk
卸载后,上述两个状态文件会保留。若不再需要,可自行删除。
License¶
MIT