# スマートルーティングと自動フォールバック

9Routerは3階層フォールバックシステムを使用して、最適な利用可能なプロバイダーへリクエストを自動的にルーティングします。クォータ制限やレート制限でコーディングが止まることはありません。

---

## 動作の仕組み

9Routerは、既存のサブスクリプションを最大化し、コストを最小化し、24時間可用性を確保するため、インテリジェントなルーティングを使用します:

```
Request → 9Router → Tier 1を確認 (サブスクリプション)
                     ↓ クォータ消費
                     Tier 2を確認 (低価格)
                     ↓ 予算上限
                     Tier 3を確認 (無料)
                     ↓
                     Response
```

### 3階層フォールバックシステム

**Tier 1: サブスクリプション (プライマリ)**
- Claude Code (Pro/Max)
- OpenAI Codex (Plus/Pro)
- Gemini CLI (月18万無料)
- GitHub Copilot
- Antigravity (Google)

**目標**: すでに支払っているサブスクリプションから価値を最大化。

**Tier 2: 低価格 (バックアップ)**
- GLM-4.7 (入力100万あたり$0.60)
- MiniMax M2.1 (入力100万あたり$0.20)
- Kimi K2 (月$9固定)

**目標**: サブスクリプションクォータ切れ時の超低価格バックアップ (ChatGPT APIより約90%安い)。

**Tier 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. 自動フォールバックを有効/無効化**

```
Dashboard → Settings → Smart Routing
→ 「Auto Fallback」をオン/オフに切替
```

- **オン** (デフォルト): 自動階層切替
- **オフ**: 厳格モード、プライマリモデル利用不可時にエラーを返す

**2. 予算上限を設定**

```
Dashboard → Settings → Budget Control
→ 日次上限: $5
→ 月次上限: $50
```

予算到達時、9Routerは自動的に無料階層へ切替。

**3. フォールバック順序を設定**

```
Dashboard → Settings → Fallback Priority
→ 各階層内でプロバイダーをドラッグして並べ替え
```

カスタム順序の例:
```
Tier 1: Gemini CLI → Claude Code → Codex
Tier 2: MiniMax → GLM → Kimi
Tier 3: iFlow → Kiro → Qwen
```

**4. クォータリセット通知**

```
Dashboard → Settings → Notifications
→ クォータリセット時にメール
→ 80%クォータ使用時にアラート
```

---

## 例

### 例1: 基本的な自動フォールバック

**セットアップ:**
```
Model: cc/claude-opus-4-5-20251101
Fallback: 自動 (デフォルト3階層)
```

**動作:**
```
朝 (新鮮なクォータ):
  Request → cc/claude-opus-4-5 ✅

午後 (クォータ消費):
  Request → glm/glm-4.7 ✅ (自動切替)

夕方 (GLMクォータ切れ):
  Request → minimax/MiniMax-M2.1 ✅ (自動切替)

深夜 (すべての有料クォータ切れ):
  Request → if/kimi-k2-thinking ✅ (無料階層)
```

**コスト**: 月$5〜10の追加料金 (主にサブスクリプションでカバー)。

### 例2: 予算意識のルーティング

**セットアップ:**
```
Dashboard → Settings:
  Daily budget: $2
  Monthly budget: $20
  Fallback: 有効
```

**動作:**
```
1〜15日 (予算内):
  Requests → glm/glm-4.7 (低価格階層)
  コスト: $1.50/日

16日 (予算到達):
  Requests → if/kimi-k2-thinking (無料階層)
  コスト: $0

翌月 (予算リセット):
  Requests → 再びglm/glm-4.7
```

**結果**: 月$20を超えない、常に利用可能。

### 例3: サブスクリプションのみモード

**セットアップ:**
```
Dashboard → Settings:
  Auto Fallback: オフ
  Strict mode: オン
```

**動作:**
```
Request → cc/claude-opus-4-5
  ✅ クォータ利用可 → 成功
  ❌ クォータ消費 → エラーを返す (フォールバックなし)
```

