コンテンツにスキップ
無料で登録
モデルの呼び出し

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_tokensClaude / Anthropic Messages API と、一部の Chat Completions 設定
max_completion_tokensChat Completions 経由の一部 OpenAI 推論モデル
max_output_tokensOpenAI Responses API で一般的な出力上限項目

Codex CLI または Responses API ベースの別のツールを使用する場合は、そのツールまたはプロバイダーが現在サポートする項目に従ってください。すべてのモデルに同じパラメーター名を固定しないでください。

設定しないとどうなるか

動作はプロバイダーと API によって異なります。

シナリオ起こりうる結果
Claude / Anthropic 互換 API明示的な max_tokens 値が必要になる場合がある
OpenAI 互換 Chat Completionsモデルのデフォルト動作を使用する場合がある
OpenAI Responses APImax_output_tokens またはツールのデフォルトを使用する場合がある
その他のモデル独自のデフォルト出力上限がある場合がある

同じコードでも、モデルを切り替えると出力の長さが変わる場合があります。本番での想定外を減らすため、明示的な出力上限を設定してください。

推奨範囲

タスク推奨範囲
一般的な Q&A1024 - 4096
コード解説 / 小さな編集4096 - 8192
長文作成 / 複雑なコーディングタスクモデル上限に応じて 8192 以上
バッチタスク想定外に長いレスポンスを避けるため、小さい上限を使用する

実際の最大値は、モデル広場と上流のモデルドキュメントで確認してください。モデル出力上限はバージョンによって変わる場合があります。

出力が途中で切れたときの対処

レスポンスに finish_reason: "length" が含まれる場合、通常はモデルが出力上限に達しています。

次の順番でトラブルシューティングします。

  1. 現在の API がサポートする出力上限項目を増やします。
  2. 正しいパラメーター名を使用しているか確認します。
  3. 不要な出力を減らすため、プロンプトをより具体的にします。
  4. より大きい出力ウィンドウのモデルを使用します。
  5. タスクを複数の手順に分割します。

よくある間違い

  • より大きい max_tokens 値を指定すれば、モデルが常により多く書くと考えること。
  • finish_reason を確認せず、出力が途中で切れた後に再試行すること。
  • 推論モデルで古い項目名を使用すること。
  • コンテキストとコストの見積もりで非表示の Reasoning Token を無視すること。
  • モデル自体の最大出力上限を無視すること。

BetterToken について

BetterToken は API Key とモデルリクエストのレベルで使用量を記録します。ダッシュボードを使って、モデルやタスク間の Token 使用量を確認できます。

出力上限項目は、引き続き使用する API 形式とモデルによって決まります。設定時には、モデル、Base URL、API 形式、パラメーター名を合わせて確認してください。

関連ドキュメント