# LLMプロバイダーのフォールバックを設定する

> LLMプロバイダーのフォールバックを設定する - エージェントワークフローでの自動フェイルオーバー用にプライマリーおよびフォールバックLLMプロバイダーを設定する方法について説明します。

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-07-19T06:00:52.982633+00:00` (UTC).

## Primary page

- [LLMプロバイダーのフォールバックを設定する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-llm-fallback.html.md): Full documentation for this topic (Markdown sidecar).

## Sections on this page

- [前提条件](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-llm-fallback.html.md#prerequisites): In-page section heading.
- [コードでフォールバックを設定する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-llm-fallback.html.md#configure-fallback-in-code): In-page section heading.
- [LLMConfigフィールド](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-llm-fallback.html.md#llmconfig-fields): In-page section heading.
- [フレームワークの例](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-llm-fallback.html.md#framework-examples): In-page section heading.
- [workflow.yamlでフォールバックを設定する](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-llm-fallback.html.md#configure-fallback-in-workflow-yaml): In-page section heading.
- [プロバイダータイプの組み合わせ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-llm-fallback.html.md#mixing-provider-types): In-page section heading.

## Documentation content

プライマリーLLMプロバイダーには、自動フェイルオーバー用に1つ以上のフォールバックプロバイダーを設定できます。 プライマリーが利用できない場合やエラーを返した場合、 `litellm.Router` はリスト内の次のフォールバックプロバイダーで自動的に再試行します。 `num_retries` オプションは、次のプロバイダーに移行する前に何回再試行するかをプロバイダーごとに制御します。 これは、LLM Gateway、ホストされたデプロイ、NIMデプロイ、外部APIなど、DataRobotがサポートするLLMプロバイダーで機能します。

## 前提条件

- datarobot-genai>=0.15.20 を実行環境で利用できるようにする必要があります。 手順については、 Pythonパッケージの追加 を参照してください。
- 動作中のエージェントテンプレート（CrewAI、LangGraph、LlamaIndex、またはDRAgent/NAT）。
- 2つ以上のLLMプロバイダーまたはモデルが設定されていること（1つのプライマリー、1つ以上のフォールバック）。

## コードでフォールバックを設定する

DRUMベースのテンプレート（CrewAI、LangGraph、LlamaIndex）の場合、 `myagent.py` ファイル内の `get_llm()` を `get_router_llm()` に置き換えます。

### LLMConfigフィールド

`primary` LLMおよび各フォールバック（ `fallbacks` 内）は、 `LLMConfig` オブジェクトとして定義されます。 ご利用のプロバイダータイプに関連するフィールドのみを設定します（複数のフォールバックを設定する例については、 [プロバイダータイプの組み合わせ](https://docs.datarobot.com/ja/docs/agentic-ai/agentic-develop/agentic-llm-fallback.html.md#mixing-provider-types) を参照してください）。

| フィールド | タイプ | 説明 |
| --- | --- | --- |
| use_datarobot_llm_gateway | bool | プロバイダーとしてDataRobot LLM Gatewayを使用します。 |
| llm_default_model | str | モデル識別子（azure/gpt-4o-miniなど）。 |
| llm_deployment_id | str | ホストされたLLMデプロイのDataRobotデプロイID。 |
| nim_deployment_id | str | DataRobotのNIMデプロイID。 |
| datarobot_endpoint | str | DataRobot APIエンドポイントのURL。 |
| datarobot_api_token | str | DataRobot APIトークン。 |

### フレームワークの例

LLMのフォールバックシステムは、DRUMベースの各テンプレートで同様のパターンに従います。

**CrewAI:**
```
from datarobot_genai.core.config import LLMConfig
from datarobot_genai.crewai.llm import get_router_llm

primary = LLMConfig(
    use_datarobot_llm_gateway=True,
    llm_default_model="{LLM_DEFAULT_MODEL}",
)
fallbacks = [
    LLMConfig(
        use_datarobot_llm_gateway=True,
        llm_default_model="anthropic/claude-opus-4-20250514",
    )
]

