Anthropic:Messages APIがusage.output_tokens_details.thinking_tokensを返す — 課金とストリーミングへの影響
Anthropic Messages APIは、Extended Thinkingを使用する各レスポンスのusageオブジェクトにoutput_tokens_details.thinking_tokensフィールドを追加しました。推論コストを測定する開発者は、レスポンスに表示される要約ではなく、生成されたthinkingトークン全体が課金対象となることを把握する必要があります。この差は20倍以上になる場合があります。
この記事はAIにより一次情報源から生成されました。
Anthropic Messages APIは、usageオブジェクト内のoutput_tokens_details.thinking_tokensフィールドを通じて、内部のthinkingトークンを明示的にレポートするようになりました。
usage.output_tokens_details.thinking_tokensとは何か、なぜ重要なのか
このフィールドはExtended Thinkingを使用するすべてのAPIレスポンスに含まれ、以下の構造を持ちます:
{
"usage": {
"input_tokens": 1024,
"output_tokens": 512,
"output_tokens_details": {
"thinking_tokens": 10000
}
}
}
重要な点:Anthropicはユーザーに返される要約ではなく、生成されたthinkingトークンをすべて課金します。表示されるトークンと課金されるトークンの差は20倍以上になる場合があります。
thinkingブロックの要約(summarized thinking)はどのように機能するか
Claude Sonnet 4.6、Opus 4.6以降のモデルは要約(summarized thinking)をデフォルトの表示として使用します。内部の推論は専用モデルによって処理され、結論が短い形式に圧縮されます。要約は思考の質に影響しません。thinkingブロック内のsignatureフィールドは、マルチターン会話向けに完全なコンテンツの暗号化版を保持します。
ストリーミング動作とレイテンシ
レイテンシを削減したい開発者はストリーミングモードでdisplay: "omitted"を使用できます。サーバーはthinking_deltaイベントを送信しませんが、コストは変わりません。
Claude Fable 5、Mythos 5、Opus 4.8はdisplay: "omitted"をデフォルト設定として使用し、Sonnet 4.6とOpus 4.6はdisplay: "summarized"を使用します。
バジェット制限とキャッシュとの相互作用
budget_tokensパラメーターはthinkingトークンの上限を設定します。thinkingパラメーターを変更するとメッセージのキャッシュブレークポイントが無効化されます。Opus 4.8、4.7、4.6は最大128kの出力トークンをサポートし、Sonnet 4.6とHaiku 4.5は最大64kをサポートします。
よくある質問
- thinking_tokensの課金はどのように計算されますか?
- Anthropicはユーザーに返される要約ではなく、生成されたthinkingトークンをすべて課金します。表示トークンと課金トークンの差は20倍以上になる場合があります。
- ストリーミング時にthinkingブロックを非表示にできますか?
- はい、display: 'omitted'を使用するとサーバーはthinking_deltaイベントを送信しませんが、コストは変わりません。
📬 AIニュースをあなたの受信箱へ
毎日のダイジェストを自分仕様に——トピック、ソース、頻度を選べます。ワンクリックで解除。