dsh-autofit:装前实测、不兼容自动修、更新先试的 DSH 插件适配

前言

DeepSeek Harness(DSH)采用「一切皆插件」的架构:能力靠插件叠加,但不同 DSH 版本之间的配置 schema、服务名、peer 声明差异会让「能装上」和「能跑起来」变成两件事。社区目录里一条条看说明、手动改 package.json 再试,成本高且不可复用。

dsh-autofit 是维护者 AdamPlatin123 发布的工作流类 DSH 插件(npm 包名 dsh-autofit,当前版本 0.4.0,MIT)。定位是:在隔离环境里做 L1/L2 试装,能机械或规则修好的自动修,修不好的交给受护栏约束的 agent;通过组合包 UI 或 CLI 接入,并与 DSH Plugin Radar 的索引叠加。下文按「是什么 → 怎么用 → 注意点」展开。

这是什么

一句话:在不碰你当前 profile 的前提下,对任意来源的 DSH 插件做试装与兼容判定,必要时生成 +autofit.N 修复版再安装。

仓库内主要模块(README 原文划分):

  • 组合包(插件页内):添加插件菜单「Install with Autofit…」、Autofit 标签页(awesome 索引 + 雷达判定目录)、详情页 Autofit check;新装插件约 1 分钟内后台补测。
  • dsh-autofit/probe:零依赖 L1/L2 试装器。
  • dsh-autofit/autofix:试装 → 规则修复 → 重打包 → 再试装(最多 3 轮)。
  • dsh-autofit/describe:L0 静态画像(类型、目标 profile、影响、运行要求)。
  • scripts/build-index.mjs:把雷达运行级判定叠到 format-1 市场索引上。

目录页:SkillHub - dsh-autofit(社区插件站点,与 DeepSeek / 幻方无官方从属关系)。源码与文档:GitHub - AdamPlatin123/dsh-autofit。

核心功能

试装:probe(L1 / L2)

L1 为真实安装;L2 在 host 与 client 两端尝试加载。每次试装使用临时 DSH_HOME 与全新 web profile。

命令行示例:

npx dsh-autofit probe <插件 spec>            # npm 名[@版本]、git spec、tarball 或目录
npx dsh-autofit probe dsh-foo@1.2.0 --json
npx dsh-autofit probe dsh-foo --exempt        # 原生版本拒装时,在临时 home 内豁免后继续测
npx dsh-autofit probe dsh-foo --allow-builds node-pty
npx dsh-autofit probe dsh-foo --bin /path/to/other/dsh   # 对另一个 DSH 版本试装
npx dsh-autofit host                          # 当前 DSH 的版本、参数与能力分档

程序化调用时,r.verdict 可取 pass | fail | incompatible | infra-fail | inconclusive | not-published;r.layers.L1 / L2.host / L2.client 与 r.codes(如 schema-additional-properties、native-build)供后续修复阶梯使用。

隔离与边界(README 明确说明): 安装阶段沿用调用方 npm 源与代理;加载阶段用最小化环境。L2 会在本机执行插件代码,不是安全沙箱;有容器时可用 --home 与 --phase install|boot 拆分联网安装与断网加载。client 端经 Node 内置 WebSocket 走 Chrome DevTools 协议,依赖本机 Chrome / Edge / Chromium(可用环境变量 DSH_AUTOFIT_BROWSER);无浏览器时 client 标为 unverified。

DSH 版本档位(实测 0.0.1-rc.5 至 0.2.2-alpha.3):full(≥0.2.1)、standard(0.1.5–0.2.0)、basic(≤0.1.2),probe 行为随档位变化(如原生版本拒装识别、host 失败是否 fatal、client 是否完整执行)。

修复:autofix 阶梯与 agent

npx dsh-autofit fix <插件 spec> [--allow-builds node-pty] [--json]

规则层级(README 表格摘要):

层级 作用(节选)
A 机械 放宽 peer / engines.dsh;旧 patch 写法改为顶层列表等
B 规则 schema 补 additionalProperties;工具补 output;已知服务改名(仅改 inject 与取服务处)
C 需授权 被拦下的依赖构建脚本,用户批准后带 allowBuilds 重试
D agent 规则不足时用 DSH 默认 llm 开修复对话

