このページは
/v1/chat/completions 互換モードに焦点を当てています。Claude のネイティブな推論ブロック(thinking フィールドの /v1/messages)については、Claude Effort & Thinking ガイド を参照してください。Gemini のネイティブな thinking_level と thought_signature については、Gemini Native Calls を参照してください。概要
互換モードでは、推論モデルは「thinking text を出力するか」によって3つのグループに分かれます。Thinking content: reasoning_content
思考テキストを出力するモデルは、思考の連鎖をreasoning_content に、content と並行して格納します。
非ストリーミング — message が両方を含みます:
delta.reasoning_content の連続が送られ、delta.content は思考が終わってから開始されます。必ず 2つを別々にレンダリング してください(思考部分を折りたたみ、回答をストリームする). そうしないと、UI に思考の壁が最初にちらつきます:
推論 token は回答を圧倒することがあります。テストでは、単純な「1+1」の質問で grok-4.3 が数百の
reasoning_tokens を出し、回答 token はほんの少しでした。思考は output tokens として課金されるため、レイテンシとコストに敏感なユースケースで有効化/表示するかを評価してください。思考シグネチャとマルチターン
「thought signature」は Gemini ネイティブ の概念です。ネイティブなマルチモーダル / function calling では、モデルが暗号化されたthought_signature を返し、推論の継続性を保つためにターンをまたいで返し続ける必要があります(Gemini Native Calls および Gemini Function Calling を参照)。
/v1/chat/completions 互換モードでは、推論モデルはステートレスです:
- マルチターンでは、前の assistant ターンの
contentをメッセージ履歴に入れるだけで十分です; reasoning_contentを返し直す必要はなく、シグネチャフィールドも応答には表示されません;- テストでは、gemini-3.1-flash-lite と grok-4.3 の両方で、
contentのみを返してもマルチターンのコンテキストが正しく維持されました。
構造化出力
response_format を使って、モデルに JSON のみを出力させます。種類は 2 つです:
モデル別サポート(検証済み)
json_schema のサポートは大きく異なります — これが構造化出力における最大の落とし穴です:
モデル間で JSON を確実に取得する
関連リンク
- 同じグループ: レスポンスの処理 · 互換モードの呼び出し · 関数呼び出し
- ネイティブ推論: Claude の Effort と Thinking ガイド · Gemini ネイティブ呼び出し
- モデルと料金: モデルと料金の概要