---
template: sheet
theme: shadcn
title: Fallback 链能配几条
subtitle: 代码层没有上限,实用层建议两到三条
source: hermes_cli/fallback_config.py
cols: 3
---
Lead: 没有数量上限。`fallback_providers` 是一个列表,主模型失败时按索引逐条往下试,代码里找不到任何条数截断。

## A 结论

```kv
配置上限: 无,列表可以任意长
序号上限: 无,索引遍历到链尾
去重规则: provider + model + base_url 三元相同即跳过
自身排除: 主模型不能当自己的 fallback
生效时机: 逐轮读取配置,不需重启
```

```callout info 一句话
你能一直加到没有可用的 provider 或 key 为止,但加得多不等于更稳。
```

## B 加入时会被拦下的三种情况

| 情况 | 表现 |
|---|---|
| 与主模型同一个部署 | 提示 provider 不能给自己兜底,不写入 |
| 链里已有同一 provider + model + base_url | 提示 already in the fallback chain,跳过 |
| 条目缺 provider 或 model | 加载时静默丢弃,不占位也不报错 |

最后一种最容易踩:手写 YAML 少个字段,链看起来有两条,实际只剩一条。

## C 实际该配几条

```callout warn 别贪多
每条失败都要等 api_max_retries(默认 3)耗尽才轮到下一条。链越长,一次全线故障的等待越久。
```

| 条数 | 评价 |
|---|---|
| 两到三条 | 推荐,只要覆盖上游不同的 provider |
| 四条或更多 | 收益递减,仅多订阅场景值得 |
| 同 provider 多条 | 无效,账号级与端点级故障会连坐 |

判断标准不是条数,而是每条的上游是否真的不同。同一家不同模型,同一个故障域。

```kv
当前链: 1 条 · mimo-v2.6-flash (via xiaomi)
主模型: deepseek-v4.1-flash (via custom:liangrekui-ds)
```
