前言¶
DeepSeek Harness (DSH) 理念是“一切皆插件”。在模型推理場景中,通常需要同時維護多個模型(如低成本快速模型、高性能模型、備用模型)。當主模型出現故障時,手動切換或調整配置會打斷開發流程。dsh-model-router 將模型選擇轉化爲路由邏輯:你聲明一個虛擬模型 ID,該 ID 綁定一個候選模型池,插件通過算法選擇並調度,從而實現透明的故障轉移。
插件介紹¶
- 插件名稱:dsh-model-router
- 維護者:andrepontesmelo
- 所屬分類:模型推理
- 開源協議:MIT
- 定位:DSH 插件,通過可插拔路由算法(如優先級、輪詢)將虛擬模型 ID 映射到真實提供者候選模型,並支持透明故障轉移。
核心功能¶
- 虛擬模型 ID 與路由算法:支持基於優先級和輪詢等算法,將虛擬模型 ID 背後映射到一組真實提供者候選模型。
- 透明故障轉移:當某個候選模型發生流式響應錯誤時,自動切換至下一個可用候選模型,無需應用層感知。
- 配置驅動路由:候選模型列表、排序順序、推理強度等參數全部通過配置文件管理,不涉及代碼邏輯修改。
- 響應來源追蹤:在響應元數據中記錄實際回答模型的信息,便於排查和審計。
安裝與啓用¶
該插件需要 Node.js 環境版本 22 或更高,且需先配置好 DSH profile。
安裝命令:
dsh plugin --profile <your-profile> add github:andrepontesmelo/dsh-model-router
配置示例(cordis.patch.yml):
- insert:
- id: model-router
name: 'dsh-model-router'
config:
routes:
- id: routed-chat
algorithm: priority
candidates:
- provider: deepseek-official
model: deepseek-v4-flash
reasoning: high
驗證與測試¶
插件內置了測試套件。在倉庫目錄下執行:
npm test # 76 個單元測試
npm run smoke # 5 個內存故障轉移演練
注意事項¶
- 無會話粘性:同一對話的連續輪次可能會被路由到不同的候選模型。
- Reasoning Effing 限制:候選模型的
reasoning參數僅在該模型支持對應 effort 時才生效,否則靜默使用提供者默認值。 - 配置信任:插件信任配置,列出的每個候選模型都是實際會被髮送請求的真實提供者。
- 依賴要求:運行環境需滿足 Node >= 22 且存在有效的 DSH profile。
總結¶
dsh-model-router 通過引入虛擬模型 ID 和路由算法,簡化了多模型場景下的故障處理和負載均衡配置。它將故障轉移邏輯下沉到插件層,使上層應用僅通過虛擬 ID 調用模型。更多細節可查閱插件目錄頁或 GitHub 倉庫。