ネイティブクライアントプロトコル
SubLane ガイド: ネイティブ クライアント プロトコル。
これらのエンドポイントは後に導入されました v0.1.0-rc.1;そのリリースにはそれらは含まれていません。新しいリリースにこの変更が含まれるまでは、ソース ビルドを使用してください。
Codex、Claude、Antigravity、Grok Build のサブスクリプションと API チャネルが有効です。Claude Messages、Gemini 生成、Responses、Chat Completions は上流から独立したクライアント形式です。キーのリソースグループ、権限、ルーティングとフォールバックに従ってモデル対応リソースを選びます。API チャネルは上流プロトコルを独自に設定し、Messages をそのまま扱うか Chat Completions、Responses、Gemini に変換します。公開 SDK 統合は明示した出力上限と未完了状態を保持します。/v1/responses/compact は Codex 専用です。実サービスとクライアントは別途検証が必要です。
エンドポイントと認証
| プロトコル | 終点 | 資格 |
|---|---|---|
| Claude メッセージ | POST /v1/messages | x-api-key または Authorization: Bearer |
| Gemini JSON | POST /v1beta/models/{model}:generateContent | x-goog-api-key, Authorization: Bearer、 または key クエリパラメータ |
| Gemini SSE | POST /v1beta/models/{model}:streamGenerateContent?alt=sse | Gemini JSON と同じ |
個人用を使用する SubLane APIキー。複数の資格情報の場所が指定された場合は、それらが同意する必要があります。無効な Authorization ヘッダーは別のキーにフォールバックできません。ブラウザのセッション Cookie はゲートウェイの資格情報ではありません。他のプロキシが URL をログに記録する可能性があるため、クエリ文字列キーよりもヘッダーを優先します。 SubLane はクライアントキー、Cookie、またはクエリ文字列をプロバイダーに転送しません。
使用 GET /v1/models ベアラー認証を使用して、許可されたネイティブ モデル ID を検出します。 Gemini リクエストの場合、URL 内のモデルが権限を持ちます。体 model または stream フィールドはルートを上書きできません。 streamGenerateContent SSE を返します。 alt 省略することも、設定することもできます sse.
Claude の例
セット SUBLANE_URL インスタンスのオリジンと SUBLANE_API_KEY あなたの個人キーに。交換する YOUR_MODEL_ID カタログのモデルで:
curl "$SUBLANE_URL/v1/messages" \
-H "x-api-key: $SUBLANE_API_KEY" \
-H 'anthropic-version: 2023-06-01' \
-H 'content-type: application/json' \
--data '{"model":"YOUR_MODEL_ID","max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}'追加 "stream": true 名前付きメッセージ SSE イベントの場合。ネイティブ リクエスト コンテンツには、システム ブロック、ツール、ツール結果、キャッシュ コントロール、および思考構成が含まれます。 Claude 形式の応答は、選択された実行者のプロバイダー固有の処理に従って、コンテンツ ブロックと思考署名を保存します。エラーでは、Anthropic エンベロープと SSE という名前のエラー イベントが使用されます。 request-id そして X-Request-ID 対応するリクエストレコードを特定します。
Gemini の例
curl "$SUBLANE_URL/v1beta/models/YOUR_MODEL_ID:generateContent" \
-H "x-goog-api-key: $SUBLANE_API_KEY" \
-H 'content-type: application/json' \
--data '{"contents":[{"role":"user","parts":[{"text":"Hello"}]}]}'ストリーミングの場合は、次を使用します :streamGenerateContent?alt=sse そして curl --no-buffer。 Responses ネイティブを含む candidates、パーツと usageMetadata; Antigravity の内部 response エンベロープは SDK によって削除されます。ツールの呼び出しと思考のシグネチャは、Gemini 表現に残ります。エラーには Google スタイルが使用されます error.code, error.status そして error.message。 SSE チャンクには data: OpenAI なしのフレーム化 [DONE] マーカー。
共有された行動
- 有効なメンバーとキー、キーの有効期限、プールの付与、モデル ポリシー、アカウントの可用性、同時実行性、メンバー リクエストの制限は、既存のゲートウェイ サービスを通じて再チェックされます。
- 各リクエストでキー、メンバー、リソースグループ、モデルポリシー、容量、メンバー制限を確認します。新規リクエストはルーティングとフォールバック設定に従ってサブスクリプションまたは API チャネルを使用できます。既存の会話は元のリソースに固定され、無効化や削除で自動的に切り替わりません。
- 会話アフィニティの用途
Session_id; Claude も使用しますmetadata.user_id明示的なセッションが提供されていない場合。識別子のスコープはメンバーとプールに限定されます。アフィニティ識別子のないリクエストはセッションレスのままです。 - キャンセルすると上流の作業が終了し、アカウント/メンバーのリースが解除されます。ターミナル イベントの欠落や不正な形式またはサイズが大きすぎるイベントは失敗であり、成功した空の応答ではありません。ストリーミング エラーは、ヘッダーの送信後にサニタイズされます。
- リクエスト履歴のラベル操作
messagesまたはgemini、リクエスト ID、最初の出力レイテンシ、利用可能なトークンの使用状況を示します。人間的な入力の合計には、キャッシュの読み取りと作成が含まれます。 Gemini 入力にはすでにキャッシュされたトークンが含まれており、その出力合計には思考トークンが含まれています。後続の Gemini 使用量チャンクは、finishReason. - リクエスト本文の既定上限は 128 MiB(
SUBLANE_MAX_REQUEST_BODY_MB)、応答本文と各ストリームイベントはそれぞれ 8 MiB です。総タイムアウトは既定で 30 分(SUBLANE_GATEWAY_REQUEST_TIMEOUT)、推論応答ヘッダーの待機は 5 分(SUBLANE_INFERENCE_HEADER_TIMEOUT)で、ネイティブ形式にも適用されます。ストリームは逐次転送します。
統合された初期化スキーマには、リクエスト履歴内のネイティブ プロトコル操作が含まれます。追加の永続サービスは必要ありません。
範囲と検証
この合成テスト行列は Codex、Claude、Antigravity を対象とし、いずれも実行時に有効です。Grok Build と API チャネルも有効ですが、この 24 ケースの行列とは別のテストで検証しています。
| クライアントプロトコル | Codex アカウント | Claude アカウント | Antigravity アカウント |
|---|---|---|---|
| OpenAI Responses | テスト済み | テスト済み | テスト済み |
| OpenAI Chat Completions | テスト済み | テスト済み | テスト済み |
| Claude メッセージ | テスト済み | テスト済み | テスト済み |
| Gemini 世代 | テスト済み | テスト済み | テスト済み |
TestClientProtocolMatrix は模擬上流で 24 通りのプロバイダー・形式・ストリームの組み合わせを検証します。Grok Build、API チャネル、署名、キャッシュ使用量、権限、再試行、キャンセル、不正なストリームには別のテストがあります。すべてのツール、思考モード、固有フィールドや実際のクライアント操作を保証するものではありません。
対象範囲では、ネイティブ JSON/SSE、ツール/思考、クロスプロバイダー変換、承認、使用法、中断、キャンセルなどの合成アカウントとモックプロバイダーが使用されます。リアルアカウントの Claude コード、Gemini CLI、またはデスクトップとの完全な互換性は確立されません。高度なネイティブ機能は、選択したプロバイダーと SDK 変換パスによって異なります。
で APIキー → セットアップガイド、クライアントまたは API 形式を選択します。このガイドでは、Codex 構成、Cline/OpenAI 互換セットアップおよび Chat Completions 例、またはネイティブ Claude/Gemini リクエスト例を、正しいベース URL と認証ヘッダーとともに提供します。キーのプールからモデルを選択します。ガイドはキーの秘密を取得することはありません。読んだ例 SUBLANE_API_KEY クライアント環境から。 CC Switch クイックインポート Codex、OpenCode、Claude Code、OpenClaw、Hermes、Gemini CLI、および Grok Build をサポートします。
Gemini CLI 0.37.2 は、合成キーとモデルを使用して、分離されたモック エンドポイントに対するテキスト ストリーミング リクエストと読み取り専用ツールのラウンド トリップをさらに完了しました。これにより、CLI リクエスト パスとレスポンスの消費がチェックされます。実際のサブスクリプション推論、すべての CLI 機能、または他のクライアントの完全なワークフローは検証されません。
トークンカウントエンドポイント、メッセージバッチ、ファイル、Gemini ライブおよび Antigravity デスクトップ接続プロトコルは、この変更では実装されません。サポートされていないアクションは、生成リクエストとして処理されずに拒否されます。ネイティブ モデル検出リソースは公開されません。プールスコープを使用する /v1/models カタログ。
プロトコルのリファレンス: Claude ストリーミング, Claude エラー、 そして Gemini 世代。ルーティングと互換性の境界を比較しました。 サブ2API そして 新規 API; SubLane は、独自の権限、ライフサイクル、およびストレージの実装を保持します。