Anthropicはextended thinkingの設定へdisplayフィールドを追加した。display: "omitted"を使うと、thinking block自体とsignatureは返るが、thinking本文は空になる。ストリーミングではthinking_deltaも送られず、最終テキストの表示開始を早められる。
ただし、推論処理を省略する機能ではない。公式文書は、完全なthinkingトークン分が課金され、削減されるのは転送と表示待ちの遅延だと説明している。
何が変わったか
extended thinkingの返却方法を"summarized"または"omitted"で制御できる。omittedでも署名は維持され、複数ターンではthinking blockを変更せず次のリクエストへ渡すことで会話継続に利用できる。
変更前後の差
| 項目 | summarized | omitted |
|---|---|---|
| thinking本文 | 要約を返す | 空文字 |
| signature | 返す | 返す |
| thinking_delta | 配信される | 配信されない |
| 推論品質 | extended thinking | 同じ推論を利用 |
| 課金 | thinkingトークンを課金 | 同じく課金 |
| 主な用途 | 説明・デバッグ | 低遅延UI、非表示処理 |
誰に影響するか
思考要約を画面へ出していないサービス、音声や対話で最初のテキスト表示を重視するアプリ、長いthinkingをネットワーク経由で受ける必要がないバックエンド、複数ターンでthinking blockを再送するエージェントに影響する。
期限
強制期限はない。モデルによって既定値が異なる場合があるため、表示動作を固定したいシステムはdisplayを明示する方が安全である。
必要な対応
thinkingをユーザーへ見せる必要、監査で必要な情報、レイテンシー目標を整理する。omittedをコスト削減策として計上せず、トークン課金と転送量・TTFTを別指標で監視する。
実装・移行手順
- thinking本文を現在どこで表示・保存しているか確認する。
- 非表示経路だけ
display: "omitted"を有効にする。 - 受信した空のthinking blockとsignatureをそのまま保存する。
- 複数ターンではblockを改変せず再送する。
- streaming parserが
thinking_delta不在でも完了できるか試験する。 - summarizedへ切り替える管理用Feature Flagを用意する。
- TTFT、総処理時間、課金トークンを比較する。
失敗しやすい点
thinkingが空なのでblock全体を削除する、signatureをログ整形で変更する、空欄へ独自テキストを挿入して再送する、omittedで課金も減ると誤認する、モデル既定値だけに依存することが失敗につながる。
リスク
複数ターン継続性の低下、ストリーム処理の状態機械破損、デバッグ情報減少、監査担当者の誤解がある。thinking本文を保存しないことはプライバシー面で有利になり得るが、最終回答や入力の保持方針は別途必要である。
評価方法
- time to first text token
- 総応答時間と転送バイト数
- thinkingトークン課金量
- 複数ターンのタスク成功率
- signature欠落・改変件数
- streaming parserエラー率
- summarizedへ戻した際の再現性
ロールバック
Feature Flagでdisplay: "summarized"へ戻す。保存済みの署名付きblockはそのまま利用し、独自変換を行わない。omitted導入前後でparserを分けた場合は、旧parserへ戻してストリームイベントの処理を再確認する。
編集部分析
omittedは推論能力を落とさず表示待ちを減らすための伝送制御である。費用最適化とレイテンシー最適化を混同すると、期待した削減が得られない。特にエージェントでは、見えないthinking blockも会話状態の一部として扱う設計が必要になる。
実務チェックリスト
- [ ] thinking本文の利用目的を整理した
- [ ] omittedを適用する経路を限定した
- [ ] 課金が変わらないことを予算へ反映した
- [ ] 空のthinking blockを削除していない
- [ ] signatureを改変せず再送している
- [ ] thinking_delta不在を試験した
- [ ] summarizedへ戻す切替手段がある