dsh-switch:面向 DeepSeek Harness 的模型控制面插件

前言

在 DSH(DeepSeek Harness)這類“一切皆插件”的工作流裏,模型 provider 路由常常分散在不同 profile、adapter 和本地配置中。開發或運維時,通常需要先看 DSH 當前註冊了哪些 provider routes,再確認某個 provider/model 是否可被識別,最後才決定新會話默認使用哪個模型。

DSH 社區目錄是獨立站點,不等同於官方應用商店。dsh-switch 提供一個證據優先的控制面:在 DSH bundle 中暴露模型側工具,用於檢查和切換新會話默認模型;同時提供獨立 CLI,用於只讀探測 OpenAI-compatible /models 端點。

這裏需要區分“端點可達”和“模型可用”。/models 探測只能證明端點可達,不能證明端到端生成正確;v0.1 也不啓用 automatic fallback 或 cost-based routing。

這是什麼

dongsheng123132/dsh-switch 是 DeepSeek Harness 的插件,定位爲 Evidence-first model control plane for DeepSeek Harness。資料中的類別字段爲模型推理。

倉庫 owner 爲 dongsheng123132;許可證標註爲 MIT;倉庫元數據中另有 MIT © 2026 hfshfg。現有資料未完全明確維護者/版權歸屬。

它主要做兩件相對獨立的事:

1、在 DSH bundle 中暴露模型側工具,檢查已註冊 provider routes,並通過官方 ctx.llm 接縫驗證精確 provider/model。

2、通過獨立 CLI 探測 OpenAI-compatible /models 端點,報告 reachability、HTTP status、latency、model count 和 credential env var 配置狀態。

它不攔截模型請求,不實現另一個 OpenAI adapter,也不會靜默重路由一個 active session。

核心功能

DSH 內檢查與切換模型路由

dsh_switch_status({ includeModels? }) 用於查看當前狀態:

  • 顯示新會話使用的默認選擇;
  • 列出已註冊 provider routes;
  • 可選地請求適配器 advertised models。

dsh_switch_default({ provider, model, reasoningEffort?, expectedProvider?, expectedModel? }) 用於保存新會話默認模型:

  • 驗證精確 provider/model route;
  • 拒絕不支持的 reasoningEffort;
  • 支持 expectedProvider / expectedModel 樂觀併發;
  • 通過 ctx.agentDefaultModel 保存選擇;
  • 讀取回寫結果,若讀取不可觀察則失敗;
  • 僅影響新會話。Existing sessions keep the route recorded in their logs。

DSH 工具側切換校驗的是已註冊 adapter 元數據,不是 live provider I/O。

獨立 CLI 探測 /models 端點

CLI 面向 OpenAI-compatible /models 端點,用於檢查:

  • reachability;
  • HTTP status;
  • latency;
  • model count;
  • credential env var 配置狀態。

探針只發送:

GET <baseURL><modelsPath>

它不發送 chat completion,也不消耗 inference tokens。成功的 /models 響應只能證明端點可達,不能證明端到端生成正確。

安全邊界

  • 拒絕 apiKey 字段和 URL 中嵌入憑證。
  • 輸出只包含 configured、missing、not-required 這類狀態;secret 值不進入結果。
  • 一個 401/403 端點是 reachable,但不是 healthy。
  • v0.1 不啓用 automatic fallback 或 cost-based routing。

安裝與啓用

安裝 DSH bundle 時,使用固定 commit。資料中只給出 <commit> 佔位符,未提供具體 commit,因此需要把它替換爲已審查的提交:

dsh plugin --profile web add github:dongsheng123132/dsh-switch#<commit>
dsh --profile web --dump-config

第一條命令安裝 bundle;第二條命令用於查看當前 profile 的配置。

bundle 直接提供 JavaScript,沒有 install/build lifecycle script。peer dependency @deepseek-ai/dsh-tools 被標記爲 optional。

運行插件 smoke test 時,需要官方 DSH runtime packages 可解析。

運行環境要求:

Node.js >=22

典型用法

配置本地 provider

把示例配置複製爲私有本地文件。密鑰只通過環境變量名引用,不要把 key 寫進 JSON:

Copy providers.example.json to a private local file such as providers.json; reference secrets by environment-variable name—never place keys in JSON.

使用 DSH 工具

查看當前狀態:

dsh_switch_status({ includeModels? })

設置新會話默認模型:

dsh_switch_default({ provider, model, reasoningEffort?, expectedProvider?, expectedModel? })

運行 CLI

README 給出以下命令:

node bin/dsh-switch.mjs validate --config providers.json
node bin/dsh-switch.mjs check --config providers.json
node bin/dsh-switch.mjs best --config providers.json

JSON 輸出:

node bin/dsh-switch.mjs check --config providers.json --json

適用場景與注意

適合以下情況:

  • 需要在 DSH 內檢查已註冊 provider routes;
  • 需要爲新會話設置默認 provider/model;
  • 需要對 OpenAI-compatible /models 端點做只讀探測;
  • 希望輸出中只保留 credential 配置狀態,而不是 secret 值。

不適合以下情況:

  • 希望 automatic fallback 或 cost-based routing;v0.1 未啓用。
  • 希望插件攔截模型請求、實現另一個 OpenAI adapter,或靜默重路由 active session。
  • 期望一次 /models 探測就證明模型能正確完成生成。

插件會以當前 dsh 進程擁有的權限運行,安裝前應檢查源碼與許可證。本地 providers.json 應放在私有位置,並通過環境變量引用憑證。

鏈接

  • 目錄頁:https://www.skillhub.cn/plugins/dongsheng123132/dsh-switch
  • GitHub:https://github.com/dongsheng123132/dsh-switch
羽毛球分组比赛记分
小程序二维码

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

小夜