在 DeepSeek Harness 的開發中,如何根據任務複雜度在“經濟模型”和“高質量模型”之間切換是一個常見需求。手動實現分類邏輯會增加系統的複雜度,且難以保證一致性。dsh-adaptive-model-router 插件提供了一套確定性、本地化的路由方案,通過簡單的配置即可實現按需切換。
這是什麼¶
dsh-adaptive-model-router 是一個 Deterministic per-turn adaptive model routing 插件,由 icyaaaww 維護。它針對 DeepSeek Harness 0.1.1-rc.2 版本設計。
該插件的核心價值在於它不通過調用另一個模型來分類請求,而是通過本地、同步、可復現的計算來決定路由。它會在單次會話中根據任務特徵自動升級模型,但不會降級,從而在保證成本控制和響應質量之間取得平衡。
核心功能¶
- 確定性逐輪路由:在每輪對話開始時,根據輸入字符數和關鍵詞判斷是否需要切換到高質量模型。
- 本地同步執行:路由邏輯完全本地化,不發起額外的模型調用,因此不會增加 token 消耗或產生額外的 provider 請求。
- 遲滯行爲:在單次會話(turn)中,路由可以升級但不會降級。只有當進入新的一輪對話時,纔可能重新評估並降級到經濟模型。
- 靈活的升級條件:支持基於步驟數(
upgradeAfterStep)或工具失敗次數(upgradeAfterToolFailures)來觸發升級。 - 參數控制:支持在路由中顯式設置
reasoningEffort和maxTokens,並允許通過preserveUnknownSelection保留未配置的路由選擇。 - 透明化:插件會記錄請求配置的變更,保持
provider和model變量的一致性,便於調試和回放。
安裝與啓用¶
安裝該插件需要使用 DeepSeek Harness 的插件安裝命令。請確保你的環境已滿足 Node.js ^22.19.0 || >=24.0.0。
dsh plugin --profile web add github:icyaaaww/dsh-adaptive-model-router
配置與典型用法¶
安裝後,需要在 Harness 的配置中定義經濟模型和高質量模型,並設置路由規則。
基礎配置示例¶
在配置文件中定義路由器,設置經濟模式和高質量模式的提供商及模型,並設定觸發升級的閾值。
- id: adaptive-model-router
name: dsh-adaptive-model-router
config:
economy:
provider: deepseek-official
model: deepseek-v4-flash
quality:
provider: deepseek-official
model: deepseek-v4-pro
inputCharsThreshold: 1200
complexityKeywords: [architecture, migration, security, 架構, 遷移, 安全]
upgradeAfterStep: 2
upgradeAfterToolFailures: 1
failureExclude: [todo_write, job_output, job_list]
preserveUnknownSelection: true
配置項說明¶
- economy / quality:定義低成本模型(如 flash)和高成本模型(如 pro)的提供商和具體模型名稱。
- inputCharsThreshold:輸入字符數達到此值時觸發升級。
- complexityKeywords:包含這些關鍵詞(不區分大小寫)時觸發升級。
- upgradeAfterStep:從 0 開始計數,達到該步數時觸發升級。
- upgradeAfterToolFailures:連續未排除的工具失敗達到該次數時觸發升級。
- failureExclude:指定在統計工具失敗次數時需要排除的工具列表。
- preserveUnknownSelection:如果爲
true,未匹配到路由的請求保持原樣;如果爲false,插件將接管所有請求。
參數調整¶
路由配置支持可選參數。在路由中指定 reasoningEffort 會清除之前模型的設置;不指定 maxTokens 則保留顯式的請求限制。
注意事項¶
- 複雜度估算:關鍵詞和長度規則僅用於估算複雜度,不能直接衡量回答質量。
- 工具失敗統計:除非在
failureExclude中排除,否則策略拒絕產生的工具失敗也會計入升級條件。 - 並行工具:如果路由在工具執行中途升級,已並行運行的工具可能仍在使用舊模型運行。
- 模型目錄驗證:插件不驗證模型是否在目錄中,由選定的 provider 負責處理可用性診斷。
- 成本報告:插件不包含成本報告功能,需要通過對比部署前後的遙測數據來評估效果。
適用場景¶
該插件適合需要在對話過程中動態調整模型複雜度的場景。例如,簡單的問答使用 flash 模型降低成本,遇到複雜的架構設計或工具調用失敗時自動切換到 pro 模型,從而在保證最終質量的同時控制推理成本。