前言¶
DSH 的插件機制允許把模型選擇、命令、設置和工具做成可組合模塊。對智能體開發者來說,常見問題不是“能不能調用模型”,而是日常輪次和關鍵輪次應該分別走什麼模型。
dsh-shift-router 是 green-dalii 維護的 DSH 插件,用來在 fast 和 smart 兩級模型鏈之間做路由,並加入 LLM Judge、fallback、故障轉移和任務編排。下面介紹它的定位、能力、安裝方式和注意點。
這是什麼¶
dsh-shift-router 是一個兩級模型路由插件:它在每輪頂層 agent 前做分類和路由選擇,讓請求進入對應的模型鏈,並通過 DSH 的 agent/request 流水線執行。
當前資料中可覈實的信息包括:
- 插件名:
green-dalii/dsh-shift-router - 許可證:MIT
- package 版本:
0.5.0 - Node 要求:
>=22.0.0
核心功能¶
Judge 分級¶
每輪頂層 agent 前,LLM Judge 將用戶消息分類爲 fast 或 smart。Judge 只負責分類,不執行任務。分類結果驅動整輪請求通過 DSH 的 agent/request 流水線。
升級策略是“即時升級、趨勢降級”:一次 smart 判定會立即切到強模型層;回到 fast 需要滑動窗口多數,默認窗口爲 5 輪、比例不低於 60%,低置信度投票會被忽略。
緩存感知路由¶
當 fast 和 smart 共享 provider 時,插件會把降級閾值提高到 0.9,並在 prompt cache 熱時暫緩切換,避免爲了切到更便宜模型反而付出額外成本。
運行時故障轉移¶
遇到 429、5xx 或配額失敗時,對應模型會進入指數退避冷卻:
1m → 4m → 16m → 1h → 6h cap
其中 client-side limits 起始冷卻爲 16m。
故障轉移在同一層內重新解析到健康模型,不跨層。
任務級編排¶
複雜任務由 smart 層作爲 CTO 規劃、委派給 fast 層 engineer subagents、審查結果並迭代。
這裏的硬上限由插件強制:達到上限時,subagent tool 會被拒絕。
成本遙測¶
插件按 tier 跟蹤 token 和吞吐,可選配置 USD 價格表。使用 /router stats 可查看會話成本信息。
安裝與啓用¶
先確認環境滿足 Node >=22.0.0。
使用 git 安裝命令添加插件:
dsh plugin --profile <name> add github:green-dalii/dsh-shift-router
這條安裝方式依賴 package 的 prepare script 構建 dist。如果使用 pnpm >=10,默認會拒絕 git dependencies 的 prepare scripts。可以在 profile 的 pnpm-workspace.yaml 中添加:
allowBuilds:
dsh-shift-router: true
然後重新執行添加命令;也可以改用源碼 checkout 並執行:
npm run build
插件無配置也能加載,所有默認值安全。未配置 tiers 前,插件行爲是 no-op;配置 tiers 後,路由才生效。tier 模型可以來自 GUI settings panel 或 profile patch row。
典型用法¶
配置入口有兩種:
- 在 GUI 中打開
Settings → Plugins → Plugin configuration,找到Shift-Router卡片。 - 使用
/router config命令編輯 shift-router settings namespace。
routing.mode 有三個可選值:
auto:默認值,啓用 judge、routing、failover 和 orchestration。manual:不啓用 judge,僅使用/route-force做顯式覆蓋。off:模型選擇完全被動,但命令和遙測仍可用。
查看成本:
/router stats
關於熱加載:
- 配置變更可以通過編輯 profile patch 熱加載。
- 外部插件代碼變更當前需要 profile restart。
- 官方 Web bundle 默認將 HMR 設爲禁用。如果需要啓用 HMR,可在 profile patch 中設置:
- id: hmr
disabled: false
適用場景與注意¶
適合使用 DSH 的開發者,尤其是希望同時滿足以下情況的人:
- 日常輪次走較低成本模型,關鍵輪次切到更強模型。
- 需要多模型 fallback 和同層故障轉移。
- 需要按 tier 查看 token、吞吐和可選成本。
- 需要簡單任務編排,並讓插件強制任務上限。
注意:
- 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
- 未配置 tiers 前不會主動路由。
- 故障轉移不跨層。
- pnpm
>=10下需要顯式允許構建腳本,或使用源碼構建。 - 代碼變更不能依賴熱加載完成生效。