dsh-session-slm-router:DeepSeek Harness 影子模式 SLM 路由插件

前言

DeepSeek Harness(DSH)採用“一切皆插件”的架構。在進行模型推理優化時,特別是 S1 階段(影子模式)觀察或 S3 階段(灰度發佈)上線時,需要根據用戶發言內容動態決定使用小型模型(SLM)還是大型模型(LLM)。dsh-session-slm-router 插件通過調用外部 vertical-small-model CLI 工具,每輪預測用戶意圖的強弱分類,並將結果記錄到影子日誌中。默認模式下,它僅記錄數據不改變會話活躍模型;在特定配置下,它可以執行降檔操作。

核心功能

  • 影子模式 SLM 路由:通過 vertical-small-model CLI 預測每輪用戶發言的強弱分類(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-model CLI 並正確配置 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
羽毛球分组比赛记分
小程序二维码

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

小夜