前言¶
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 仓库。