dsh-model-switcher:用對話查目錄、切換 DSH 模型

前言

在 DeepSeek Harness(dsh)裏換模型,熟悉做法是打開內置 /model 彈窗,在幾十條候選裏點選。對話裏若想讓當前模型「幫我換成 glm」,它拿不到和彈窗同源的目錄,也無法走同一條寫入路徑。社區插件 dsh-model-switcher(維護者 skyrocks)把「查目錄 / 切模型」註冊成 Host 側可調用的 find_models 與 switch_model,數據來自 sessionController.modelCatalog(),切換走 selectModel(),與 /model 一致。本文介紹其定位、工具參數、安裝步驟與使用注意。

這是什麼

dsh-model-switcher 是 DSH 的 Host 插件(包名 @skyrocks/dsh-model-switcher,當前版本 0.2.1,MIT 許可)。分類屬於 模型推理:在對話中用自然語言或關鍵詞查當前會話可選模型,並在用戶明確選擇後切換;手動點選仍用 /model,插件不另做界面。

項目地址:GitHub - skyrocks/dsh-model-switcher
生態目錄:SkillHub 插件頁

核心功能

兩個工具

工具 參數 作用
find_models query?(自然語言或關鍵詞) 查當前會話真正可選的模型;不帶 query 返回完整目錄;帶 query 按相關度排序,最多 25 條
switch_model model(必填)、provider?、reasoningEffort? 從下一次模型請求起生效,並保存爲默認模型

find_models 返回值含 current(當前模型)、models(候選及推理檔位)、failures(某 provider 目錄讀取失敗時的說明,不影響其它 provider)。

與 /model 同源

候選來自 DSH 模型目錄(sessionController.modelCatalog()),切換使用同一 selectModel()。插件不硬編碼模型列表,不讀寫用戶文件,不執行 shell,不發送外部網絡請求。

多版本與歧義

說「glm」可能同時命中 glm-5.2、glm-5.3、glm-5.3-flash 等時,find_models 會列出全部候選並等待用戶選定;switch_model 遇歧義會報錯並列出候選,不會自動猜測。僅當查詢整串字面唯一匹配時纔會自動選中。同一 model id 出現在多個 provider 下時,須帶上 provider。

環境要求

項 要求
DSH >= 0.2.1-rc.3 < 0.3.0(桌面版與 dsh web 均可)
Node >= 18
運行時依賴 無(純 ESM)

0.2.0 及更早依賴已移除的 apiProxy,在 0.2.1-rc.3 上會報錯,需升級到 0.2.1 線。0.3.x 下 engines.dsh 會拒絕安裝。

安裝與啓用

插件以當前 DSH 進程的 Host 權限運行;安裝前可在 GitHub 查看源碼與 MIT 許可證。

桌面端(圖形界面,推薦)

  1. 打開 DSH 桌面端,進入 設置 → 插件。
  2. 點「添加插件」,在彈窗中粘貼:
github:skyrocks/dsh-model-switcher
  1. 確認安裝,等待依賴解析完成。
  2. 完全退出 DSH 再重新打開(macOS 用 Cmd+Q;Windows 從托盤退出)。只關窗口不夠,Host 插件僅在啓動時加載。
  3. 新開會話,說「列一下模型」驗證。插件列表中顯示 @skyrocks/dsh-model-switcher(插件行 id 爲 model-switcher)。

命令行(可選)

# GitHub(推薦)
dsh plugin --profile desktop add github:skyrocks/dsh-model-switcher

# 本地目錄(開發)
dsh plugin --profile desktop add /absolute/path/to/dsh-model-switcher

desktop 爲桌面版 profile;若使用 dsh web,將 --profile desktop 換爲 --profile web。安裝完成後同樣需要完全退出並重啓 DSH。

典型用法

在對話中直接說明意圖,由當前模型決定是否調用工具,例如:

有哪些模型?
列一下 glm 系列
換到 claude haiku
用最便宜的那個
切到 deepseek 推理

也可使用精確 id(如「換成 glm-5.3」)。支持中英文混說及常見同義詞(如 flash/turbo、pro/max、智譜 → glm 等)。切錯可用內置 /model 改回。切換對當前這一輪迴復可能仍用舊模型,從下一條消息起生效;行爲與 /model 一致,會一併更新默認模型。

適用場景與注意

適合:經常在長對話中按口語換模型、希望模型先列候選再切換、不想記精確 model id 的 DSH 用戶。

注意:

  • 無獨立 UI,手動點選繼續用 /model。
  • 每次調用 find_models 讀取實時目錄(排序爲啓發式,生僻暱稱可能需報精確 id)。
  • find_models 中出現 failures 時,常見原因爲該 provider 缺 Key,可在「設置 → 模型」補憑據。
  • 工具列表中沒有 find_models 時,檢查是否已完全重啓、是否裝到當前 profile(desktop / web)。
  • 非官方插件,與 DeepSeek 無隸屬關係;SkillHub 等爲社區目錄,非官方應用商店。

結尾

dsh-model-switcher 把 DSH 已有的模型目錄與切換路徑暴露給對話裏的 function call:查用 find_models,切用 switch_model,多候選時由用戶拍板,避免誤切。進一步瞭解見 SkillHub 目錄頁 與 GitHub 倉庫。

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

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

小夜