DSH Token Steward:在本地网关里做模型矩阵调度

前言

DeepSeek Harness(DSH)裏,llm-pi-ai 適配器在構造 SDK 客戶端時就固定了請求形態,請求體還是深凍結的。插件很難在會話流裏可靠地改寫「這一次用哪個模型」,也無法在上游返回 429 時自動換模型重發。把路由邏輯塞進 llm/stream 瀑布,往往還會跟着 DSH 升級一起失效。

下面介紹 DSH Token Steward(倉庫名 dsh-token-steward,SkillHub 展示名 jiamingshi-jsphys/dsh-token-steward)。它在本機 127.0.0.1 起一個 OpenAI 兼容網關,把 llm-pi-ai 的 baseURL 指過去;DSH 的會話、子代理、工具調用不用改。選路、降級、健康熔斷、精確緩存與計量發生在網關這一層。維護者爲 JiamingShi-JsPhys,社區目錄分類爲模型推理。

這是什麼

Token Steward 是面向 DSH 的模型矩陣調度中樞:官方 API、免費鏡像、自建中轉、高價全能模型都可以掛在同一張池子裏。矩陣、廠家密鑰、價目與擅長標籤在 DSH 設置頁的「管家設置」維護;插件還註冊了 token_steward_manage 工具與同名技能,可由 Agent 通過對話改配置。

適用環境(據 README):DeepSeek Harness ≥ 0.2.1-rc.3;包描述版本 1.1.3,README 安裝示例標籤爲 v1.1.2,測試規模 README 寫明 558 條。許可證 MIT,運行要求 Node ≥ 22。本包尚未發佈到 npm(pnpm add dsh-token-steward 會 404)。

架構與請求路徑

網關採用硬過濾 → 打分 → 降級鏈的微內核流水線:先淘汰不合格型號(缺能力標籤、窗口放不下、用戶下線、非對話模型等),再在剩餘候選裏排序;首個失敗按序頂上。

請求大致路徑爲:Agent / 子代理 / 工具調用 → DSH 會話層 ctx.llm(不改)→ llm-pi-ai,baseURL 指向 http://127.0.0.1:<port>/v1 → 本地網關(Bearer 校驗,僅迴環)→ 路由引擎;可回放請求可命中 SQLite 精確緩存(0 token、不出站)→ 上游廠家 → 計量與面板。

要點如下:

  1. 網關只綁 127.0.0.1,端口由系統分配;每次啓動生成隨機本地令牌,客戶端需帶 Authorization: Bearer。
  2. 硬過濾是硬拒絕:例如寫代碼任務不會派給不具備對應能力標籤的模型。
  3. 降級僅在客戶端尚未收到第一個字節時發生;首字節已發出則不再重發,避免二次副作用。
  4. 緩存命中不經過健康狀態機,避免給上游製造假樣本。

廠家 API Key 以明文存放在 $DSH_HOME/token-steward/vendors.json(權限 0600)。作者聲明其未加密存儲,與 DSH 憑據文件同級對待;白嫖模式之外的調用按上游賬單計費,費用與第三方服務可用性由使用者自行承擔。

四種調度模式

輸入框裏選的虛擬模型 id 決定檔位;懸浮窗只顯示當前檔位,換檔需改輸入框模型。

模式 虛擬 id 主序
極致便宜 steward:frugal 通過硬過濾的 C/D 級裏最便宜,同價比六維分
效率優先 steward:balanced 任務維度須 A/A+ 及以上,質量 0.6 + 成本 0.4;同批併發打散到不同上游
最強火力 steward:max_power 六維總和最高,破平看 Tier 與上下文窗口
白嫖 steward:free 僅價目爲 0 的型號;選不到則報錯,不會偷偷切付費模型

steward:subagent 是子代理專用模型 id,不是上述四種模式之一;只要主會話使用管家開頭的模型,子代理按獨立打分規則選型(agentic 維度門檻 B+,含會話粘性與併發打散等)。可通過工具查詢推薦:

