# 智能路由 & 自动回退

9Router 通过 3 层回退系统,自动将你的请求路由到最佳可用提供商。绝不再因配额限制或速率限制而中断编码。

---

## 工作原理

9Router 使用智能路由,最大化已有订阅价值、最小化成本,并保障 24/7 可用:

```
请求 → 9Router → 检查第 1 层 (订阅)
                     ↓ 配额耗尽
                     检查第 2 层 (低价)
                     ↓ 预算上限
                     检查第 3 层 (免费)
                     ↓
                     响应
```

### 3 层回退系统

**第 1 层:订阅(主力)**
- Claude Code(Pro/Max)
- OpenAI Codex(Plus/Pro)
- Gemini CLI(每月免费 180K)
- GitHub Copilot
- Antigravity(Google)

**目标**:充分挖掘你已付费订阅的价值。

**第 2 层:低价(备用)**
- GLM-4.7(输入每 1M $0.60)
- MiniMax M2.1(输入每 1M $0.20)
- Kimi K2($9/月固定)

**目标**:订阅配额用完后的超低价备用(比 ChatGPT API 便宜 ~90%)。

**第 3 层:免费(应急)**
- iFlow(8 个模型)
- Qwen(3 个模型)
- Kiro(Claude 免费)

**目标**:零成本回退,实现无限编码。

---

## 自动切换

9Router 实时监控配额,自动切换提供商:

### 场景 1:订阅配额耗尽

```
用户请求 → cc/claude-opus-4-5
           ↓ 配额耗尽(达到 5 小时限制)
           自动切换 → glm/glm-4.7
           ↓ 每日配额耗尽
           自动切换 → minimax/MiniMax-M2.1
           ↓ 5 小时配额耗尽
           自动切换 → if/kimi-k2-thinking (免费)
           ↓
           响应已送达 ✅
```

**结果**:零停机,无缝体验。

### 场景 2:速率限制

```
用户请求 → cx/gpt-5.2-codex
           ↓ 速率受限(请求过多)
           自动切换 → glm/glm-4.7
           ↓
           响应已送达 ✅
```

### 场景 3:提供商不可用

```
用户请求 → cc/claude-opus-4-5
           ↓ 提供商错误(503)
           自动切换 → 下一个可用模型
           ↓
           响应已送达 ✅
```

---

## 模型选择逻辑

9Router 基于以下因素选择最佳模型:

1. **配额可用性** - 检查提供商是否仍有剩余配额
2. **成本层级** - 优先订阅 → 低价 → 免费
3. **重置时间** - 考虑配额何时重置
4. **提供商健康度** - 跳过有错误的提供商

### 优先级示例

对 `cc/claude-opus-4-5` 的请求:

```
1. 检查 Claude Code 配额
   ✅ 可用 → 使用 cc/claude-opus-4-5
   ❌ 耗尽 → 继续步骤 2

2. 检查回退层(若已配置)
   ✅ GLM 配额可用 → 使用 glm/glm-4.7
   ❌ 耗尽 → 继续步骤 3

3. 检查免费层
   ✅ iFlow 可用 → 使用 if/kimi-k2-thinking
   ❌ 全部耗尽 → 返回配额错误
```

---

## 配置选项

### 仪表盘设置

**1. 启用/禁用自动回退**

```
仪表盘 → 设置 → 智能路由
→ 切换 "Auto Fallback" ON/OFF
```

- **ON**(默认):自动层级切换
- **OFF**:严格模式,主模型不可用时返回错误

**2. 设置预算上限**

```
仪表盘 → 设置 → 预算控制
→ 每日上限: $5
→ 每月上限: $50
```

预算耗尽时,9Router 自动切换到免费层。

**3. 配置回退顺序**

```
仪表盘 → 设置 → 回退优先级
→ 拖动以重新排序每层内的提供商
```

自定义顺序示例:
```
第 1 层: Gemini CLI → Claude Code → Codex
第 2 层: MiniMax → GLM → Kimi
第 3 层: iFlow → Kiro → Qwen
```

**4. 配额重置通知**

```
仪表盘 → 设置 → 通知
→ 配额重置时邮件提醒
→ 配额使用 80% 时告警
```

---

## 示例

### 示例 1:基础自动回退

**设置:**
```
Model: cc/claude-opus-4-5-20251101
Fallback: 自动(默认 3 层)
```

**行为:**
```
早上(全新配额):
  请求 → cc/claude-opus-4-5 ✅

下午(配额耗尽):
  请求 → glm/glm-4.7 ✅ (自动切换)

晚上(GLM 配额用完):
  请求 → minimax/MiniMax-M2.1 ✅ (自动切换)

深夜(付费配额全部耗尽):
  请求 → if/kimi-k2-thinking ✅ (免费层)
```

**成本**:额外约 $5-10/月(大部分由订阅覆盖)。

### 示例 2:预算优先路由

**设置:**
```
仪表盘 → 设置:
  每日预算: $2
  每月预算: $20
  Fallback: 启用
```

