btspoony/dsh-llm-fallbacks ↗★ 1
dsh-llm-fallbacks
Automatic provider/model fallback chains for DeepSeek Harness agents when LLM requests keep failing (retry exhausted, auth, quota, rate limit)
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:btspoony/dsh-llm-fallbacks说明文档
阅读完整 README ↗dsh-llm-fallbacks
dsh(DeepSeek Harness)的自动模型降级插件:当 root agent 或 subagent 的模型请求持续失败(重试耗尽、权限、配额超限、限流 429)时,按角色/模型 fallback 链自动切换 provider/model,当前 step/turn 在目标模型上继续完成——任务不因模型问题中断。
一句话安装(pnpm ≥ 10 需一次构建放行,见 安装):
dsh plugin --profile web add github:btspoony/dsh-llm-fallbacks # 钉 commit:加 #
能力一览
- root / subagent 自动降级:任意 agent 在模型故障下按链切换到下一个可用 provider/model,无需手动换模型。
- 两块制配置:块 1
rootChain——root 主代理唯一降级链(空 = root 不降级);块 2 声明式角色——roles.list角色实体(id/label/description/chain/fallback)供roles.rules按 id 引用(或内置inherit);未命中规则 →inherit→rootChain。 - 条目语法:链条目为
provider/model(精确切换)或provider/*(保留失败模型 id 仅换 provider)——旧链键命名空间(provider/model 键、角色名键)已删除。 - 冷却与回主:被切离/失败的模型在冷却期内不再入选;
revertPolicy: cooldown-expiry冷却到期后自动回主模型,never会话内不回。 - 行为可见:每次切换追加持久化会话事件
fallbacks/switch(from/to/role/reason),配合 info 级日志(候选尝试顺序与跳过原因)与设置 → 插件配置 → Fallbacks 卡片上的只读状态块,无静默换模型。 - 安全阀:每 step 的
maxSwitchesPerStep超限后停止切换、保持原错误语义,防止链循环放大延迟;mode: 'always'的 provider 另有重试上限(alwaysModeRetryCap)。 - 无配置回归(no-op):
enabled默认关闭(false),无rootChain/角色链 / 未命中触发码 / 角色解析失败时插件完全 no-op——行为与未安装时一致,不产生任何事件。
安装
一句话 git 安装
dsh plugin --profile web add github:btspoony/dsh-llm-fallbacks # 钉 commit:加 #
git 安装拉取的是源码而非构建产物,安装时由包自行构建(prepare 自构建)。插件为纯挂载:对 dsh 源码树零修改,无任何补丁 / postinstall 步骤——dsh 升级无需重打。pnpm ≥ 10 默认不执行 git 依赖的 :第一次 会失败并打印 ,同时给出精确的包 key。在该 profile 的 中放行构建(,或运行 ),然后重跑 。请把这次放行当作它本来的样子:允许该包代码在安装期于你的机器上执行——建议钉 commit(),防止后续 push 悄悄改变实际运行的代码。完整 URL 形式等价:。