前言¶
在 DeepSeek Harness 里装插件,常见路径是「发现」里订阅索引、对话框里填 github:owner/repo,或在命令行用 dsh plugin add。插件一多,来源分散、版本要对上 engines.dsh、启停和更新各走各的入口,缺少一层统一视图。PlugBox 面向所有支持自定义插件的引擎层与智能体层工具,在同一套界面里浏览、安装、更新、启用或停用插件;宿主差异封装在适配器里,核心只处理「插件是什么」。它目前以 DSH 组合包形式分发,并维护可被任意 DSH 实例订阅的插件索引。
下面介绍它的定位、分层设计、在 DSH 上的安装方式,以及面板里能做什么。
这是什么¶
PlugBox(中文定位:插件适配与管理工具)由维护者 Wcof 发布,仓库为 Wcof/PlugBox,许可证 MIT,npm 包名 plugbox。SkillHub 分类为工作流。
它不做第二份插件数据库:列表来自宿主真实的 pluginManager / pluginMarket 服务。同时对外发布精选索引 index.json 与从 dsh-plugin.org 核实后同步的社区目录 community.json——社区目录是独立生态的整理,与 DeepSeek / 幻方无官方从属关系,不能当作官方应用商店。
在 DSH 侧,组合包 patch 的 id 为 plugbox,侧栏模块 id 为 plugbox,宿主挂载前缀 /plugbox,RPC 端点 /plugbox/api/rpc。
核心架构:核心层与适配层¶
插件生态的差异在于各宿主如何描述清单、注册 UI、命名 RPC、交付能力结构。PlugBox 因此分成两层,避免在核心代码里堆 if (宿主 === …)。
核心层(与引擎无关)¶
位于 src/core/,提供统一的插件协议、清单解析与生成、注册与发现、生命周期,以及插件资源抽象。例如 protocol/plugin.ts 定义 CanonicalPlugin 等宿主无关类型;manifest/index.ts 负责 readManifest / toCanonical / writeManifest / toInstallSpec。兼容要求写成带命名空间的 requirements['<宿主id>/<要求名>'](DSH 上如 'dsh/dsh'),核心不认识具体宿主的原始字段名。
适配层(每个宿主一个适配器)¶
src/adapters/ 里每个目标宿主实现 HostAdapter 契约:UI 挂载、来源标签、索引格式、清单双向转换、资源映射、RPC 方法名、安装参数等。新增宿主等于新增适配器并在 registry 登记,原则上不必改核心层。
当前支持矩阵(以 README 为准):
| 宿主 | 适配器 id | 是否实测 |
|---|---|---|
| DeepSeek Harness | dsh |
已实测(验收环境 DSH 0.2.1-rc.5) |
| zcode 的 DeepSeek Harness | zcode-dsh |
未实测 |
表中没有的宿主即尚未对接;DSM Harness 没有对应适配器,不能推断支持面。
核心功能¶
插件管理¶
顶部为来源统计卡,点击可筛选。卡片显示标题、包名、来源、运行状态与插件行数;「详情」进入逐行启停。
插件市场¶
按索引源分组展示条目,卡片标注来源、状态(可安装 / 已安装 / 可更新 / 版本不符)与当前版本。工具栏支持搜索、来源筛选、创作者多选与多种排序。索引超过 100 条时按 nextOffset 续页;超过加载上限会在列表上方提示「索引共 N 个,已加载 M 个」。
来源标签三档:宿主官方(DSH 下展示为「DSH 官方」)、PlugBox 收录(索引 metadata.keywords 含 plugbox)、第三方。「PlugBox 收录」是仓库维护者的整理,不代表宿主官方背书。
按分支安装¶
点击卡片左下角版本号,可查看仓库分支列表:显示分支名、包内版本、该宿主要求的兼容范围等。未声明对应宿主插件字段的分支(DSH 上为 dsh.bundle)不可安装;已装版本会标「当前已装」,换分支需先卸载。安装的是分支当前头提交,上游推送会改变所指提交;要固定版本需钉 commit 或等 tag 后正常安装。
检查更新¶
页面打开时会静默比对索引与已装版本;可点「检查更新」强制刷新索引缓存。
索引源¶
精选索引推荐订阅:
https://raw.githubusercontent.com/Wcof/PlugBox/main/index.json
也可使用 jsDelivr 镜像 https://cdn.jsdelivr.net/gh/Wcof/PlugBox@main/index.json。社区目录:
https://raw.githubusercontent.com/Wcof/PlugBox/main/community.json
可在 DSH「发现 → Index sources」订阅,或在 PlugBox 面板工具栏点「社区目录」一键订阅。社区条目较多,搜索比逐页翻更高效;条目只表示仓库确为目标宿主插件包,行为与兼容性仍由宿主按 engines.dsh 判定。
安装与启用¶
PlugBox 以 DSH 组合包分发(package.json 中 dsh.bundle.patch 指向 cordis.patch.yml)。任选一种方式安装后,需重启 DSH 窗口(Host 端代码在启动时加载)。
方式一:从索引源安装(推荐)¶
- 打开 DeepSeek Harness「发现」,在 Index sources 中添加:
https://raw.githubusercontent.com/Wcof/PlugBox/main/index.json - 搜索
plugbox并安装。 - 重启 DSH 窗口。
方式二:从 GitHub 安装¶
在「安装插件」对话框填入 github:Wcof/PlugBox,或钉到某次提交:git+https://github.com/Wcof/PlugBox#<commit-sha>。
命令行示例(--profile 换成实际 profile,资料示例为 web):
dsh plugin --profile web add github:Wcof/PlugBox
方式三:本地目录(开发)¶
在「安装插件」中填写本仓库绝对路径;从 git 安装不会执行构建,改前端后需自行 npm run build 并提交 web/。
典型用法¶
安装并重启后,从侧栏进入 PlugBox(挂载前缀 /plugbox)。
- 统一管理已装插件:在插件管理页按来源筛选,在详情页逐行启用或停用。
- 从市场安装:在插件市场选择索引源,用搜索与排序找到条目,按卡片状态安装或更新;版本不符时对照分支列表或
engines.dsh。 - 订阅社区目录:添加上述
community.json地址,或在面板一键订阅后搜索目标插件。 - 推荐收录:在 GitHub 仓库开 issue,附仓库地址、目标版本与许可证;精选索引当前收录约 10 个插件,覆盖阅读、学习、效率、界面增强、工具、模型等分类。
插件作者若写兼容范围,README 建议用 semver 区间(如 >=0.2.1-rc.2 <0.3.0-0),避免枚举每个预发布号;详见仓库 docs/article-engine-incompatible.md。
适用场景与注意¶
适合谁:经常在 DSH 里装多个插件、订阅多个索引源,希望在一个界面里看来源、启停、更新与市场状态的开发者。
权限与安全:PlugBox 与所管理的插件在当前 DSH 进程权限下运行。安装前请自行查看源码与 MIT 许可证,社区目录条目仅做过仓库级核实,不代表行为或兼容性已验证。
边界(README 已说明):
- 兼容判定在宿主侧:
engines.dsh存在时按 semver 判断(含预发布),规则由 DSH 适配器实现。 - 不提供插件配置界面;配置 schema 在模型侧(如
Config.listConfigs)。 - 索引每个插件通常只登记一个已发布版本;其他版本走分支安装或等索引升版。
- zcode-dsh 适配器尚未在真实环境验证,不要当作已支持能力宣传。
结尾¶
PlugBox 用「核心协议 + 宿主适配器」把插件管理从单一引擎里抽出来:在 DSH 上已实测可用,并发布精选索引与社区目录供订阅。若你需要统一浏览、安装与更新插件,而不是只在各处重复搜索引,可以按上文索引源或 GitHub 方式安装。
- SkillHub 目录页:https://www.skillhub.cn/plugins/Wcof/PlugBox
- GitHub:https://github.com/Wcof/PlugBox
- 项目介绍页:https://wcof.github.io/PlugBox/