前言¶
DeepSeek Harness(DSH)採用“一切皆插件”的架構。在進行模型推理優化時,特別是 S1 階段(影子模式)觀察或 S3 階段(灰度發佈)上線時,需要根據用戶發言內容動態決定使用小型模型(SLM)還是大型模型(LLM)。dsh-session-slm-router 插件通過調用外部 vertical-small-model CLI 工具,每輪預測用戶意圖的強弱分類,並將結果記錄到影子日誌中。默認模式下,它僅記錄數據不改變會話活躍模型;在特定配置下,它可以執行降檔操作。
核心功能¶
- 影子模式 SLM 路由:通過
vertical-small-modelCLI 預測每輪用戶發言的強弱分類(weak/strong)。 - 影子日誌記錄:將預測結果、實際模型檔位、降檔決策等寫入 JSONL 格式的影子日誌文件。
- S1 模式(默認):只預測和記錄日誌,不改變會話當前活躍的模型。
- S3 模式(弱模型模式):執行降檔換模,但僅放行
switch_to_weak(降檔),不執行switch_to_strong(升檔)。 - Reasoning Eff�ort 兼容性檢查:在 weak-only 模式下,綁定時會檢查目標模型的 reasoning effort 能力,若不支持則剝離參數或順延次選。
- 同意門:支持在降檔前通過宿主審批通道(如瀏覽器 UI)彈窗確認,支持 always/smart/never 三種策略。
安裝與啓用¶
插件通過 DSH 的插件管理器安裝。安裝前請確保已部署好外部依賴 vertical-small-model CLI。
# 安裝插件
dsh plugin add dsh-session-slm-router
安裝後,需要在配置文件中啓用並配置相關參數。
配置說明¶
模式選擇¶
插件提供三種工作模式:
shadow(默認):只預測 + 寫影子日誌,不換模。weak-only:真正換模,但只放行switch_to_weak(降檔);switch_to_strong記錄但不放行。off:關閉插件。
必填配置¶
運行時必須配置預測命令和模型路徑,指向 vertical-small-model 項目的部署位置。
session-slm-router:
mode: shadow # 或 weak-only
predictCmd: "python3 <path-to>/vertical-small-model/scripts/route_predict.py"
predictModel: "<path-to>/vertical-small-model/data/eval/routing-v0/model-r1.json"
logPath: "slm-shadow/session-slm-shadow.jsonl"
可選配置項¶
- 同意門 (
downgradeConfirm):默認爲never(靜默自動降檔)。可選值:always(每次 bind 都彈窗)、smart(僅高意圖情景彈窗,如會話首輪/當前強模型≠默認)、never(不彈窗)。 - 槽位緩存 (
slotCachePath):可選。用於持久化弱模型槽位的健康狀態,路徑相對於~/.dsh。刪除緩存文件即可重建。 - 槽位規則 (
tierRules):maxTokensWeakMax:L2 元數據降檔閾值。autoWeak:自動收錄機制,默認開啓。當新供應商/模型元數據確認(maxTokens ≤ 閾值)時,自動加入降檔候選池(除非顯式在strongSlots中否決)。
完整配置示例¶
session-slm-router:
mode: weak-only
weakOnlyMainOnly: true # weak-only 是否只對主會話換模
predictCmd: "python3 /path/to/vertical-small-model/scripts/route_predict.py"
predictModel: "/path/to/vertical-small-model/data/eval/routing-v0/model-r1.json"
logPath: "slm-shadow/session-slm-shadow.jsonl"
slotCachePath: "slm-shadow/slot-order-cache.json"
tierRules:
maxTokensWeakMax: 32768
autoWeak: true
downgradeConfirm: never
weakSlots:
- { provider: openai, model: gpt-4o-mini }
strongSlots:
- { provider: openai, model: gpt-4o }
數據記錄¶
影子日誌文件位於 ~/.dsh/slm-shadow/session-slm-shadow.jsonl,每行一個 JSON 對象。關鍵字段包括:
suggested_tier:CLI 預測的強弱分類。actual_tier:當前實際模型檔位。target_source:降檔目標來源(registry/strongSlots 或 auto)。switch:決策結果(stay / switch_to_weak / switch_to_strong)。bound:weak-only 模式下是否實際換模。downgrade_confirm:同意門結果(confirmed/denied/cancelled/unavailable)。predict_ok:預測是否成功。
注意事項與適用場景¶
- 依賴外部部署:插件本身不包含預測模型,必須部署
vertical-small-modelCLI 並正確配置predictCmd和predictModel。 - 權限與運行環境:插件以 DSH 進程權限運行,請確保配置路徑可寫。
- 理念定位:DSH 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件旨在提供靈活的影子模式和灰度路由能力。
結語¶
該插件爲 DSH 用戶提供了一個落地的影子模式路由方案,便於在 S1 階段驗證路由策略,或在 S3 階段進行灰度發佈。通過 JSONL 日誌,可以清晰地追蹤每一輪的預測與決策過程。
- GitHub 倉庫:https://github.com/NinjaSln-labs/dsh-session-slm-router
- 社區目錄:https://www.skillhub.cn/plugins/NinjaSln-labs/dsh-session-slm-router