llm = get_router_llm(primary, fallbacks, {"num_retries": 1}) 
```

**LangGraph:**
```
from datarobot_genai.core.config import LLMConfig
from datarobot_genai.langgraph.llm import get_router_llm

primary = LLMConfig(
    use_datarobot_llm_gateway=True,
    llm_default_model="{LLM_DEFAULT_MODEL}",
)
fallbacks = [
    LLMConfig(
        use_datarobot_llm_gateway=True,
        llm_default_model="anthropic/claude-opus-4-20250514",
    )
]

llm = get_router_llm(primary, fallbacks, {"num_retries": 1}) 
```

**LlamaIndex:**
```
from datarobot_genai.core.config import LLMConfig
from datarobot_genai.llamaindex.llm import get_router_llm

primary = LLMConfig(
    use_datarobot_llm_gateway=True,
    llm_default_model="{LLM_DEFAULT_MODEL}",
)
fallbacks = [
    LLMConfig(
        use_datarobot_llm_gateway=True,
        llm_default_model="anthropic/claude-opus-4-20250514",
    )
]

llm = get_router_llm(primary, fallbacks, {"num_retries": 1}) 
```


> [!TIP] 複数のフォールバック
> `fallbacks` リストには、複数のフォールバックプロバイダーを指定できます。 プライマリーが失敗した場合、ルーターはそれらを順番に試します。

## workflow.yamlでフォールバックを設定する

DRAgent/NATテンプレートの場合、 `workflow.yaml` 内の `primary` および `fallbacks` ブロックで `_type: datarobot-llm-router` を使用します。

```
# workflow.yaml
llms:
  datarobot_llm:
    _type: datarobot-llm-router
    primary:
      use_datarobot_llm_gateway: true
      llm_default_model: "{LLM_DEFAULT_MODEL}"
    fallbacks:
      - use_datarobot_llm_gateway: true
        llm_default_model: anthropic/claude-opus-4-20250514
    num_retries: 1 
```

> [!NOTE] YAMLのLLMConfigフィールド
> `primary` および `fallbacks` の各項目は、 `LLMConfig` と同じフィールド（ `use_datarobot_llm_gateway` 、 `llm_default_model` 、 `llm_deployment_id` 、 `nim_deployment_id` 、 `datarobot_endpoint` 、 `datarobot_api_token` ）を受け付けます。

## プロバイダータイプの組み合わせ

プライマリープロバイダーとフォールバックプロバイダーでは、異なるプロバイダータイプを使用できます。 たとえば、LLM Gatewayをプライマリーとして、デプロイをフォールバックとして使用することができます。

**コード（DRUMベース）:**
```
primary = LLMConfig(
    use_datarobot_llm_gateway=True,
    llm_default_model="azure/gpt-4o-mini",
)
fallbacks = [
    LLMConfig(
        llm_deployment_id="YOUR_DEPLOYMENT_ID",
    ),
    LLMConfig(
        use_datarobot_llm_gateway=True,
        llm_default_model="anthropic/claude-opus-4-20250514",
    ),
]

llm = get_router_llm(primary, fallbacks, {"num_retries": 1}) 
```

**workflow.yaml（DRAgent/NAT）:**
```
llms:
  datarobot_llm:
    _type: datarobot-llm-router
    primary:
      use_datarobot_llm_gateway: true
      llm_default_model: azure/gpt-4o-mini
    fallbacks:
      - llm_deployment_id: YOUR_DEPLOYMENT_ID
      - use_datarobot_llm_gateway: true
        llm_default_model: anthropic/claude-opus-4-20250514
    num_retries: 1 
```


> [!WARNING] 再試行とレイテンシー
> 再試行するたびに、レスポンスのレイテンシーが長くなります。 信頼性とレスポンス時間のバランスを取るため、 `num_retries` は控えめな値（ `1` など）に設定してください。
