dsh-model-connection-test:在 Settings → Models 里探测模型是否真能应答

前言

DeepSeek Harness(DSH)在 Settings → Models 里配置模型提供商与目录,但页面本身不会告诉你:某个已填写的 provider / model 组合,走与智能体相同的调用链时能否正常返回。配错密钥、选错模型名、适配器未就绪等问题,往往要等到对话或任务失败才暴露。

dsh-model-connection-test 是社区维护者 Willmylife 发布的 DSH 插件(分类:模型推理)。它在模型设置页底部增加「模型连接测试」面板,对每个当前可路由的模型发起一次最小 chat 往返(固定短 prompt "ping"),给出成功/失败结论、Harness 失败码,以及首包与总耗时。探测在 Host 进程内通过 ctx.llm.stream 完成,与智能体使用的路径一致;凭证在 Host 侧解析,不会进入浏览器或本插件的对外日志。

这是什么

  • 名称:dsh-model-connection-test(npm 包名同左,当前资料中版本 1.0.6)
  • 维护者:Willmylife
  • 仓库:https://github.com/Willmylife/dsh-model-connection-test
  • 引擎要求:DSH ≥ 0.2.0(engines.dsh);纯 JavaScript,无构建步骤、无依赖安装
  • 许可证:MIT

插件通过 Cordis patch 挂载在 Settings → Models 页脚(settings.models.footer),读取部署侧 live 模型目录(session.modelCatalog),与你在设置里看到的可路由 provider / model 列表对齐。

核心功能

资料中已说明的能力如下。

  1. 列目录:列出当前可路由的 provider 组与模型,并标记默认组合;目录中已标记为不可用的 provider 单独展示原因。
  2. 单测与全测:行旁的 Test 只测该模型;Test all 按目录顺序探测,并发上限为 3。
  3. 结果展示:成功示例为 ✓ Connected 1.2s(悬停可看首包与总耗时);失败为 ✗ Failed <CODE>,<CODE> 来自 Harness LLM 失败分类,例如 NO_ADAPTER、MISSING_CREDENTIAL、AUTH、RATE_LIMIT、INVALID_CREDENTIAL、TIMEOUT 等,悬停可看失败消息。
  4. 刷新目录:可在当前页刷新 catalog,无需离开设置页。
  5. 健康检查:Host 提供 GET /model-connection-test/api/health,返回 { ok: true, providers: <n> },便于快速诊断。

探测逻辑要点(与 README 一致):

  • 每个模型一次 POST /model-connection-test/api/test,请求体含 provider、model;单次探测默认超时 60 秒,客户端可通过请求体配置 1–120 秒。
  • Host 侧调用 ctx.llm.stream,消息为单轮 user "ping",maxTokens 默认 16、硬上限 256。
  • 以流式终端 chunk(type: 'finish')判定:stop、max-tokens、tool-calls 视为完成;error、aborted 携带失败信息。首包延迟从第一段 text / reasoning / tool-call 输出开始计时。

安全边界(插件自述):测试路由与 dsh-market 类似做同源/Host 约束(loopback 或部署声明的 authority、拒绝跨站 sec-fetch-site、Origin 校验、请求体上限 4 KiB 等);插件不存储、不上报任何数据。

安装与启用

从插件市场(dsh-market):仓库列入 awesome-dsh-plugin 后,在市场中搜索 Model Connection Test / 模型连接测试 安装;多数情况下无需重启。

从 CLI(任意 Host):

dsh plugin --profile <your-profile> add https://github.com/Willmylife/dsh-model-connection-test

从 DeepSeek Harness Desktop:在应用内 Settings → Plugins 从市场或 Git URL 安装;Desktop 的 profile 由应用运行时的插件管理器持有。

安装前请自行查看仓库源码与 MIT 许可证。插件以当前 DSH Host 进程权限运行探测请求,会使用你在 Settings → Models 中已配置的凭证与网络出站能力。

典型用法

  1. 安装插件后打开 DSH Settings → Models,滚动至页底的 模型连接测试 / Model connection test 面板。
  2. 确认列表与当前 catalog 一致(含默认模型标记);若刚改过配置,可用面板上的刷新更新目录。
  3. 对可疑的一行点击 Test;上线前或换密钥后,可用 Test all 扫一遍目录(注意全量探测会对每个模型各发一次最小请求,token 开销 README 描述为「少量」)。
  4. 若失败,根据 ✗ Failed <CODE> 对照 Harness 失败码排查(缺凭证、鉴权、限流、超时等);需要 Host 侧快速确认时,可对 GET /model-connection-test/api/health 做本地访问(路径前缀 /model-connection-test/api/health,须满足插件文档中的同源与安全约束)。

开发或二次修改时,仓库结构为 index.js(Host 路由与探测)、client.js(设置页 UI)、cordis.patch.yml 等;本地改代码后需重新安装 bundle(目录安装可链接 checkout,Git 安装会重新拉取);Client 改动可能需要刷新页面,Host 改动视情况 HMR 或重启。

适用场景与注意

适合:在 DSH 里集中配置了多 provider / 多模型,需要在改密钥、换 endpoint、升级 DSH 或插件后,用与智能体相同的路径做端到端连通性验证的开发者或运维。

注意:

  • 全目录测试会对每个模型发起真实 LLM 调用,可能触发计费与限流;单次输出 token 有上限,但仍非「零成本」操作。
  • 探测超时与并发由插件实现固定(全测并发 3); hanging 的单个模型不会阻塞其他行的独立 POST。
  • 社区插件目录(如 skillhub、dsh-market 相关站点)为独立生态索引,与 DeepSeek / 幻方无官方从属关系;星标与 listing 状态以各站点为准,资料中 GitHub 星标为 0。

结尾

dsh-model-connection-test 补的是「模型配好了但不知道能不能答」这一环:在设置页内完成最小往返探测,失败码与延迟可直接对照 Harness 语义排查。目录页:https://www.skillhub.cn/plugins/Willmylife/dsh-model-connection-test;源码与完整说明:https://github.com/Willmylife/dsh-model-connection-test(含 README.zh.md)。

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

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

小夜