メインコンテンツへスキップ
AIHubMix の OpenAI 互換インターフェースが Claude の Thinking、キャッシュ、Beta 機能を深くサポート
OpenAI 互換インターフェースを Claude シリーズモデル向けに、より深い最適化でアップグレードしました。Thinking とキャッシュをこれまで以上に正確かつ便利に制御できるようになりました — 特にマルチターン会話における interleaved thinking をよりユーザーフレンドリーにし、追加パラメータなしでシームレスに統合できるようになりました。さらに、Anthropic が提供する beta 機能の有効化もサポートしています。

1. モデル Thinking(Extended Thinking)

1.1 Interleaved Thinking の利点

interleaved thinking が有効でない場合、モデルは assistant ターンの最初に一度だけ thinking を実行します。それ以降のレスポンスは、新しい thinking ブロックを生成することなくツール結果を受け取った後に直接生成されます:
interleaved thinking が有効な場合、モデルはツール結果を受け取るたびに新しい thinking ブロックを挿入し、推論チェーンを形成します:
これによりモデルは以下が可能になります:
  • ツール結果に基づく二次推論を実行、単に出力を連結するだけではない。
  • 複数のツール呼び出し間で推論を連鎖、各決定は前ステップの分析に基づく。
参考:Anthropic Interleaved Thinking

1.2 Thinking の有効化

Thinking は 4 つの方法で有効化でき、いずれか 1 つを選択します:
優先順位(複数の方法を使用した場合):reasoning_effort > reasoning.max_tokens > reasoning.effort > -think サフィックス
effort の取りうる値: minimal / low / medium / high / xhigh

1.3 Thinking の戻り値

レスポンスメッセージには 2 つの新しいフィールドが含まれます:
  • reasoning_content:Thinking コンテンツ(文字列)。表示用。
  • reasoning_details:Thinking の完全な構造化情報。マルチターン会話ではそのまま返す必要があります。内部構造はプロバイダーごとに異なる場合があります。
非ストリーミング例(無関係なフィールドは省略):
ストリーミングレスポンスでは、thinking コンテンツは delta.reasoning_contentdelta.reasoning_details を介してチャンクで送信されます。完全なストリーミング連結ロジックについては、以下の完全な例を参照してください。

1.4 マルチターン会話で Thinking を保持する (Interleaved Thinking は組み込みで、追加パラメータは不要)

モデルがマルチターン会話で推論能力を継続できるようにするには、前回返された reasoning_detailsそのまま 次のラウンドの assistant メッセージに配置するだけです:
AihubMix はリクエスト内に履歴の thinking 情報を検出すると 自動的に interleaved thinking を有効化 し、追加のパラメータを必要とせずにツール呼び出し結果を受け取った後もモデルが深い推論を継続できるようにします。

1.5 完全な例

以下の 2 つの例は、完全なマルチターン Tool Call + interleaved thinking プロセスを示しています:ユーザー問い合わせ → モデルが思考しツールを呼び出す → ツール結果を注入(reasoning_details を保持)→ モデルの interleaved thinking が最終レスポンスを返す。 非ストリーミング・Interleaved Thinking
ストリーミング・Interleaved Thinking

1.6 Thinking 強度マッピングルール

Effort モード:
  • Opus 4.6 / Sonnet 4.6 以降:Anthropic ネイティブの Adaptive Thinking の effort レベルにマッピングされます。
  • その他のモデル:budget_tokens の式で計算されます:
Adaptive Thinking Effort マッピング: max_tokens モード: Anthropic の budget_tokens として直接割り当てられます。 -think サフィックス: Opus/Sonnet 4.6+ は adaptive thinking(effort=medium)を使用。その他のモデルは budget_tokens = min(10240, max_tokens - 1) に設定され、デフォルトの max_tokens は 4096 です。

2. Prompt Caching

Chat インターフェース経由で Claude モデルにリクエストを行う際に Prompt Caching を使用できます。メッセージに cache_control ブレークポイントを設定することで、大きなテキストブロック(ロールカード、RAG データ、書籍の章など)を再利用のためにキャッシュでき、後続のリクエストでキャッシュに直接ヒットしてコストを大幅に削減できます。
Claude 公式ドキュメント:Prompt Caching

2.1 キャッシュコスト

2.2 サポートされるモデルと最小キャッシュ長

ブレークポイント数制限: リクエストあたり最大 4 つの cache_control ブレークポイント。

2.3 キャッシュ TTL

1 時間 TTL の書き込みコストは高くなりますが、長いセッションでの繰り返し書き込みを減らすことで合計費用を節約できます。Claude 4.5 以降のすべてのプロバイダー(Anthropic、Amazon Bedrock、Google Vertex AI を含む)のモデルが 1 時間 TTL をサポートします。

2.4 使い方

systemuser(画像を含む)、toolscache_control フィールドを使ってキャッシュブレークポイントを設定できます。以下の例は主要な構造のみを示しており、大きなテキストブロックは省略しています。 System メッセージのキャッシュ(デフォルト 5 分 TTL):
User メッセージのキャッシュ(1 時間 TTL):
画像メッセージのキャッシュ:
Tool 定義のキャッシュ: cache_control はツールオブジェクトの最上位レベル(typefunction と並列)に配置します:

2.5 キャッシュステータスの確認

レスポンスの usage には claude_cache_tokens_details が返され、詳細なキャッシュ情報が記録されます: 最初のリクエスト(キャッシュ作成):
後続のリクエスト(キャッシュヒット):

3. anthropic-beta 用リクエストヘッダー

HTTP ヘッダー anthropic-beta を介して Claude モデルの beta 機能を有効化でき、AihubMix が Anthropic API にスルーパスします。

使い方

リクエストヘッダーに anthropic-beta を追加し、値には対応する beta 機能識別子を指定します:
利用可能な具体的な beta 識別子については、Anthropic API ドキュメント を参照してください。

最終更新日:2026-06-01