llm-adaptive:爲 DSH 增加 adaptive(自動路由)模型入口

前言

在 DeepSeek Harness(DSH)中,模型選擇通常發生在 /model 選擇器裏。手動選擇簡單模型或高級模型可以工作,但在一輪會話中,請求複雜度會變化:有時只是確認、總結,有時需要多步推理或處理錯誤循環。對使用 DSH 做智能體、工具鏈或本地工作流的人來說,反覆切換模型會打斷流程。

llm-adaptive 針對這個問題提供一個 adaptive(自動路由) provider:每次請求先做複雜度分類,再根據 pool.json 中的路由鏈選擇後端 provider。

這是什麼

llm-adaptive 是一個 DSH 插件,用於 per-request 複雜度分類和 provider 路由。倉庫位於 https://github.com/dylan121322/llm-adaptive,許可證爲 MIT。

它把 DSH 的模型選擇器擴展出一個 adaptive(自動路由) 入口,並在 low、medium、high、critical 四個級別之間做路由。顯式的 low、medium、high、critical 模型也保留在 picker 中,可以直接選擇。

核心功能

每次請求先分類

分類器使用 deepseek-v4-flash,直接調用,不經過 proxy,也不產生遞歸。

每次請求會被分爲 low、medium、high、critical 之一。

結合會話上下文

分類 prompt 會注入滾動會話目標摘要和最近幾輪對話,並結合 continuation、wrap-up、error-loop 等規則判斷當前請求是否需要更高或更低的路由級別。

Sticky level protection

當任務進行中,插件不會輕易把當前請求降到低一級。若沒有明確的 downgrade 或 wrap-up 信號,請求會保持在上一級別。

配置驅動的路由鏈

路由鏈來自:

pool.json -> routing.levels

其中 $active 會展開爲 active provider。缺失項會回退默認值;transport failures 會沿鏈向下嘗試。

分類器配置來自 pool

分類器 URL、模型和密鑰引用都來自 pool.json 的 classifier 段:

url
model
key_ref

插件不硬編碼憑證。key_ref 會先對照 ~/.dsh/.credentials.yaml 解析,失敗時回退到 pool 中的 api_key。

Fail-open

如果分類失敗,請求會降級到 medium。插件不會因此阻塞請求。

決策可觀察

每個決策都會寫入插件日誌,包括 level、cause(llm / sticky / cache)和 chain。

日誌路徑爲:

~/.dsh/hooks/plugin.log

120 秒決策緩存

插件維護一個 120s 決策緩存,緩存 key 由 user-text head 和 goal fingerprint 組成。

前置要求

使用前需要:

  • DeepSeek Harness(dsh)
  • 模型池文件:
~/.dsh/tools/cc-switch-sync/pool.json
  • pool.json 中的 classifier 段:url、model、key_ref
  • pool.json 中的 routing.levels:low、medium、high、critical
  • 一個用於分類器的 DeepSeek API key

包聲明包含:

peerDependencies: @deepseek-ai/dsh-llm >=0.0.1-rc.5
dsh.bundle.patch: ./cordis.patch.yml

pool.json 可以由 cc-switch-sync import tool 生成,也可以手工編寫。插件每次請求都會讀取它,因此修改 pool 後會立即生效。

安裝與啓用

安裝命令:

dsh plugin add llm-adaptive

安裝完成後,重啓 dsh web 服務,然後在 /model 選擇器中選擇:

adaptive(自動路由)

典型用法

1、打開 /model,選擇 adaptive(自動路由)。

2、之後的每次 LLM 請求都會被分類爲 low、medium、high 或 critical。

3、請求會被路由到該級別鏈中的第一個可用 provider。

4、決策會寫入日誌,形如:

level=… cause=… chain=…

日誌位於:

~/.dsh/hooks/plugin.log

顯式級別 low、medium、high、critical 也會列在 picker 中,可以直接選擇,不依賴自動分類。

適用場景與注意

適合希望減少手動切換模型、但仍保留顯式級別選擇的 DSH 用戶。它也適合需要按會話複雜度在不同 provider 之間切換的場景。

需要注意:

  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼、依賴和本地配置路徑。
  • 插件會讀取 pool.json,並通過 key_ref 解析 ~/.dsh/.credentials.yaml,密鑰引用應只指向你信任的來源。
  • 分類失敗會 fail-open 到 medium,請求仍會繼續。
  • 路由鏈的可用性取決於 pool.json 中配置的 provider 和 transport。
  • 許可證爲 MIT,倉庫地址爲 https://github.com/dylan121322/llm-adaptive。

結尾

llm-adaptive 給 DSH 增加了一個配置驅動的自動路由入口:每次請求按上下文分類,再進入 low / medium / high / critical 路由鏈;分類失敗時保持可用,並把決策寫入日誌。

GitHub:https://github.com/dylan121322/llm-adaptive

目錄頁入口可在 GitHub README 中的 “Awesome DSH Plugin” 徽章處找到。

羽毛球分组比赛记分
小程序二维码

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

小夜