DeepSeek Harness 插件

llm-fallback

Multi-level provider fallback for same-named models in the DeepSeek Harness(英文原文)

跳到安装方式

来源信息

GitHub 仓库
CanGeng/llm-fallback
最近更新
2026年8月16日
分类
模型与服务商
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/CanGeng/llm-fallback
插件名:llm-fallback
作者:CanGeng

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.zh.md来源说明 · 只读预览
README 语言

llm-fallback

English | 中文

在 DeepSeek Harness 中为同名模型提供多级 provider 兜底(fallback)。

一个 pool 把一个模型 id 映射到一个有序的 provider 列表:第一个是主链路,后面依次是兜底。插件让每一步都优先走主链路(请求前缀稳定 → KV cache 复用),只有当前一级彻底用尽时才切换。

行为

  • agent/request 为每一步选择 pool 的层级。新的一步从主链路(第 0 级)开始,除非显式请求的 provider 本身就是 pool 成员——那就从它开始、向后兜底。主链路恢复后,下一步会立即回到它。它还会用 resolveCallConfig 探测每个候选,跳过(并记录)那些在流式之前就会失败的——缺失路由(NO_ADAPTER)、未知模型、或不支持的推理强度(UNSUPPORTED_REASONING_EFFORT)。
  • agent/request-error 记录每一级的失败,然后返回 { kind: 'retry' } 推进到下一级。当所有层级用尽时,抛出一个聚合错误,列出每一级的失败(provider: code — message)。

同 provider 的重试先发生(经由 dsh-llm-retry,它位于本插件之外),所以 RATE_LIMIT 这类暂时性错误不会触发切换、也不会打断前缀。只有终止性错误(QUOTAAUTH 等)或重试预算用尽才会兜底切换。

retryPolicy.mode: always 不兼容

always 会无限重试同一个 provider,且无法从监听器侧停止,因此与「最终必须收敛」的兜底链冲突:

  • alwaysPolicy: reject(默认)——拒绝该 provider,并点名它和模型。加载时已注册的 provider 在插件加载时即被拒绝;之后经 settings 激活的路由(休眠路由)会在 pool 请求首次用到它时被拒绝。
  • alwaysPolicy: degrade——警告并把该 provider 限制为最多 alwaysMaxRetries 次同 provider 重试,然后兜底切换。

两种模式下,always provider 都绝不能是 pool 的最后一级(那永远无法收敛)——它总会被拒绝。

配置

cordis.patch.ymlpools 列表把一个模型 id 映射到有序的 provider 链。配置在插件加载时校验:未知的 alwaysPolicy、缺非空 model 的 pool、或 providers 不是数组的 pool,都会立即抛错,而不是之后静默失败。

config:
  alwaysPolicy: reject
  alwaysMaxRetries: 2
  pools:
    - model: deepseek-v4-pro
      providers: [deepseek-official, ark-coding, ark-agent]

开发

node --test   # 或:npm test

安装

dsh plugin --profile web add link:/path/to/llm-fallback
dsh web   # 重启以加载新的 bundle 层