action=recommend_model, profile=subagent, task="讀倉庫並改一個測試"

容災與跨模型上下文

常見上游異常在單次客戶端請求內處理,儘量不把失敗拋回會話層:

狀況 行爲
429 指數退避冷卻(上限 16 倍),本次換下一候選
連續超時 / 5xx / 傳輸失敗 達閾值熔斷,半開試探成功後復位
401 / 403 一次即熔斷
400 含上下文措辭 歸類上下文超限,換更大窗口
全部候選失敗 502 + 可讀原因

換模型時,DSH 會話歷史仍會完整發給新模型;插件在 API 層處理前綴緩存粘性、跨廠商字段歸一化(如 reasoning_content 等)、以及窗口過小時的硬拒絕(window-too-small),而不是悄悄截斷歷史。

SQLite 精確緩存

在配置 routing.cache.exact_match: true 時,對 prompt 取 SHA-256,在 $DSH_HOME/token-steward/cache.sqlite 查上次響應;命中則直接回放,不計費。規則包括:帶 tools 的請求不緩存、超長 prompt 不緩存、模型下線後作廢其緩存條目;無 node:sqlite 的老宿主可降級爲內存 LRU。

計量與界面

token 以 dsh-usage 按日臺賬爲主;插件另記路由維度臺賬。未定價模型成本顯示 —;CNY 與 USD 混存時總額顯示 —;未裝 dsh-usage 時顯示「計量不可用」。裝上 DSH 後,界面有右下角懸浮球(檔位與「今日已省」)及成本看板、模型矩陣、路由日誌、代理協作等頁籤。

安裝與啓用

本插件以當前 DSH 進程權限運行;安裝前請自行審閱源碼與 MIT 許可證,並理解密鑰與計費免責聲明。

1. 安裝依賴包

README 給出的 GitHub 安裝方式(二選一之一,不使用 dsh plugin add 拼接):

pnpm add https://github.com/JiamingShi-JsPhys/dsh-token-steward.git#v1.1.2

若無 git,可到 Releases 下載 dsh-token-steward-<版本>.zip,解壓後:

pnpm add file:<解壓路徑>

2. 寫入插件名冊

在 ~/.dsh/profiles/desktop/cordis.patch.yml 追加(完整樣例見包內 cordis.patch.yml):

- insert:
    - id: token-steward
      name: dsh-token-steward
      config:
        enabled: true

3. 重啓 DSH

重啓後插件會檢查 profile 裏 @deepseek-ai/dsh-llm-pi-ai 的 providers,缺 steward 時自動寫入一段 OpenAI 兼容配置(baseURL 指向本機網關,apiKeyEnv: STEWARD_LOCAL_TOKEN,並註冊四個檔位模型 id)。若不想自動改 profile,可在插件配置設 autoWire: false,再按 README 樣例手寫 steward 段。

寫回後再重啓一次 DSH,輸入框可選「管家·極致便宜 / 效率優先 / 最強火力 / 白嫖」。「管家設置 → 個人網關」可確認是否接上。

適用場景與注意

適合需要在同一會話裏混用多上游、按任務類型選模型、並在 429/5xx 時自動換路的 DSH 用戶。也適合需要按路由維度看延遲與費用、並可選本地精確緩存省重複調用的場景。

使用時請注意:白嫖模式只承諾零價目候選,與「極致便宜」等付費檔互不混淆;自建或未知價目型號在白嫖語義下可能以「推定免費」進候選,看板仍可能標未定價。插件是個人維護的調度工具,不是經同行評審的服務;上游價格與策略變動需自行關注。

結尾

Token Steward 把「選誰、失敗了換誰、要不要讀緩存、花了多少」收斂到本機 OpenAI 兼容網關,讓 DSH 側繼續用熟悉的 llm-pi-ai 調用形狀。目錄與源碼如下:

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/JiamingShi-JsPhys/dsh-token-steward
  • GitHub:https://github.com/JiamingShi-JsPhys/dsh-token-steward

社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝與配置以倉庫 README 與 Releases 爲準。

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

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

小夜