max_tokens とは?設定しないとどうなりますか?
max_tokens、max_completion_tokens、max_output_tokens と、モデル呼び出しの出力 Token 上限を設定する方法を説明します。
短い答え
max_tokens は、モデルが 1 回のレスポンスで生成できる Token 数を制限します。API とモデルによって、項目名、必須設定、デフォルト動作が異なります。
安定した出力のために、長い回答、コード生成、ドキュメントタスクでは明示的な出力上限を設定します。Claude / Anthropic 互換 API 呼び出しでは、通常 max_tokens を明示的に送信する必要があります。
基本概念
| 概念 | 意味 |
|---|---|
| Input Token | メッセージ、コンテキスト、ファイル内容、ツール結果、その他の入力 |
| Output Token | モデルが生成する表示可能なレスポンス |
| Reasoning Token | 一部の推論モデルが内部で使用する非表示の推論 Token |
| コンテキストウィンドウ | 入力、出力、一部の内部 Token が共有する上限 |
| 出力上限 | 1 回のレスポンスで生成する表示可能な出力の最大値 |
出力上限が小さすぎると、レスポンスが途中で切れる場合があります。非常に大きくしても、モデルが必ずその数の Token を生成するわけではありませんが、長い出力のタスクではコストが増える場合があります。
異なるパラメーター名
| パラメーター | 一般的な用途 |
|---|---|
max_tokens | Claude / Anthropic Messages API と、一部の Chat Completions 設定 |
max_completion_tokens | Chat Completions 経由の一部 OpenAI 推論モデル |
max_output_tokens | OpenAI Responses API で一般的な出力上限項目 |
Codex CLI または Responses API ベースの別のツールを使用する場合は、そのツールまたはプロバイダーが現在サポートする項目に従ってください。すべてのモデルに同じパラメーター名を固定しないでください。
設定しないとどうなるか
動作はプロバイダーと API によって異なります。
| シナリオ | 起こりうる結果 |
|---|---|
| Claude / Anthropic 互換 API | 明示的な max_tokens 値が必要になる場合がある |
| OpenAI 互換 Chat Completions | モデルのデフォルト動作を使用する場合がある |
| OpenAI Responses API | max_output_tokens またはツールのデフォルトを使用する場合がある |
| その他のモデル | 独自のデフォルト出力上限がある場合がある |
同じコードでも、モデルを切り替えると出力の長さが変わる場合があります。本番での想定外を減らすため、明示的な出力上限を設定してください。
推奨範囲
| タスク | 推奨範囲 |
|---|---|
| 一般的な Q&A | 1024 - 4096 |
| コード解説 / 小さな編集 | 4096 - 8192 |
| 長文作成 / 複雑なコーディングタスク | モデル上限に応じて 8192 以上 |
| バッチタスク | 想定外に長いレスポンスを避けるため、小さい上限を使用する |
実際の最大値は、モデル広場と上流のモデルドキュメントで確認してください。モデル出力上限はバージョンによって変わる場合があります。
出力が途中で切れたときの対処
レスポンスに finish_reason: "length" が含まれる場合、通常はモデルが出力上限に達しています。
次の順番でトラブルシューティングします。
- 現在の API がサポートする出力上限項目を増やします。
- 正しいパラメーター名を使用しているか確認します。
- 不要な出力を減らすため、プロンプトをより具体的にします。
- より大きい出力ウィンドウのモデルを使用します。
- タスクを複数の手順に分割します。
よくある間違い
- より大きい
max_tokens値を指定すれば、モデルが常により多く書くと考えること。 finish_reasonを確認せず、出力が途中で切れた後に再試行すること。- 推論モデルで古い項目名を使用すること。
- コンテキストとコストの見積もりで非表示の Reasoning Token を無視すること。
- モデル自体の最大出力上限を無視すること。
BetterToken について
BetterToken は API Key とモデルリクエストのレベルで使用量を記録します。ダッシュボードを使って、モデルやタスク間の Token 使用量を確認できます。
出力上限項目は、引き続き使用する API 形式とモデルによって決まります。設定時には、モデル、Base URL、API 形式、パラメーター名を合わせて確認してください。

