设置页「模型健康」面板:列出 settings.yaml 配置的全部模型,一键批量测试可用性与延迟。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-model-health
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:oxlyn/dsh-model-health
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness (DSH) 插件:在设置页提供「模型健康」面板——列出所有已配置模型,并一键批量测试可用性与延迟。
中文 | EN

安装 / Install
npm 安装(推荐)
dsh plugin --profile web add dsh-model-health
源码安装
git clone https://github.com/oxlyn/dsh-model-health.git
cd dsh-model-health
pnpm install
pnpm run build # tsdown → dist/index.js (ESM) + dist/client.js (IIFE)
# 在插件的父目录执行(dsh plugin add 的相对路径锚定调用目录):
cd ..
dsh plugin --profile web add ./dsh-model-health
dsh web
# 启动日志应出现:[dsh-model-health] ready — tool "list_models" + routes GET /api/model-health/json, POST /api/model-health/test
验证 / Verify
安装后打开 dsh web → 设置 → 模型健康,应能看到已配置模型表格。无 API key 也可验证插件加载:
dsh --profile web --dump-config | grep dsh-model-health # 配置层含本行
功能 / Features
读取 DSH 设置配置(兼容新旧版本:旧版 $DSH_HOME/settings.yaml;新版 0.1.7-alpha.2+ 迁移至 profile 的 cordis.patch.yml,插件自动按优先级合并 settings.yaml / settings.yaml.imported / profile patch),提供三种使用方式:
| # | 形式 | 入口 | 说明 |
|---|---|---|---|
| 1 | 「模型健康」面板 | Web UI → 设置 → 模型健康 | React 表格:Provider / 模型 ID / 名称 / 上下文窗口 / 最大输出 / 输入模态 / API 协议 / BaseURL,可选列可切换显示 |
| 2 | 测试全部 | 面板内「测试全部」按钮 | 并发(上限 6)对每个模型发一次 max_tokens=1 的最小 chat completions 请求,10s 超时;逐行显示 可用 / 不可用 / 跳过 / 延迟,失败原因悬停查看,结果持久化到 localStorage。已出结果的徽章可点击,单独重测该模型(悬停显示下划线) |
| 3 | Tool 插件 list_models |
对话中调用 | 返回 Markdown 表格,供模型在对话中查看模型清单 |
特性一览:
- 支持
llm-pi-ai(多协议自定义提供商)与llm-deepseek(官方)两类配置来源 - 内置模型显示与健康探测:未写入配置文件的宿主内置模型(如 DeepSeek 默认目录 deepseek-flash / deepseek-v4-pro)自动从宿主
llm注册表读取并去重合并;探测经宿主运行时ctx.llm.stream发起最小请求(max_tokens=1),协议、端点与凭据全部复用宿主适配器,无需额外配置 - 可用性测试支持
openai-completions与deepseek协议,其余协议自动标记「跳过」;对 200 响应校验 body 确实是成功应答(部分网关 200 但 body 是错误对象) - API Key 通过 DSH credential service(
ctx.credentials.resolve)解析,密钥不会输出到浏览器 - 测试结果(状态/延迟/错误)持久化到 localStorage,刷新页面后仍可见
- 状态列的 可用 / 不可用 / 跳过 徽章随时可点击,对单个模型重新测试,原地刷新状态与延迟
- 设置导航使用脉搏线(Activity)图标——宿主图标表没有「健康」类目,参考 dsh-better-sidebar 的方案,JS 精准打 marker(rAF 合帧防抖),CSS 用
::before+mask把齿轮 svg 原地替换;颜色随主题走
实现方式 / How it works
插件分为 host 侧与 client 侧两部分(package.json 的 dsh.client 字段声明 client 入口):
┌─ host 侧 src/index.ts → dist/index.js ─────────────────────────┐
│ - ctx.tools.register:注册 list_models 工具(Markdown 表格输出) │
│ - ctx.webServer.register: │
│ GET /api/model-health/json 读取并解析 DSH 设置(settings.yaml │
│ 与 profile patch 多来源合并,兼容新旧 DSH 版本)→ JSON │
│ POST /api/model-health/test 对单模型发最小请求测可用性/延迟 │
│ (Origin 限本机;200 响应校验 body 为成功应答) │
│ - 解析 DSH credential service 获取 API Key │
└──────────────────────────────────────────────────────────────────┘
│ fetch
┌─ client 侧 src/client.tsx(TSX,浏览器端模块)────────────────────┐
│ - 通过 settings.section slot 注入「模型健康」面板 │
│ - React(宿主提供)渲染表格 + 状态徽章 + hover 错误提示 │
│ - 「测试全部」:worker pool 限并发 6,逐个更新行状态 │
└──────────────────────────────────────────────────────────────────┘
技术要点:纯 ESM("type": "module")、cordis 作为 peerDependency 由宿主提供(仅编译期 import type)、服务依赖通过 export const inject = ['tools', 'webServer', 'credentials'] 声明。
环境要求 / Requirements
- Node
^22.19.0 || >=24.0.0(DSH 宿主要求) - pnpm(源码构建用)
开发 / Development
pnpm install
pnpm run typecheck # 类型检查
pnpm run build # 构建 dist/
项目结构:
dsh-model-health/
├── src/index.ts # host 入口:tool + HTTP 路由接线
├── src/host/ # host 实现:config / models / markdown / http / model-test
├── src/client.tsx # client 入口壳:注入 React,装配插件导出
├── src/client/ # client 实现:types / runtime / i18n / storage / api /
│ # styles / columns / use-test-results / nav-icon / apply
│ └── components/ # ModelListSection / StatusCell / ErrorTooltip
├── cordis.patch.yml # bundle 层声明(id/name 走包名解析)
└── dist/ # 构建产物(发布包含在 files 字段中)
依赖锁定 / Dependencies
@deepseek-ai/dsh-tools:^0.1.0-rc.8 || ^0.2.0-rc.2(同时兼容 DSH 0.1.x 与 0.2.0 两条版本线)。@deepseek-ai/cordis:^4.0.1(peerDependency — host provides it; types-only in code).
友情链接 / Links
License
链接
同类插件
Ebony-Vinyl/dsh-our-free-model★ 25179
为 dsh 接入免费模型车道(含 DeepSeek V4.1 Flash、Kimi K3 等),无需登录、注册或填写 API Key,并提供本地 OpenAI 兼容网关、降级路由与用量看板。
corrinehu/dsh-workbuddy-connect★ 1343
将 WorkBuddy 桌面 App 包含的模型自动接入 DeepSeek Harness,在 DSH 对话窗口里零配置使用。
V1ki/dsh-plugin-subscriptions★ 478
把 ChatGPT(Codex)、Claude、Grok 订阅当作 DeepSeek Harness 的 LLM 提供方:设置页登录、模型目录、用量展示,以及 image_generate、video_generate 与 x_search 工具。
Mars-Sea/dsh-commandcode-provider★ 407
非官方 Command Code 模型接入插件:注册 `commandcode` 路由,带实时模型目录与推理强度支持。
cv-superding/dsh-deepseek-web-login★ 286
新增 deepseek-web provider,把 chat.deepseek.com 网页端模型接入 DSH:浏览器登录抓取、PoW 请求签名、SSE 流式传输与基于提示词的工具调用。
FishBottle7/opencode2dsh★ 270
将 OpenCode Zen 免费模型接入 DeepSeek Harness,无需 API Key。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。