**行为:**
```
1-15 日(预算内):
  请求 → glm/glm-4.7 (低价层)
  成本: $1.50/天

第 16 日(达到预算):
  请求 → if/kimi-k2-thinking (免费层)
  成本: $0

下月(预算重置):
  请求 → 重新使用 glm/glm-4.7
```

**结果**:绝不超过 $20/月,始终可用。

### 示例 3:仅订阅模式

**设置:**
```
仪表盘 → 设置:
  Auto Fallback: OFF
  Strict mode: ON
```

**行为:**
```
请求 → cc/claude-opus-4-5
  ✅ 配额可用 → 成功
  ❌ 配额耗尽 → 返回错误(无回退)
```

**适用场景**:只想用付费订阅,绝不产生额外成本。

### 示例 4:仅免费模式

**设置:**
```
Model: if/kimi-k2-thinking
Fallback: qw/qwen3-coder-plus → kr/claude-sonnet-4.5
```

**行为:**
```
所有请求 → 仅免费层
成本: 永远 $0
```

**适用场景**:个人项目、学习、试验。

---

## 最佳实践

### 1. 最大化订阅价值

```
策略:
- 将订阅模型设为第 1 层
- 在仪表盘监控配额使用
- 仅在订阅耗尽时使用低价层
```

**示例组合:**
```
cc/claude-opus-4-5 → glm/glm-4.7 → if/kimi-k2-thinking
```

### 2. 成本优化

```
策略:
- 先用 Gemini CLI 免费层(每月 180K)
- 回退到 GLM/MiniMax(超低价)
- 应急: iFlow(免费)
```

**示例组合:**
```
gc/gemini-3-flash-preview → glm/glm-4.7 → if/kimi-k2-thinking
```

### 3. 质量优先

```
策略:
- 使用最佳模型(Claude Opus、GPT-5.2)
- 回退到优秀的低价模型(GLM-4.7)
- 最后手段: 免费层
```

**示例组合:**
```
cc/claude-opus-4-5 → cx/gpt-5.2-codex → glm/glm-4.7
```

### 4. 24/7 可用性

```
策略:
- 回退链中总是包含免费层
- 监控配额重置时间
- 在多个提供商间分散使用
```

**示例组合:**
```
cc/claude-opus-4-5 → glm/glm-4.7 → minimax/MiniMax-M2.1 → if/kimi-k2-thinking
```

**结果**:永不耗尽配额,随时编码。

---

## 配额重置策略

围绕配额重置时间规划使用:

| 提供商 | 配额重置 | 策略 |
|----------|-------------|----------|
| **Claude Code** | 5 小时 + 每周 | 早上使用,配额最新鲜 |
| **Codex** | 5 小时 + 每周 | Claude 配额用完后使用 |
| **Gemini CLI** | 每日(1K)+ 每月(180K) | 全天均匀使用 |
| **GLM-4.7** | 每日 10:00 AM | 晚上使用,次日上午重置 |
| **MiniMax M2.1** | 5 小时滚动 | 任意时间用,跟踪滚动窗口 |
| **iFlow/Qwen/Kiro** | 无限制 | 应急备用 |

**日常安排示例:**
```
08:00 - 13:00: Claude Code(全新 5h 配额)
13:00 - 18:00: Gemini CLI(每日 1K 配额)
18:00 - 22:00: GLM-4.7(便宜,10AM 重置)
22:00 - 08:00: MiniMax 或 iFlow(5h 滚动 或 免费)
```

---

## 监控与告警

### 仪表盘配额跟踪

```
仪表盘 → 配额概览:
  Claude Code: 剩余 2.5h / 5h (50%)
  Gemini CLI: 今日 450 / 1000 次请求
  GLM-4.7: 5M / 10M tokens (8h 后重置)
  MiniMax: 3M / 5M tokens (5h 滚动)
```

### 实时通知

```
仪表盘 → 通知:
  ⚠️ Claude Code 配额使用 80%(剩 1h)
  ✅ GLM-4.7 配额已重置(10M tokens 可用)
  💰 每日预算使用 50%($2.50 / $5)
```

### 使用分析

```
仪表盘 → 分析:
  今日: 50M tokens
    - 30M 通过 Claude Code(订阅)
    - 15M 通过 GLM-4.7($9)
    - 5M 通过 iFlow(免费)
  
  成本: $9(对比 ChatGPT API $1000)
  节省: 99%
```

---

## 故障排除

**问题:"All providers quota exhausted"**

**方案:**
1. 查看仪表盘配额跟踪
2. 等待配额重置(查看倒计时)
3. 在回退链中加入免费层
4. 或提高预算上限

**问题:"Too many fallback switches"**

**方案:**
1. 检查主提供商是否宕机
2. 提高配额上限(升级订阅)
3. 使用更便宜的主模型(用 GLM 代替 Claude)

**问题:"Unexpected costs"**

**方案:**
1. 仪表盘 → 分析 → 查看使用情况
2. 设置每日/每月预算上限
3. 非关键任务切换到免费层
4. 使用带免费回退的组合

---

## 相关

- [组合](./combos.md) - 创建自定义回退链
- [配额跟踪](./quota-tracking.md) - 监控使用与成本
