前言¶
在 DeepSeek Harness(DSH)裏,一次智能體請求通常會落到某一條 provider route 上。如果這條 route 返回 429、超時、傳輸異常,或憑證/配額狀態異常,當前輪次可能直接失敗。已有的重試策略往往圍繞同一條 route 做有限恢復;如果用戶已經有多條被授權訪問同一模型的 route,就希望請求能切換到仍健康的 route,同時把壞憑證、壞配額或壞 route 隔離掉。
dsh-route-resilience 解決的是這個多路由可用性問題:它把用戶已授權的 provider routes 組織成 model groups,在健康 route 之間分配請求,並在可重試錯誤發生時切換到下一條 route。下面介紹它的定位、功能、安裝方式、典型用法和注意事項。
定位¶
dsh-route-resilience 是一個 DSH 插件,用於 multi-route high availability, fault isolation and observability。維護者是 lokic7123-star,許可證爲 MIT。
它不是 quota workaround。它不繞過 quotas、rate limits 或 fair-use caps,也不支持多賬號、多身份繞過 provider limits。它只使用用戶已授權的 credentials 和 routes;每條 route 仍然受其 provider 的服務條款約束。插件通過名稱引用 provider routes,不讀取、寫入或暴露 key material。
核心功能¶
多路由與故障切換¶
插件提供以下已覈實能力:
- Model groups:將服務同一模型的多條 provider routes 組織成一個 group。
- Round-robin allocation:新請求在 active group 的健康 routes 間進行輪詢分配。
- Retryable failover:遇到可重試錯誤時,請求可切換到下一條 route。
- 429 / Retry-After handling:對限流場景進行
429 / Retry-After處理。 - Auth / quota isolation:對 auth / quota 異常進行隔離,避免異常 route 影響整個 group。
- Fallback:提供 fallback,避免所有 route 不可用時陷入死鎖。
觀測與管理¶
插件還提供以下入口:
- Observability:提供只讀狀態接口
GET /api/dsh-route-resilience/status。 - Web settings panel:在 Models 頁面提供 Route resilience 面板,用於管理 groups、keys 和 quarantine parameters。
安裝與啓用¶
安裝¶
文檔給出的 npm 安裝命令是:
npm install dsh-route-resilience
資料未確認 npm 發佈狀態。如果當前環境沒有可安裝的 npm 包,可以從 GitHub 倉庫獲取源碼,並按 DSH profile 的插件方式接入。倉庫地址:
https://github.com/lokic7123-star/dsh-route-resilience
在 profile 中啓用¶
啓用時,需要在 profile 的 package.json 中完成兩步:
1、將 dsh-route-resilience 加入 dsh.profile.bundles。
2、添加一個 link: 依賴,指向本地插件目錄。
可以寫成類似下面的形式:
{
"dsh": {
"profile": {
"bundles": ["dsh-route-resilience"]
}
},
"dependencies": {
"dsh-route-resilience": "link:/path/to/plugins/dsh-route-resilience"
}
}
這裏的 /path/to/plugins/dsh-route-resilience 應替換爲實際存放插件的目錄路徑。經過上面的步驟後,插件進入 DSH profile 的加載路徑。
典型用法¶
配置 settings namespace¶
插件從 dsh-route-resilience settings namespace 讀取配置。下面是一個示例結構:
{
"groups": [
{
"id": "deepseek",
"targets": [
{ "provider": "route-a", "model": "deepseek-chat" },
{ "provider": "route-b", "model": "deepseek-chat" }
],
"retryableCodes": ["RATE_LIMIT", "TIMEOUT", "TRANSPORT"],
"quarantineBaseMs": 60000,
"quarantineCapMs": 300000
}
],
"activeGroup": "deepseek"
}
其中:
groups定義一個或多個模型組。targets列出組內 provider route 和 model。retryableCodes指定可觸發 failover 的錯誤代碼。quarantineBaseMs和quarantineCapMs用於 quarantine 參數。activeGroup是可選字段;當activeGroup未設置時,插件處於 installed but idle 狀態,routing passes through unchanged。
查看狀態¶
插件提供只讀狀態接口:
GET /api/dsh-route-resilience/status
該接口用於查看當前路由健康狀態。資料說明該狀態路由是 read-only,與 served web UI 同域,並被 host trust fence 限制遠程瀏覽器訪問。
使用 Web 面板¶
在 Models 頁面底部會出現 Route resilience 面板。可以在其中管理:
- groups
- keys
- quarantine parameters
該面板用於日常查看和調整多路由策略。插件側仍只通過名稱引用 provider routes,不暴露 key material。
適用場景與注意¶
這個插件適合以下場景:
- 已有多個被授權的 provider routes,希望同一模型在多路由之間保持可用。
- 希望把
429 / Retry-After、傳輸異常、auth / quota 異常等 route 級故障隔離。 - 希望有隻讀狀態接口和 Web 面板來查看路由健康。
- 希望在不修改 DSH 核心源的前提下,以插件方式擴展路由行爲。
需要注意:
- 它不繞過 quotas、rate limits 或 fair-use caps。
- 它不支持 multi-account 或 multi-identity circumvention of provider limits。
- 它只使用用戶已授權的 credentials 和 routes;每條 route 仍受其 provider 的 terms of service 約束。
- 它不讀取、寫入或暴露 key material,只按名稱引用 provider routes。
- 要求 DSH
>= 0.1.0-rc.5,Cordis>= 4.0.1。 - 插件以當前 DSH 進程權限運行。安裝前應檢查源碼、
MIT許可證、依賴版本和實際配置。
結尾¶
dsh-route-resilience 的價值在於:當某一條 provider route 出現限流、故障或授權異常時,讓 DSH 仍能從其他已授權 route 繼續提供服務,而不是讓整個請求失敗。它把多路由高可用、故障隔離和觀測能力做成了一個 DSH 插件。
社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係;本文未確認目錄頁 URL。倉庫地址爲:
https://github.com/lokic7123-star/dsh-route-resilience