---
title: モデルの自動選択
description: モデルに "auto" を指定すると、Gateway がタスクの難しさを判断し、ワークスペースで許可されたモデルを選びます。指定したモデルが差し替えられることはなく、どの応答にも応答したモデルが示されます。
url: https://agentlab.cresclab.com/docs/ja/gateway/auto
language: ja
updated: 2026-10-30
---

# モデルの自動選択

モデルに "auto" を指定すると、Gateway がタスクの難しさを判断し、ワークスペースで許可されたモデルを選びます。指定したモデルが差し替えられることはなく、どの応答にも応答したモデルが示されます。

## モデルを指定するか auto を使う

`model` フィールドには、`GET /v1/models` のモデル名か `auto` を指定します。

| `model`                              | 動作                                                                           |
| ------------------------------------ | ------------------------------------------------------------------------------ |
| `auto`                               | Gateway がタスクの難しさに応じて、ワークスペースで許可されたモデルを選びます。 |
| モデル名                             | そのモデルだけが応答します。他のモデルに差し替えられることはありません。       |
| `agentlab/…`                         | 400 `invalid_model` で拒否されます。メッセージに有効な値が一覧されます。       |
| Gateway が知らない名前               | 404 `model_not_found` で拒否されます。メッセージに有効な値が一覧されます。     |
| ワークスペースで除外されているモデル | 403 `model_not_enabled` で拒否されます。                                       |

`/v1/chat/completions` と `/v1/responses` は、どの会社のモデルかを問わず、許可されたすべてのモデルから選びます。`/v1/messages` は Claude のモデルだけを使い、OpenAI のモデルにしか処理できない Responses リクエスト（`code_interpreter` ツールを含むものなど）は OpenAI のモデルだけを使います。

Claude Code と Codex は送信前にモデル名を確認するため、`auto` を送れません。リクエストには実在するモデル名を入れたまま、ヘッダー `X-AgentLab-Routing: auto` を付けると、Gateway がモデルを選びます。ヘッダーの値は正確に `auto` で、1 回だけ送る必要があります。それ以外は 400 で拒否されます。

## auto の選び方

1. **タスクを判断** 構造化出力を返せる、許可されている最も安価なモデルが、リクエストの短い抜粋（システムプロンプトの冒頭、最初と最新のユーザーメッセージ、ツール名。最大 8 KiB で、会話全体は読みません）を読み、タスクの種類と、複数のステップが必要かを判断します。
2. **モデルを選択** 複数ステップの作業には、より強力なモデルを使います。定型的な分析、コーディング、計画には標準のモデルを使います。定型的な抽出、書き換え、会話には、許可されている最も安価なモデルを使います。
3. **1 回のやり取りをそろえる** 同じツールループの後続ステップは最初のステップのモデルを使い続けるので、暗号化された推論、thinking の署名、プロンプトキャッシュが有効なまま保たれます。

判断が失敗した場合、タイムアウトした場合（6 秒後）、または確信が持てない場合は、標準のモデルが応答します。判断できないときに auto がより安価なモデルを選ぶことはありません。

ワークスペースの月間支出上限の残りが 20% を切ると、複数ステップと判断された作業にも、より強力なモデルではなく標準のモデルを使います。

判断はそれ自体が 1 回のモデル呼び出しです。同じキーで記録・課金され、対象のリクエストにひも付けられます。

## 一部のプロバイダーだけを使う

リクエストを特定の会社のモデルだけに限定するには、Chat Completions または Responses に OpenRouter と同じ形式で `provider.only` を指定します。

```json
{
  "model": "auto",
  "provider": { "only": ["anthropic"] },
  "messages": [{ "role": "user", "content": "Hello" }]
}
```

- プロバイダーとは、コンソールのモデル一覧に表示されるとおり、モデルを作っている会社です：`anthropic`、`openai`、`google`、`meta`、`xai`、`deepseek`、`moonshot`、`mistral`、`zhipu`、`qwen`、`minimax`、`amazon`、`microsoft`、`cohere`、`black-forest-labs`。`anthropic` には Amazon Bedrock と Google Vertex AI 上の Claude も含まれます。
- auto、その判断、再試行、`models` の `auto` 項目は、これらのプロバイダーのモデルだけを使います。ワークスペースのモデル設定も引き続き適用されます。
- 一覧にないモデルの指定、不明なプロバイダー、`provider` のその他のオプションは、400 で拒否され、`param` は `provider.only`（またはそのオプション名）です。一覧のプロバイダーのどのモデルもリクエストを処理できない場合も 400 で拒否され、メッセージに処理できるプロバイダーが示されます。
- `provider` は Gateway だけが読み取り、モデルには送られません。

## auto が選んだモデルを確認する

応答したリクエストには、次のヘッダーが付きます。

| ヘッダー                | 値                                                                                                                                                                                                    |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `X-Agentlab-Model`      | 応答したモデル。                                                                                                                                                                                      |
| `X-Agentlab-Decision`   | 理由：モデルを指定した場合は `requested_model`、auto の場合は `auto_assessed`、`auto_reused`、`auto_uncertain`、`auto_assessment_failed`、`auto_assessment_timeout`、`auto_budget_guard` のいずれか。 |
| `X-Agentlab-Assessment` | auto の場合の判断結果（`analysis/multi_step` など）。判断がなかった場合は `unavailable`。                                                                                                             |
| `X-Request-Id`          | リクエストの ID。使用量のページやエクスポートに表示されるものと同じです。                                                                                                                             |

Chat Completions では、応答したモデルが `model` に、理由が `agentlab_decision.reason`（`auto` または `requested_model`）にも返されます。
