前言¶
DeepSeek Harness(dsh)把智能體循環做成「一切皆插件」:模型、工具、界面槽位都可以掛上去。日常用網頁界面寫代碼時,會話裏往往混着兩類請求:一類是「這個報錯是什麼意思」「繼續」這種短問,一類是改架構、讀大文件、跑多步工具的重活。如果全程走主模型,簡單問答也會喫前綴緩存和推理預算;如果全程走便宜模型,複雜任務又容易掉質量。
社區插件 dsh-model-router 做的是中間這一層:先判斷這一步是不是簡單問題,簡單的用 flash 直答,重活仍走主模型;主模型短暫故障時可以降級重試一次;輸入框下方再掛一塊 token / 緩存命中 / 估算成本面板。本文按插件目錄頁、GitHub 倉庫 README / package.json / 源碼交叉覈對後整理。
社區插件目錄(https://deepseek-harness-plugin.com)是獨立站點,和 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。GitHub 上還有另一個同名倉庫 superboy911/dsh-model-router,做的是關鍵詞路由和隔離生圖,和本文介紹的不是同一個插件。
這是什麼¶
dsh-model-router 是一款面向 DeepSeek Harness 網頁界面的界面增強插件,由 tianji-qingtian 維護,許可證 MIT,主要語言 JavaScript。目錄頁收錄於 2026-08-12,分類爲「界面增強」。倉庫 package.json 當前版本爲 0.8.1,GitHub 最新 Release 也是 v0.8.1(2026-08-14)。插件聲明的客戶端平臺是 web,需要掛到 web profile 才能看到面板。
它解決三件事:
- 簡單問題不要進主模型:零前綴 flash 作答,不碰主會話的前綴緩存。
- 瞬時故障不要整輪失敗:限流、服務端錯誤、超時、空響應時降到便宜模型再試一次。
- 用量要能看見:按會話摺疊真實適配器 token,並按模型檔位估一個帶
≈的費用。
Harness 官方倉庫寫明當前仍是 developer preview,不兼容變更是預期內的。插件 README 也提醒:升級 harness 後,僞造 step 包絡這一段值得複查。
核心功能¶
便宜模型裁判路由¶
請求先走 agent/pre-step 瀑布。明顯的重活(強關鍵詞或超長文本)直接進主模型,不加額外延遲。其餘請求會做一次零前綴 flash 裁判:只輸出 SIMPLE 或 AGENTIC 一個詞,上限 64 token,並關掉思考。裁判會帶上上一條 assistant 回覆,用來識別「它 / 這個 / 繼續」這類依賴上下文的追問,避免把追問誤判成可以無上下文直答。
便宜 / 強模型對不是寫死的,運行時從 llm.listModels 的目錄裏按 id 匹配:
- 便宜候選:
flash|chat|mini|turbo|haiku|lite|air|nano - 強候選:
pro|reasoner|opus|sonnet|max|ultra|premium|r1
原生 DeepSeek 適配器下,文檔寫的配對是 deepseek-v4-flash ↔ deepseek-v4-pro。
回答前先問,再直答¶
v0.8.0 起,auto 模式下命中 SIMPLE 不會立刻作答,而是彈出 harness 自帶的問題 UI,讓用戶選:
- ⚡ 快速回答(flash):更快、成本更低
- 主模型回答:走正常智能體流程
選主模型、關掉彈窗、子代理會話,或沒有問題 UI 時,都會回退到正常流程。問題文案跟隨提問語言(中 / 英)。
用戶選快速回答後,插件拒絕當前步驟,用便宜模型做一次零前綴單次流式調用,再把問答寫進會話日誌(僞造 step/start … assistant/message … step/end 包絡)。界面上看起來仍是普通一問一答,答案前綴帶 ⚡ 快速回答 / Quick answer · 標記。主模型不參與這一輪,也不會產生子代理會話、relay 卡片或 toast,主會話的模型和前綴緩存保持不動。
Auto / 關閉 與故障降級¶
快速回答可以按會話開關,三處入口做同一件事:
- 輸入框下方面板的 Auto / 關閉
- 斜槓命令
/router auto或/router off - 模型可見工具
route_model(參數tier:auto|off)
沒有「按請求指定模型」的配置項。auto/off 狀態由會話投影從 command/run 事件摺疊,重啓後仍保持;瞬時故障降級標記是進程本地的,harness 退出即丟。
降級只覆蓋這些瞬時錯誤:RATE_LIMIT、SERVER、TIMEOUT、EMPTY_RESPONSE。命中後把該輪標成降級,返回 { kind: 'retry' },重試進入 agent/request 時落到便宜模型,每輪最多一次。其餘錯誤交給 provider 自己的重試策略。
另外,agent/request 在沒有路由決策時會把模型拉回 agent 配置默認值,避免僞造 header 或重啓後的陳舊持久化 header 粘住。
輸入框下方的用量面板¶
面板掛在 conversation.composer.dock,中英文案走 harness 的 locale 服務。內容包括:
- Auto / 關閉開關
- 當前模型
miss/out/cache%/≈$一行QA×N快速回答計數(每次直答會短暫高亮)- 分模型用量明細
數字來自會話投影 modelRouter,摺疊 request/header、command/run、assistant/message 事件。用的是適配器上報的真實 token(輸入 / 輸出 / 緩存讀 / 緩存寫 / 推理),不是前端自己估的調用次數。投影可重放,冷啓動會話也能出數。安裝前已經寫進日誌的歷史也會被計入,這是文檔寫明的預期行爲。
成本是檔位估算,單位 USD / 百萬 token,寫在 src/index.js 頂部:
const PRICE_TABLE = [
{ test: CHEAP_RE, input: 0.27, output: 1.10, cacheHit: 0.07 },
{ test: STRONG_RE, input: 0.55, output: 2.19, cacheHit: 0.14 },
]
面板數字始終帶 ≈。緩存命中按緩存價計,不按輸入價。harness 的 TokenUsage 字段是不相交的:inputTokens 已經去掉緩存讀(DeepSeek 上報 prompt_tokens = hit + miss,適配器把命中扣掉了),所以面板顯示 miss … · cache N%,命中率是 hit / (hit + miss)。文檔說健康的長對話通常在 90% 以上。價格表可以改成自己賬號的實際報價。
安裝與啓用¶
目錄頁給出的安裝命令是:
dsh plugin add github:tianji-qingtian/dsh-model-router
dsh CLI 需要在 PATH 上。如果之前只用 npx 跑過 harness,會報 command not found: dsh。倉庫 README 的前置步驟是先全局安裝:
npm install -g @deepseek-ai/dsh
也可以用 pnpm add -g @deepseek-ai/dsh(全局 bin 目錄要在 PATH 上),或把後面的命令都加上 npx @deepseek-ai/dsh 前綴。
這個插件的客戶端聲明是 web 平臺。倉庫 README 建議裝進 web profile,並固定 Release tag。README 示例仍寫 #v0.7.2,倉庫當前最新 Release 是 v0.8.1(含「快速回答前先問用戶」)。可復現安裝建議釘最新 tag:
dsh plugin --profile web add "github:tianji-qingtian/dsh-model-router#v0.8.1"
dsh --profile web
add 只改 profile 文件,運行中的實例不會熱加載。重啓後,輸入框下方應出現 ⚡Router 面板;宿主半場加載完成後會註冊 /router 和 route_model。可在 Settings → Plugins 裏確認列表中有 dsh-model-router。
目錄頁也提示:如需可復現安裝,可寫成 github:tianji-qingtian/dsh-model-router#commit。某個會話裏可能還跑着一個同名的動態原型(只活在當前進程),和裝進 profile 的 bundle 不是一回事,harness 退出即消失。
插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。裝之前應閱讀倉庫源碼和 MIT 許可證。
典型用法¶
裝好並重啓 web profile 之後,可以按下面的順序驗證。
- 打開網頁界面,看輸入框下方是否出現 ⚡Router 面板。開關應能在 Auto 和關閉之間切換。
- 保持 Auto,發一條自包含的短問題,例如「Python 裏
list和tuple有什麼區別」。裁判判成SIMPLE時會彈出 ⚡ 快速回答(flash) / 主模型回答。選快速後,回覆應帶⚡ 快速回答標記,面板上的QA×N會加一。 - 再發「繼續展開第二點」這類追問。按文檔設計,裁判能看到上一條回覆,這類依賴上下文的問題應走主模型,而不是無上下文直答。
- 用斜槓命令顯式開關:
/router auto
/router off
參數只能是 auto 或 off,寫錯會返回 usage: /router auto|off。
- 也可以讓模型調
route_model,參數tier同樣是auto或off。工具返回裏會帶當前模式,以及目錄裏解析到的便宜模型 id。 - 看面板上的
miss/out/cache%/≈$和分模型明細。長會話裏 cache 命中率如果長期很低,優先檢查是不是每次都在換模型或清上下文,而不是先改價格表。
適用場景與注意事項¶
比較適合這些情況:
- 主要在 DeepSeek Harness 網頁界面裏幹活,希望簡單問答走 flash,重構 / 多工具任務仍走主模型。
- 想在輸入框旁邊看到本會話的 token、緩存命中和估算費用,而不是事後去賬單頁對賬。
- 偶爾碰到限流、超時、空響應,希望該輪自動降到便宜模型再試一次,而不是整段對話停住。
使用前要注意:
- 客戶端平臺是
web。只跑終端 TUI、不啓網頁界面時,裝了也看不到 dock 面板。 package.json要求 Node.js^22.19.0 || >=24.0.0,並聲明對@deepseek-ai/cordis、dsh-commands、dsh-llm、dsh-session等包的 peer 依賴。harness 升級後如果這些包對不上,需要對照 Release 再裝一次。- 直答會把僞造 step 包絡寫進會話日誌,這是插件和 harness 耦合最深的部分。官方 harness 仍在 developer preview,升級後應複查快速回答是否還符合會話不變量。
- 面板費用是檔位估算,不是賬單。改
PRICE_TABLE才能貼近自己的報價。 - 插件以當前 dsh 進程權限運行。安裝前檢查 https://github.com/tianji-qingtian/dsh-model-router 的源碼和許可證;不要把目錄頁當成官方背書。
小結¶
dsh-model-router 把「簡單問題 flash 直答、瞬時故障降級、會話用量可視化」收進 DeepSeek Harness 的網頁輸入框下方。路由決策發生在 agent/pre-step,費用數字來自可重放的會話投影,開關只有 auto / off,沒有額外的按請求模型配置。
目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-model-router/
GitHub:https://github.com/tianji-qingtian/dsh-model-router