前言¶
在 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_refpool.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” 徽章處找到。