思考(Reasoning)
思考量の指定方法と、思考内容・思考トークンの受け取り方です。
提供モデルは思考(reasoning)に対応しており、思考の内容と使用トークン数が各 API のレスポンスに含まれます。OpenAI SDK・Claude Code・Codex CLI のいずれからも追加設定なしで利用できます。
API ごとの指定と返却先
| API | リクエスト | 思考内容の返却先 |
|---|---|---|
/v1/chat/completions | reasoning_effort | message.reasoning_content |
/v1/responses(Codex) | reasoning: { effort } | type: "reasoning" の出力アイテム |
/v1/messages(Claude Code) | thinking | thinking コンテンツブロック |
注意点
- 思考量の指定(
reasoning_effort/budget_tokensなど)はそのままモデルへ渡されます。受け付ける値はモデルごとに違い、 対応しない値は400になります。モデルごとの一覧は モデル ID の表と クライアント設定 に載せています。 "none"を受け付けないモデルは思考を止められません(思考が常時 ON のモデル)。reasoning_effortを送らない場合はモデル既定の思考量になります。- 思考トークンは
usage.completion_tokens_details.reasoning_tokens(Responses API ではusage.output_tokens_details.reasoning_tokens)として報告され、出力トークンの一部として課金されます。 - 推論基盤のプレフィックスキャッシュから供給された入力トークンには、モデルごとに キャッシュ読取単価が適用されます(未設定のモデルは通常の入力単価)。 ヒットは保証されません。同一プロンプトでもヒットしないことがあり、 HAI 側でヒットを制御していません。
- 明細の
cache_read_tokensはinput_tokensの部分集合です。課金は(input_tokens − cache_read_tokens) × 入力単価 + cache_read_tokens × キャッシュ読取単価 + output_tokens × 出力単価です。単価未設定モデルではcache_read_tokensが記録されても通常の入力単価で課金されます。 /v1/chat/completionsと/v1/responsesのprompt_tokens/input_tokensはキャッシュ分を含み、/v1/messagesのinput_tokensは含みません(API 仕様の差)。