概要
TokenLab は 1 つの API キーで Chat Completions、Responses、Anthropic Messages、Gemini ネイティブの 4 つのプロトコル面を提供します。ネイティブ入口は、モデルがその形式を公開し、同一プロトコルの upstream ルートがある場合にのみ利用でき、Chat Completions へフォールバックしません。別プロトコルへ一方向にコンパイルできるのは Chat 入口だけです。OpenAI フォーマット
/v1/chat/completions
標準フォーマット、最も幅広い互換性Responses
/v1/responses
ネイティブ Responses のライフサイクルとイベントAnthropic フォーマット
/v1/messages
Extended thinking、Claude 固有の機能Gemini フォーマット
/v1beta/models/:model:generateContent
Google エコシステムとの統合なぜマルチフォーマットか?
フォーマット比較
OpenAI フォーマット
既存の OpenAI SDK 統合や、移植性のあるチャット/embedding フローには、この互換経路を使用してください。Claude または Gemini のネイティブな挙動が必要な場合は、下記の Anthropic または Gemini 形式を使用してください。- 一般的な用途
- 既存の OpenAI SDK 統合
- 最大の互換性
Anthropic フォーマット
Anthropic のネイティブ Messages API。Extended thinking のような Claude 固有の機能にはこのフォーマットが必要です。拡張思考 (Claude Opus 4.6)
Anthropic フォーマットでのみ利用可能:- Claude 固有の機能
- Extended thinking モード
- ネイティブ Anthropic SDK ユーザー
Gemini フォーマット
Google エコシステム統合のためのネイティブな Google Gemini API フォーマットです。ストリーミング
- Google Cloud 統合
- 既存の Gemini SDK コード
- ネイティブ Gemini 機能
/upload/v1beta/files、/v1beta/files、/v1beta/files:register、/v1beta/cachedContents を利用できます。Files は Gemini File API 互換の上流チャネルを使い、明示的な Cache リソースは Vertex AI チャネルにもルーティングできます。TokenLab 経由で作成したリソースは同じ上流チャネル/key に束縛され、後続の generateContent でもその束縛が使われます。
ツール互換性の境界
関数ツールを一方向にコンパイルできるのは Chat 入口だけで、対象が完全なツールループを表現できる場合に限ります。プロバイダー固有のネイティブツールは、それぞれのネイティブルートに残す必要があります。- OpenAI Responses のホスト型およびネイティブツール、たとえば
tool_search、web_search、file_search、code_interpreter、MCP、shell/apply_patch、computer-use ツールには/v1/responsesが必要です。 - Anthropic の server/native ツール、たとえば
web_search_*、web_fetch_*、code_execution_*、tool_search_*、bash、computer-use、text-editor ツールには/v1/messagesが必要です。 - Gemini の組み込みツール、たとえば
googleSearch、codeExecution、urlContext、computerUse、および同種のtoolsフィールドには/v1betaが必要です。
適切なフォーマットの選び方
マイグレーションガイド
OpenAI 公式APIから
Anthropic 公式APIから
Google AI Studio から
ポータブル Chat 互換性
1 つのクライアントから異なる upstream プロトコルで提供されるモデルへ接続する場合は/v1/chat/completions を使用します。移植可能な Chat リクエストは、完全に表現できる場合に限り Responses、Messages、Gemini へ一方向にコンパイルできます。Responses、Messages、Gemini のネイティブリクエストが Chat に変換されることはなく、モデル名やプロバイダー名だけではネイティブ対応を意味しません。
Responses と Gemini の境界
現在の Responses 面は create、compact、retrieve、delete、SSE を含みます。background は HTTP のみです。WebSocket が受け付けるのはresponse.create だけで、stream は暗黙です。この transport では background と response.cancel を提供しません。delete は cancel ではありません。
Gemini では ProtoJSON の lowerCamelCase と proto 元来の snake_case の両方が公式で、混在リクエストもそのまま保持されます。現在の面は model list/get、generateContent、streamGenerateContent、countTokens、embedContent、batchEmbedContents を含み、Interactions と Live は含みません。未知のフィールドは best-effort で転送され、対応可否は upstream が判断します。