**ユースケース**: 有料サブスクリプションのみを使用したい場合、追加コストなし。

### 例4: 無料のみモード

**セットアップ:**
```
Model: if/kimi-k2-thinking
Fallback: qw/qwen3-coder-plus → kr/claude-sonnet-4.5
```

**動作:**
```
すべてのリクエスト → 無料階層のみ
コスト: 永久に$0
```

**ユースケース**: 個人プロジェクト、学習、実験。

---

## ベストプラクティス

### 1. サブスクリプション価値を最大化

```
戦略:
- サブスクリプションモデルをTier 1に設定
- ダッシュボードでクォータ使用量をモニター
- サブスクリプション消費時のみ低価格階層を使用
```

**コンボ例:**
```
cc/claude-opus-4-5 → glm/glm-4.7 → if/kimi-k2-thinking
```

### 2. コストに最適化

```
戦略:
- Gemini CLI無料階層を最初に使用 (月18万)
- 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時間可用性

```
戦略:
- フォールバックに常に無料階層を含める
- クォータリセット時間をモニター
- プロバイダー間で使用量を分散
```

**コンボ例:**
```
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) + 月次 (18万) | 一日中使用 |
| **GLM-4.7** | 毎日午前10時 | 夕方使用、翌朝リセット |
| **MiniMax M2.1** | 5時間ローリング | いつでも使用、ローリングウィンドウを追跡 |
| **iFlow/Qwen/Kiro** | 制限なし | 緊急時バックアップ |

**日課の例:**
```
08:00 - 13:00: Claude Code (新鮮な5時間クォータ)
13:00 - 18:00: Gemini CLI (1K/日クォータ)
18:00 - 22:00: GLM-4.7 (低価格、午前10時リセット)
22:00 - 08:00: MiniMaxまたはiFlow (5時間ローリングまたは無料)
```

---

## モニタリングとアラート

### ダッシュボードクォータトラッカー

```
Dashboard → Quota Overview:
  Claude Code: 2.5h / 5h 残 (50%)
  Gemini CLI: 今日 450 / 1000 リクエスト
  GLM-4.7: 5M / 10M トークン (8時間後リセット)
  MiniMax: 3M / 5M トークン (5時間ローリング)
```

### リアルタイム通知

```
Dashboard → Notifications:
  ⚠️ Claude Codeクォータ80%使用 (1時間残)
  ✅ GLM-4.7クォータリセット (10Mトークン利用可)
  💰 日次予算50%使用 ($2.50 / $5)
```

### 使用統計

```
Dashboard → Analytics:
  今日: 5000万トークン
    - 3000万 Claude Code経由 (サブスクリプション)
    - 1500万 GLM-4.7経由 ($9)
    - 500万 iFlow経由 (無料)
  
  コスト: $9 (vs ChatGPT APIの$1000)
  節約: 99%
```

---

## トラブルシューティング

**問題: "All providers quota exhausted"**

**解決策:**
1. ダッシュボードクォータトラッカーを確認
2. クォータリセットを待つ (カウントダウン参照)
3. フォールバックチェーンに無料階層を追加
4. または予算上限を増やす

**問題: "Too many fallback switches"**

**解決策:**
1. プライマリプロバイダーがダウンしているか確認
2. クォータ上限を増やす (サブスクリプションをアップグレード)
3. より安いプライマリモデルを使用 (Claudeの代わりにGLM)

**問題: "Unexpected costs"**

**解決策:**
1. Dashboard → Analytics → 使用量を確認
2. 日次/月次予算上限を設定
3. クリティカルでないタスクは無料階層へ切替
4. 無料フォールバック付きのコンボを使用

---

## 関連

- [コンボ](./combos.md) - カスタムフォールバックチェーンを作成
- [クォータトラッキング](./quota-tracking.md) - 使用量とコストをモニター
