前言¶
在 DeepSeek Harness(DSH)里,插件和 skill 可以按需叠加,工具名、路由、服务键一旦重复,往往是后装的顶掉先装的,或者直接抛错。缺 peer 依赖时插件也可能起不来。平时靠启动日志或踩坑才能发现这些问题。下面介绍的 dsh-install-check(中文名 插件无忧装)会在你发起安装时静态读候选包,和当前已装环境比一遍,只在确有冲突、缺件、界面风险或版本对不上时给一句结论和建议;不拦截安装,也不改你的配置。
这是什么¶
dsh-install-check 由 regrevia 维护,归类为工作流类 DSH 插件。它解决的是:在说「装 X」或启用插件、skill 目录变化时,提前指出会与现有环境打架或缺依赖的情况,减少装完才发现工具被覆盖、路由注册失败、界面被整屏占满等问题。
DSH 生态里插件来自社区目录(例如 SkillHub 上的条目),与 DeepSeek / 幻方无官方从属关系;安装前仍应自行查看源码与许可证(本插件为 MIT)。
核心功能¶
装完检查插件后,之后每次你说「装 xxx」或走安装流程,它会自动生效,无需先问它。结论在安装照常完成后给出;真有问题时,README 中的示例如下。
工具名冲突(后装顶掉先装):
冲突:和 dsh-lite-memory 用同一个工具名 memory_search,两个只能留一个。
两个都想要,先停用 dsh-lite-memory 再重启。
缺 peer 依赖:
缺 some-sdk,装上它之前这个插件起不来。
客户端接管整块内容区(装前也会提示):
风险:它接管整块内容区,界面一变就铺满全屏,侧栏和按钮点不到。装完按 Esc,关不掉就在插件页停用它。
DSH 版本与插件声明不符:
版本对不上:它要 ^0.3.0,这台是 0.2.1。装上起不来,先升级再装。
Skill 在文件落地后、第一次有工具结果返回时再提示:同名 skill、或触发描述过于接近导致模型挑错;同一家的 tool-stable / tool-next 不算撞车。不冲突则不说话。
静态扫描范围(不执行候选插件代码)包括:
cordis.patch.yml中的加载行 id- 服务键(
provide/ctx.set) - 工具名(
defineTool/tools.register) - Web 路由(仅当
kind与path均为字面量时) - 插件间未满足的
peerDependencies - skill 的
SKILL.md中name与描述争用 - 声明的
engines.dsh或@deepseek-ai/dshpeer 与当前版本明显不符
界面升级后第一次有工具结果时,还会点出本次升级后没起来的插件(版本、起不来、差依赖三类各说一次)。它问的是正在跑的加载器,不依赖启动日志。
安装与启用¶
只装一次即可长期生效:
dsh plugin install dsh-install-check
也可以直接对模型说「装 dsh-install-check」。package.json 中声明 engines.dsh 为 >=0.2.0-rc.1;当前插件版本为 0.2.1。
典型用法¶
- 安装 dsh-install-check 本身(见上节命令)。
- 照常安装或启用其他 DSH 插件、往
~/.dsh/skills或~/.agents/skills放 skill。 - 若存在冲突、缺依赖、界面风险或版本问题,会在安装流程中或 skill 首次产出工具结果时出现短句提示;按提示停用冲突插件、补依赖、升级 DSH 或改 skill 描述即可。
它不自动帮你装依赖,也不拦截安装;改动有时无需重启即可生效,因此选择「先装再问」而不是审批式拦截。
适用场景与注意¶
适合经常从社区目录或本地路径试装多个插件、叠加 skill 的 DSH 用户。开发者可用仓库内脚本批量看撞名率:
node --test test/run.mjs
node scripts/scan-market.mjs names.txt
names.txt 一行一个包名。
边界(README 原文要点):
- 运行时拼出来的名字、动态注册的工具看不到;路由路径放在常量里时无法判重。
- 依赖提示仅限
peerDependencies;通过服务懒取的依赖暂不提示。 - 读不到包时会说明「没检查完」,安装仍继续。
- 只在安装、启用、skill 目录变化时出现,平时不占界面。
插件与你在用的 DSH 进程同权限运行;第三方插件一律建议安装前读源码与许可证。
结尾¶
dsh-install-check 把「装前看一眼」做成工作流里的默认步骤:静态对比、短句结论、不挡安装。目录页:SkillHub - dsh-install-check;源码与说明:GitHub - regrevia/dsh-install-check。