dsh-plugin-switchboard:侧边栏一行启停 DSH 插件

前言

在 DeepSeek Harness(DSH)里做智能体或工作流时,往往会装不少插件:有的来自官方 bundle,有的从社区目录安装,有的在本地用路径导入。默认要在设置或插件页里逐项找开关,改完还要自己判断要不要重启 Host。dsh-plugin-switchboard 把这件事收到左侧栏底部:一行一个插件,点一下启停;需要重启的改动会标出来,同一块面板里还能刷新列表、重载界面或结束 Host 进程。下面按安装、界面用法和实现要点说明。

这是什么

dsh-plugin-switchboard 是 DSH 的侧边栏「插件开关板」:面向已安装插件的行级启停,并提示 restart-required、overridden 等宿主返回状态。维护者为 AnJiaqi0926;在 SkillHub 插件目录 中归类为工作流。源码与说明见 GitHub 仓库(MIT,当前包版本 0.1.1)。它不负责安装或卸载 bundle,只管理「哪一行插件当前是否启用」。

核心功能

面板入口在左侧栏底部、设置旁的开关图标。打开后主要能力如下(均来自项目 README):

  1. 分类:默认按来源分成「官方自带 / 市场安装 / 本地导入」三组;组头显示「已启用/总数」,点组头可折叠。判定规则:availability: 'installation' 记为官方自带;source 为 file: / link: 记为本地导入;其余为市场安装。
  2. 搜索与筛选:全部、官方、市场、本地、待重启;也可按插件名搜索。
  3. 发现:列出若干未安装的推荐插件,点「安装」走插件管理器安装。
  4. 一行一个插件:状态点、中文名、模块名、开关;整行可点。
  5. 待重启:宿主返回 application: 'restart-required' 时,该行标「待重启」,顶部黄色横幅并统计条数。
  6. 被覆盖:返回 overridden 时提示「已保存,但被更高优先级层覆盖」,开关此时不会真正生效。
  7. 底部动作:刷新列表;重载界面(location.reload,仅对界面层改动有效);重启 Host。

安装与启用

先确认 DSH 版本满足 >= 0.2.1(package.json 中 engines.dsh 为 >=0.2.1-rc.1,依赖 sidebar.footer.action 与 shell.overlay 插槽)。

命令行安装(将 <profile> 换成你的 profile 名):

dsh plugin --profile <profile> add dsh-plugin-switchboard

也可以在 DSH 桌面端 插件 → 添加插件 中填入包名或 GitHub 地址;本地目录安装示例:

dsh plugin --profile <profile> add /absolute/path/to/dsh-plugin-switchboard

安装后:Web 端刷新页面;桌面端重启应用。

典型用法

  1. 打开 DSH,在左侧栏底部点开关图标,展开面板。
  2. 按组或筛选找到目标插件,点整行或开关切换启用状态。
  3. 若出现「待重启」,改完后在面板底部点 重启 Host;注意桌面端会结束应用进程,需手动重新打开 DeepSeek Harness(会话与插件配置在磁盘上,不会因此丢失)。
  4. 若只是界面层插件、宿主支持热生效,可先尝试 重载界面;仍不生效再重启 Host。
  5. bundle 的安装与卸载仍在 DSH 自带插件页完成,本插件不替代该流程。

工作原理(简述)

插件分宿主与浏览器两部分:

  • index.js:经 ctx.webServer 注册同源路由,内部调用官方 pluginManager,不依赖生成的 Remote 类型。
路由 作用
GET /dsh-switchboard/list 读取 pluginManager.listPlugins()
POST /dsh-switchboard/toggle 调用 setPluginEnabled(id, enabled),返回精简 ChangeResult
POST /dsh-switchboard/restart 应答后约 1.2 秒结束 Host 进程
  • client.js:React 组件,挂到 sidebar.footer.action(按钮)与 shell.overlay(浮层);样式使用 --dsw-alias-* 主题变量。无第三方运行时依赖。

适用场景与注意

适合:经常开关多个 DSH 插件、需要区分官方/市场/本地来源、希望一眼看到「待重启」条目的开发者。

限制与权限(安装前建议通读仓库源码与许可证):

  • 插件在当前 dsh 进程权限下运行;切换与重启 Host 会影响本机上的 DSH 会话与已加载模块。
  • 「重启 Host」在桌面端不会自动重开应用,只会结束进程。
  • 是否立即生效由宿主决定:多数界面层可热生效;改 system prompt 或占用宿主模块的插件通常要重启。
  • 仅操作行级 entryId,不提供 bundle 级安装/卸载。

DSH 生态提倡「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-plugin-switchboard 把「像管理 Mod 一样」的诉求落在侧边栏:列表、筛选、启停、重启提示和操作集中在一处,减少在多个页面之间来回找开关的成本。进一步了解可查看 SkillHub 目录页 与 GitHub README。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