修复版为本地 tarball,版本形如 <版本>+autofit.N,package.json 的 autofit 字段记录来源与改动;原包不修改,未通过试装的不提供安装。规则修好的版本组合包会直接安装;agent 修好的需在小窗查看 diff 后点「安装修复版」。

agent 仅有 list_files / read_file / write_file / replace_in_file / run_trial / finish,且 run_trial 通过才算修好;lib/autofix/guard.js 限制对 package.json 关键字段、bundle patch、.register 等危险改动。

组合包 UI 工作流

装 dsh-autofit 组合包后,典型路径包括:

  1. 「添加插件」→「Install with Autofit…」:输入 npm、git、tarball 或本地路径,点「Install with autofix」;右下角小窗依次试装、规则修复、agent 修复、安装,可最小化或关闭,任务后台继续。
  2. Autofit 标签页:浏览带雷达判定的卡片,每张可「Install with autofix」。
  3. 插件详情:Autofit check 区块与标题旁标签;任意入口安装的插件约 1 分钟内后台自动补测。

跨版本入口(README 2026-11-06 表):0.2.1-rc.2 至 0.2.2-rc.1 等多版本在插件页 Autofit 标签、添加菜单、详情区块可用;更早版本对应 Autofit Installer 或设置里的 Autofit 标签。

安装与启用

先在 web profile 安装组合包(命令须与 README 一致):

dsh plugin --profile web add dsh-autofit      # 或在 DSH 插件页「Add plugin」里输入 dsh-autofit
dsh --profile web                             # 插件页 → Add plugin 下拉 / Autofit 标签页

桌面版(官方 DeepSeek Harness 或社区 DSH Desktop):只能在应用内插件页「Add plugin」输入 dsh-autofit,往 desktop profile 安装;内置运行时版本可能与全局 CLI 不同,probe 会按应用内 DSH 实测(README 对官方 0.2.2-rc.1、社区 2.0.x 等有记录)。

仅 CLI、不装组合包时,可单独使用:

npx dsh-autofit probe <插件>
npx dsh-autofit fix <插件>

包要求 Node >=22(package.json 的 engines)。

典型用法

场景一:装社区插件前先判定

npx dsh-autofit probe dsh-foo@1.2.0 --json

根据 verdict 与 codes 决定是直接 dsh plugin add 还是走 fix。

场景二:在 DSH 插件页一键 autofix

打开 web profile 插件页 → Autofit 或 Install with Autofit… → 输入包名或路径 → 等待小窗完成试装与修复阶梯。

场景三:对比另一套 DSH 版本

npx dsh-autofit probe dsh-foo --bin /path/to/other/dsh

场景四:开发侧生成雷达叠加索引

维护者本地:

node scripts/build-index.mjs    # 生成雷达叠加索引

适用场景与注意

适合谁: 经常从 npm、git、本地目录试装 DSH 插件的开发者;需要在一台机器上对齐多个 DSH 版本(含桌面内置运行时)的兼容结论时;希望把 Radar 目录上的「能不能跑」与安装动作串成一条工作流的用户。

务必注意:

  1. 插件与 probe 的 L2 阶段以当前 DSH 进程权限在本机执行代码,安装前应阅读目标插件源码与许可证,勿把试装当作恶意代码隔离。
  2. agent 修复会改插件副本并可能引入行为变化;规则自动安装的改动记录在 autofit 字段,agent 版需你确认 diff 后再装。
  3. 桌面版 UI 自动化验证尚未完整(README:首次引导与「只能从应用内安装」限制);CLI probe / fix 与组合包能力以你已安装的 DSH / 桌面版本为准查阅 README 实测表。
  4. autofix 实测数据(如 DSH 0.2.1-rc.2 下 9 个插件中 5 个规则修好)来自作者实验环境,你的网络、模型与插件版本可能不同。

结尾

dsh-autofit 把「装之前先实测、装不上尝试规则与 agent 修复、有更新可先试」收进 DSH 插件页与 npx 两条入口,并与 Plugin Radar 索引联动,减少手工改 manifest 的重复劳动。查阅详情与 issue:

  • 目录页:https://www.skillhub.cn/plugins/AdamPlatin123/dsh-autofit
  • GitHub:https://github.com/AdamPlatin123/dsh-autofit
羽毛球分组比赛记分
小程序二维码

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

Xiaoye