前言¶
在 DeepSeek Harness(DSH)裏跑智能體工作流時,模型往往不是單一付費 API,而是散落在各處的免費額度:廠商試用積分、活動贈額、OpenRouter 的 :free 路由等。它們常在同一晚裏先後掉線——請求寫到一半斷流,手動換模型又撞上另一個半死不活的端點,時間耗在「救火」而不是開發上。
手工記臺賬、憑感覺切模型,很難同時處理「誰在當下健康」「失敗後是否同檔無縫替補」「真花錢時是否有上限和通知」這類問題。下面介紹的 dsh-poor-router(README 亦稱 poor-router / 窮鬼路由器)是 DSH 生態裏的工作流類插件:把多條免費/廉價入口收成統一資源池,按請求記賬、用 Thompson 採樣做自適應選路,並在流式失敗時自動改道。
這是什麼¶
dsh-poor-router 面向 DeepSeek Harness 的 Budget-LLM pool router:維護可達模型的臺賬(ledger)、健康度跟蹤,並在免費檔模型之間用 Thompson sampling 做故障轉移;帶 Web 設置頁儀表盤與輸入框旁的實時改道路由徽章。
插件版本在 package.json 中爲 1.0.0,許可證 MIT,運行環境要求 Node.js >= 20。倉庫在 README 安裝說明中指向 GitHub 用戶 yishengdaxiaonengjihui 下的 dsh-poor-router;社區目錄另有 SkillHub 插件頁 可作檢索入口。SkillHub 與 DeepSeek / 幻方無官方從屬關係,DSH 本身也遵循「一切皆插件」的擴展方式,此文僅從公開 README 與包元數據歸納能力,不表述爲官方應用商店條目。
README 寫明:若能穩定負擔 API 賬單,這類「窮鬼向」設計並非目標用戶——插件只在全部免費候選都不可用時,才通過逃生口動用帶日封頂的最便宜付費模型,並用 SMS 告知花費。
核心功能¶
以下均出自項目 README 與 package.json 描述,按機制分組說明。
自動臺賬(pool.json)¶
每次請求按「條目」計量:調用次數、成功 / 失敗 / 中止、TTFT 的 EMA、輸入輸出 token(含 reasoning token)。首次見到的模型會自動登記進 pool.json。
Thompson 採樣自適應路由¶
每條目維護 Beta 後驗(成功/失敗),配合高斯近似採樣;TTFT 懲罰項爲 3000ms/ttft;當前小時桶權重加倍。路由決策在 llm/stream 鉤子裏完成,邏輯概覽如下:
llm/stream hook
├─ aux/small request? ──► executor pool (thickest remaining grant)
│ └─ every 6th ──► epsilon-explore unused free model
├─ provider cooling? ──► pickAlt(): same tier → down A/B/C → escape hatch (paid, capped, cheapest)
├─ model cooling? ──► pickAlt()
└─ hour-congested? ──► pickAlt() (today's bucket fail-rate > 60% @ n≥4)
pickAlt() samples candidates with Thompson sampling × TTFT penalty;
34% chance to inject an unused newcomer into the same-tier window.
Every decision is logged to the ring buffer; nothing writes back to config.
小時桶 v2¶
擁塞判斷僅使用當天本地鍵 YYYY-MM-DD:HH 的桶,7 天滾動裁剪,避免陳舊數據造成「永久擁塞」誤判。
同質量檔位梯隊¶
可爲模型打 tier: S/A/B/C。改道時優先同級,再順降 A→B→C,最後才上檔;檔位可在面板編輯並即時持久化。
Executor 池¶
將廉價高配額模型標爲 role: executor,瑣碎/輔助子請求路由到剩餘 grant 最厚的一條;每第 6 次此類請求會對未使用的免費模型做 epsilon 探索(另有 34% 同檔採樣注入)。
真花錢護欄¶
付費模型設 paid: true,配置每百萬 token 價格與日封頂 dailyCapYuan;它們不會進入普通候選列表,僅當所有免費候選都「死亡」時經逃生口按最便宜優先啓用,過半日封頂時通過 text_me 發短信警告。
廠商熔斷¶
AUTH/QUOTA 類失敗使 provider 冷卻 10 分鐘,429 冷卻 90 秒;冷卻狀態跨重啓保留。
取證與面板¶
切換日誌(環形 50 條)落盤,保留 Thompson 採樣記錄與 persist 日誌;Web 設置頁展示可用性排序(後驗均值 × 延遲懲罰)、按廠商分組的臺賬行(可展開改有效期/grant/tier)、近期切換與 TS picks。輸入框左側 ⚡ 徽章在約 5 秒內顯示最近一次請求實際服務的模型及原因(如 aux-explore),懸停可看詳情,十分鐘後變淡,可開關。
Session 工具¶
插件註冊兩個會話工具:pool_status(全量快照)、pool_control(setTier、setRouting、setAdaptive、setBadge、setExpiry、setGrant、setDisabled、clearProviderCooldown、reloadPool 等覆蓋項)。無 Web GUI 時工具仍可在 headless 環境使用,面板與徽章無處渲染而已。
FAQ 要點:改道不會改變你在配置裏固定的模型——按請求無狀態,每次從配置模型出發,僅當次調用可能被替換;全部免費模型同時掛掉時走逃生口 + SMS,任一恢復後恢復正常選路。
安裝與啓用¶
README 推薦的 GitHub 安裝方式爲(須原樣使用,勿憑插件名自行拼接 owner):
dsh plugin --profile web add github:yishengdaxiaonengjihui/dsh-poor-router
也可在對應 profile 的 package.json 中加入依賴 "dsh-poor-router": "github:yishengdaxiaonengjihui/dsh-poor-router",在 dsh.profile.bundles 中列出,再執行 pnpm install。
本地聯調時,在 <DSH_HOME>/profiles/web/ 的 package.json 裏用 link: 指向本機路徑,例如:
# in <DSH_HOME>/profiles/web/
# package.json dependencies:
"dsh-poor-router": "link:D:/somewhere/dsh-poor-router"
完成後重啓 DSH;Web 客戶端相關模塊由 client-modules 自動打包。
配置¶
數據與模型條目集中在 pool.json。插件級路徑默認 <cwd>/poor-router/,可在 profile 的 cordis.patch.yml 中覆蓋:
- id: poor-router
name: dsh-poor-router
config:
dataDir: 'D:/my-data/poor-router' # base dir for all three files
# or individually:
# poolPath: '...'
# statePath: '...'
# importPath: '...'
layerRules: # optional default layers by id prefix
- { match: 'deepseek-official/', layer: 'backbone' }
- { match: 'tokenrouter/', layer: 'matchstick' }
常用條目字段:
| field | meaning |
|---|---|
id |
provider/model — must match what the harness proposes |
expiresAt |
ISO date; urgency sort + panel countdown |
grantRemaining / grantUnit |
executor-pool budgeting |
tier |
S/A/B/C quality ladder (panel-editable) |
role |
"executor" joins the aux-request pool |
layer |
backbone (never burned) / burn / matchstick |
paid + priceIn/OutYuanPerM + dailyCapYuan |
real-money guardrail |
escapeHatch |
allow this paid model as last-resort |
先在 DSH 中啓用插件並跑通若干真實請求,讓未見過的模型自動進入 pool.json;再在面板或 pool_control 中補全 expiresAt、grantRemaining、tier、role 與付費護欄字段,與你在 Harness 裏配置的 provider/model id 保持一致。
適用場景與注意¶
適合:長期混用多條免費或極低價 LLM 額度、希望 DSH 工作流在單點失敗時自動同檔替補、需要可視化臺賬與改道原因的場景。
注意:
- 插件以當前 DSH 進程權限運行,安裝前請閱讀源碼與 MIT 許可證,並確認
text_me、付費逃生口等配置是否符合你的風控要求。 - 安裝命令中的 GitHub 座標以 README 原文爲準(
yishengdaxiaonengjihui/dsh-poor-router),與目錄站展示路徑可能不同,以你實際dsh plugin add的源爲準。 - 逃生口會花真錢並可能發短信;免費池全部不可用纔會觸發,但仍需自行設置
dailyCapYuan與價格字段。
結尾¶
dsh-poor-router 把分散的免費額度當成一個池:記賬、採樣選路、熔斷與同級改道,儘量讓 Harness 會話在配額抖動時仍能跑完;必要時才動用封頂付費模型。
- 社區目錄:https://www.skillhub.cn/plugins/orchispring/dsh-poor-router
- README 對應倉庫:https://github.com/yishengdaxiaonengjihui/dsh-poor-router(安裝說明與中文文檔
README.zh.md均在此)