dsh-plugin-steward:DeepSeek Harness 插件管理入口

前言

DeepSeek Harness(DSH)的插件生态允许通过 YAML 编排调用各种工具。当插件数量增多,手动在配置文件中逐个启用、禁用、修改设置,并在不同对话中切换工具,会变得繁琐。dsh-plugin-steward 在聊天输入框旁增加一个入口,提供统一的插件目录、全局开关、单插件设置,以及按对话隐藏工具的能力。

它是什么

dsh-plugin-steward 是一个插件管家插件,由 Eveneve-night 维护。它通过一个按钮和一个设置页面,让用户在运行时查看所有已安装的 bundle 和 loader 行,控制它们的启用状态,编辑单个插件的配置,并在单次对话中隐藏某插件提供的工具或 MCP 服务器。插件以宿主进程内的同源路由和网页端的客户端模块实现,不启动额外进程,也不存储凭证。

核心功能

统一目录

插件管家列出全部已安装的 bundle(包含第三方与 DSH 内置)以及每个 loader 行的标题、版本、描述、包名与当前状态。DSH 本体自带且当前 profile 真正组装的包会单独列在只读的「内核」页,并带有🔒标记,其启用逻辑在后端与第三方插件隔离。

全局启停

全局开关通过 pluginManager.setBundleEnabled 控制 bundle,通过 setPluginEnabled 控制单行。操作结果会显示为「已生效 / 需重启 / 被覆盖 / 失败」。插件管家拒绝关闭自己(返回 HTTP 409),防止入口消失。

单插件设置

每行右侧的⚙图标打开设置抽屉。宿主会读取该行的 schemastery Config,生成表单控件:字符串、带范围限制的数字、布尔、枚举和 JSON。每个字段有默认值,并标记「需重载」的字段。保存时只提交被修改的字段,通过 configEditor.edit() 校验并持久化。

按对话放行

面板的「本对话」页可以把某个插件的工具或某个 MCP 服务器在这一轮对话中隐藏。它调用 agent.ctx.tools.restrict(),因此对已开始的对话也生效,下一个请求即可体现策略。策略按会话保存,重载或重启后自动补应用。

自动描述

如果插件没有提供 meta.description,插件管家会根据它的 README、客户端 slot id 和 package.json 生成一句话(≤ 90 字)。作者编写的描述永远优先,可以手动重新生成,并标注来源。

自动发现

插件管家每 5 分钟静默扫描一次,把新出现的 bundle 或行记为「待纳入管理」,按钮上出现橙点,面板里提供一键认领。

与能力面板共存

如果安装了 dsh-capability-panel、dsh-capability-composer 或 @super_camel/dsh-plugin-panel,插件管家只显示一条指向提示,不重复实现实时上下文状态,也不做双向同步。

安装与启用

dsh plugin add github:Eveneve-night/dsh-plugin-steward

安装后,组合会插入一行 plugin-console。刷新 Web UI 一次,客户端模块会在页面加载时注入。改源码后,用 set_plugin 将 include:plugin-console 先设为 false 再设为 true 即可重载。

入口位置

  • 输入框工具行左侧的 🧩 插件(conversation.input.left)→ 浮层面板,含「全局 / 本对话」两档。
  • 设置 → 插件管家(settings.section)→ 发现设置、目录路径、按对话策略清单。

持久化与接口

所有接口挂在 /plugin-console/api 同源路由下。持久化只有两处:

  • <profile>/.plugin-console/state.json:已知集合、待认领项、设置。
  • <profile>/.plugin-console/sessions/<sessionId>.json:按对话策略(disabled、disabledMcp)。

插件不会修改全局插件管理器的开关,只通过平台接口操作。

已知边界

  • 纯 UI 插件(壁纸、挂件、侧栏)无法按对话开关,这类插件只在全局提供启停与打开设置的入口。
  • 按对话放行只覆盖全局注册的工具。在 agent 作用域内注册的工具(例如通过 preset 或 composition)不会被 tools.restrict() 涉及。
  • 如果某行没有 Config,设置抽屉会显示「nothing to configure」。
  • 嵌套对象/数组字段会回退到 JSON 文本域。
  • 自动描述是启发式规则,优先级为 README > slot id > package.json,来源会被标注。

适用场景

适合在需要频繁切换插件状态、管理多个工具来源、或在同一会话中分别测试不同插件组合的场景下使用。使用前建议阅读插件源码与许可证,确保符合你的使用要求。

结尾

dsh-plugin-steward 为 DSH 插件生态提供了一个集中管理的入口,从目录、开关、设置到对话级策略,覆盖了插件管理的常见需求。更多细节可参考目录页和GitHub 仓库。

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

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

Xiaoye