路由故障时自动切换,保障对话不中断
34/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库缺少 package.json,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/lokic7123-star/dsh-route-resilience.git按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 67 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/26) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库缺少 package.json,无法用 dsh 插件安装命令安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-route-resilience(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 02:40:06
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 取源不可用(Error: github tarball HTTP 404 @ https:
- · api.github.com
- · repos
- · lokic7123-star
- · dsh-route-resilience
- · tarball)
扫描于 2026/11/3(0 天前)
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-settings@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 路由故障自动切换
- 故障隔离
- 多路由可观测性
为 DeepSeek Harness 提供多路由高可用、故障隔离与可观测性:模型组在限流、retry-after、传输和鉴权失败时,会在已授权的服务商路由之间自动故障转移。
README
由 DeepSeek 最新模型翻译生成dsh-route-resilience
面向 DeepSeek Harness(DSH)的多路由高可用、故障隔离与可观测插件。
让一个 provider 路由宕机时,agent 照常工作。 dsh-route-resilience 把您已有的 provider 路由组织成模型组,把请求分摊到健康的路由上;一旦某个路由劣化,立即故障切换到下一个路由——对不稳定路由做指数退避隔离、对彻底失效的凭据做永久禁用——全程不触碰任何 API 密钥原文。
English docs: README.md
定位与口径
dsh-route-resilience 是可靠性层,不是配额绕过工具。
- 它不绕过任何配额、速率限制或公平使用限制。
- 它不支持通过多账号、多身份规避服务商的限制。
- 它只使用用户有权使用的凭据与路由。每个路由仍受其所属服务商条款约束;一个模型能服务多少请求由服务商决定,而非本插件决定。
- 它从不读取、写入或暴露密钥原文——只按名称引用 provider 路由。
价值在于连续性:当您合法使用的某个路由遇到 429、超时或失去授权时,模型改由您已有的另一个路由继续服务,而不是让整轮对话失败。
功能
- 模型组 —— 将服务于同一模型的多个 provider 路由组织在某一个虚拟 provider 名下,并按路由独立调优隔离参数。
展开完整文档(README 剩余 1 节)
dsh-route-resilience
面向 DeepSeek Harness(DSH)的多路由高可用、故障隔离与可观测插件。
让一个 provider 路由宕机时,agent 照常工作。 dsh-route-resilience 把您已有的 provider 路由组织成模型组,把请求分摊到健康的路由上;一旦某个路由劣化,立即故障切换到下一个路由——对不稳定路由做指数退避隔离、对彻底失效的凭据做永久禁用——全程不触碰任何 API 密钥原文。
English docs: README.md
定位与口径
dsh-route-resilience 是可靠性层,不是配额绕过工具。
- 它不绕过任何配额、速率限制或公平使用限制。
- 它不支持通过多账号、多身份规避服务商的限制。
- 它只使用用户有权使用的凭据与路由。每个路由仍受其所属服务商条款约束;一个模型能服务多少请求由服务商决定,而非本插件决定。
- 它从不读取、写入或暴露密钥原文——只按名称引用 provider 路由。
价值在于连续性:当您合法使用的某个路由遇到 429、超时或失去授权时,模型改由您已有的另一个路由继续服务,而不是让整轮对话失败。
功能
- 模型组 —— 将服务于同一模型的多个 provider 路由组织在某一个虚拟 provider 名下,并按路由独立调优隔离参数。
- 轮询分配(round-robin) —— 新请求在活动组的健康路由间均匀分配;请求在其 step 生命周期内固定到所选路由,保证中途重试落在同一 provider 上。
- 可重试故障切换 —— 遇到匹配的错误码(RATE_LIMIT、超时、传输、空响应……)时,step 前进到下一个路由,同时保持下游重试策略原有优先级。
- 429 / Retry-After 处理 —— 被限流的路由按服务商下发的 Retry-After 隔离(可用时),否则按指数退避(base · 2ⁿ⁻¹,有上限)隔离,到期后惰性恢复。
- 鉴权 / 配额隔离 —— 401/402/403 以及 auth/quota 类错误码会永久禁用对应路由,坏凭据不会污染整个组。
- 兜底 —— 链尾路由是自动安全网;全部路由不可用时强制唤醒最早到期的一条隔离,让真实错误清晰浮现而不是死锁。
- 可观测性 —— 只读状态端点(/api/dsh-route-resilience/status)以及持久化的 llm/failover、llm/key-status 会话事件。
- Web 设置面板 —— Models 设置页内置 UI,可视化管理组、密钥与隔离参数,实时显示健康徽标(免重启生效)。
运行要求
- DeepSeek Harness >= 0.1.0-rc.5(已发布到 npm)、Cordis >= 4.0.1
- 作为纯插件运行——无需修改任何 DSH 核心源码。它只挂接标准扩展点:Agent Loop 事件(agent/request、agent/request-error、agent/turn-stopping)、设置服务、host web server、会话事件与客户端 UI slots。
安装
dsh-route-resilience 是标准的 DSH 插件,接线方式与克隆或安装的任何插件一致:
源码安装(当前推荐)
1. 克隆到 DSH plugins 目录
git clone https://github.com/lokic7123-star/dsh-route-resilience.git \
/path/to/deepseek-harness-desktop/plugins/dsh-route-resilience
2. 在使用的 profile(如 ~/.dsh/profiles/web/package.json)中,把 "dsh-route-resilience" 加入 dsh.profile.bundles,并添加 link: 依赖: "dsh-route-resilience": "link:/path/to/deepseek-harness-desktop/plugins/dsh-route-resilience"
仓库已内置编译好的插件(lib/),普通 clone 即可直接接线使用——安装不需要 Node/npm;只有在你想自行修改插件时才需要构建。
或在 DSH 仓库根目录用脚手架接线:
.\new-plugin.ps1 -Target dsh -Name route-resilience # 自动配置 bundles、link、Junction 与 runtime 闭包
npm 安装(发布后可用)
npm install dsh-route-resilience
配置
设置命名空间
插件从 dsh-route-resilience 设置命名空间读取配置(保存即热更新,无需重启):
{
"groups": [
{
"id": "deepseek", // 虚拟 provider 名,即 activeGroup
"targets": [
{ "provider": "opencode-go-1", "model": "deepseek-chat" },
{ "provider": "opencode-go-2", "model": "deepseek-chat" }
],
"retryableCodes": ["RATE_LIMIT", "TIMEOUT", "TRANSPORT"],
"quarantineBaseMs": 60000, // 可选,默认 60000 "quarantineCapMs": 300000 // 可选,默认 300000 } ], "activeGroup": "deepseek" // 可选;未设置则直通 }
- 每个 target.provider 必须指向您的 provider 适配器(如 llm-pi-ai)中已配置的具体路由,且各路由持有各自的凭据引用。本插件只替换 provider/model,从不管理密钥。
- retryableCodes 默认值:EMPTY_RESPONSE, RATE_LIMIT, SERVER, TIMEOUT, TRANSPORT。
- activeGroup 未设置时插件以空闲状态安装,请求路由原样直通。
Web UI
Models 设置页底部会注入一个 路由韧性 面板:实时显示健康状况(活跃 / 隔离中 / 已禁用,带恢复倒计时与链尾兜底标记),并支持添加、删除密钥、编辑组、错误码与隔离参数。添加密钥会新建一个绑定全新凭据引用的 provider 路由,密钥值在保存时写入凭据服务。
工作原理
路由
1. agent/request 时,provider 等于 activeGroup 的配置被解析到组内下一个健康路由(基于每组的轮询指针做 round-robin);其余请求原样直通。
2. 所选路由在 step 生命周期内固定(WeakMap>),保证在途重试落在同一 provider。
3. agent/request-error 时,先让下游重试策略决定;若其放弃,匹配的错误码把 step 切换到下一个路由(记录 llm/failover 事件)并返回重试。
健康状态机
| 路由状态 | 进入条件 | 恢复方式 |
| active | 健康 / 恢复 | — |
| quarantined | RATE_LIMIT / HTTP 429 | 退避(或 Retry-After)到期后惰性恢复 |
| disabled | AUTH / INVALID_CREDENTIAL / QUOTA / HTTP 401·402·403 | 永不(仅重新配置或组清理可恢复) |
pickStart 会跳过不健康的路由;若全组都不健康,强制唤醒最早到期的一条隔离路由以维持服务;若全部被禁用,则使用第一个目标,让其真实错误自然浮现,而不是无限循环。
安全边界
- host 端从不读写密钥原文;健康与状态只暴露路由名与状态。
- 状态端点为只读,与服务端 UI 同源,远程浏览器由 host 的信任围栏隔离在 /api/ 之外。
- 密钥值的跨边界点全插件仅一处:面板的"新密钥"输入框,写入凭据服务。
可观测性
- GET /api/dsh-route-resilience/status → { ok, data: { activeGroup, groups, health[], rotation, settingsRegistered } }
- 会话事件:llm/failover(step 切换路由)与 llm/key-status(路由隔离 / 禁用 / 恢复),通过标准会话 API 追加。
开发
需要 Node >= 20 与任一包管理器(CI 使用 npm)。
npm install # 安装构建工具 + 编译所需的 @deepseek-ai/* 包
npm run build # host 端 tsc 编译(lib/index.js)+ client 端 tsdown 打包(lib/client.js)
npm test # 路由器单元测试(node --import tsx --test tests/router.test.ts)
- lib/ 会提交进仓库:编译产物随 clone 一起发布,普通安装不需要 Node;改 src/ 后请运行 npm run build 并把重新生成的 lib/ 连同改动一起提交。
- 每次 push / PR,CI 都会运行构建、测试与 npm audit(见 .github/workflows/)。
- 项目自包含:编译与测试针对 npm 上公开发布的 @deepseek-ai/* 包,开发无需整个 DSH monorepo。
参与贡献
欢迎贡献,详见 CONTRIBUTING.md 与行为准则。
安全
发现漏洞?请私密上报,见 SECURITY.md。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lokic7123-star/dsh-route-resilience
路由故障时自动切换,保障对话不中断
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个插件,给…
★ 850已汉化DSH
68.9
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 385已汉化DSH
67.9
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1
这是你的仓库?认领条目