Claude Code カスタム API 設定:第三者ゲートウェイと中国オープンソースモデル
Claude Code カスタム API 設定:第三者ゲートウェイと中国オープンソースモデル
Claude Code は、Anthropic のプロバイダーエンドポイントを直接使う代わりに、Anthropic 互換エンドポイントへ接続する設定を利用できます。これにより、ゲートウェイが公開しているモデル ID を使った開発ワークフローを検証できます。ECAIX の現在のモデルカタログには、DeepSeek、Qwen、GLM、Kimi、MiniMax、Seed などの中国オープンソースモデルが掲載されています。
ただし、この記事は プロバイダー別の第三者互換ワークフローについて説明するものです。Anthropic の公式 Claude Code gateway ドキュメントでは、Anthropic は gateway 経由で Claude Code を非 Claude モデルへルーティングすることをサポートしていないと説明しています。ECAIX は、この構成を Anthropic の公式サポート機能とは主張しません。また、非 Claude モデルで Claude Code のすべての機能が同じように動くとは限りません。
設定前に確認してください
このガイドは、エンドポイント設定と互換性テストのためのものです。Anthropic の公式ドキュメントは、gateway 経由で Claude Code を非 Claude モデルへルーティングすることをサポートしていません。ECAIX も、すべての非 Claude モデルですべての Claude Code 機能が動作すると主張していません。本番データを送る前に、利用している Claude Code のバージョン、ゲートウェイ、モデルプロバイダーのドキュメントと利用規約を確認してください。
クイックスタート
互換性の境界を理解している場合は、まず次の手順を実行します。
- ECAIX のモデル一覧で有効なモデル ID を選びます。
- ECAIX API キーを作成し、リポジトリへ保存しません。
ANTHROPIC_BASE_URLをhttps://ecaix.com/api/ai/v1/anthropicに設定します。- 下の診断リクエストを実行し、HTTP ステータスを記録します。
- 読み取り専用のテストプロジェクトで
claude -pを実行します。 - tools、ストリーミング、コンテキスト、権限を個別に確認します。
公開時点の検証状態
| 範囲 | 状態 | 証拠の境界 |
|---|---|---|
| 公開モデル ID | Measured | 2026-10-23 に ECAIX 公開カタログを確認 |
| Endpoint パス | Measured | ECAIX の Anthropic 互換ドキュメントと一致 |
| 実際の API キーによるリクエスト | この記事では未検証 | 認証済みキーでローカル実行が必要 |
| Claude Code のエンドツーエンド | この記事では未検証 | インストール済みバージョンごとにテストが必要 |
| tools、ストリーミング、長いコンテキスト | 未検証 | テキスト互換性とは別に検証 |
設定例と実際の互換性テスト結果を混同しないための表です。
この設定で変わるもの
構成は次の 4 つに分かれます。
- Claude Code:開発タスクを作成し、リクエストを送るクライアントです。
- Anthropic 互換ゲートウェイ:Anthropic 形式のエンドポイントでリクエストを受け取ります。
- モデル ID:ゲートウェイが公開する上流モデルを選びます。
- API キー:アカウント、利用枠、権限を決める認証情報です。
エンドポイントを変更しても、非 Claude モデルが Claude になるわけではありません。変更されるのは、互換 API のリクエストを受け取るサービスです。ツール利用、コンテキスト処理、モデルエイリアス、ストリーミング、権限フローは、クライアントのバージョンやゲートウェイの実装によって変わる可能性があります。
事前準備
以下を用意します。
- 環境変数または設定ファイルでエンドポイントを指定できる Claude Code。
- ECAIX API キー。
- ECAIX の現在のモデルカタログに存在するモデル ID。
- API キーをソースコードに保存せずに、小さなテストリクエストを実行できるターミナル。
モデルカタログは更新されます。設定ファイルへモデル ID をコピーする前に、ECAIX モデル一覧 を開き、モデルが有効で、利用する API スタイルに対応していることを確認してください。
ゲートウェイのエンドポイントを設定する
多くの Claude Code 環境では、設定ファイルは ~/.claude/settings.json にあります。設定スキーマはバージョンによって変わる可能性があるため、次の例を出発点として、使用中のバージョンの公式ドキュメントと照合してください。
{
"env": {
"ANTHROPIC_BASE_URL": "https://ecaix.com/api/ai/v1/anthropic",
"ANTHROPIC_API_KEY": "YOUR_ECAIX_API_KEY",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT": "1"
},
"model": "deepseek-v4.1-flash"
}
実際の API キーを含む設定ファイルを公開リポジトリへコミットしないでください。ローカル環境変数、シークレット管理ツール、または使用中の Claude Code が推奨する認証方法を使います。
テスト中は、シェルの環境変数として設定することもできます。
export ANTHROPIC_BASE_URL="https://ecaix.com/api/ai/v1/anthropic"
export ANTHROPIC_API_KEY="YOUR_ECAIX_API_KEY"
export ANTHROPIC_MODEL="deepseek-v4.1-flash"
利用中の Claude Code が ANTHROPIC_MODEL を無視する場合は、バージョン別ドキュメントでモデル設定の場所を確認してください。最終的には、ゲートウェイが指定されたモデル ID を認識できる必要があります。
まず Anthropic 互換エンドポイントを検証する
対話セッションを開始する前に、小さなリクエストを送ります。次のコマンドは response header と body を別々に保存し、HTTP ステータスを表示します。実際の API キーはローカルの認証済み環境でだけ使ってください。
curl -sS -D /tmp/ecaix-anthropic-headers.txt \
-o /tmp/ecaix-anthropic-response.json \
-w '\nHTTP %{http_code}\n' \
"${ANTHROPIC_BASE_URL}/messages" \
-H "x-api-key: ${ANTHROPIC_API_KEY}" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"max_tokens": 128,
"messages": [
{"role": "user", "content": "Reply with one short sentence."}
]
}'
200 はレスポンス形式を確認し、401/403 はキー、header、アカウント、権限を確認します。404 は base URL と /messages を確認し、400 は最小リクエストに戻します。5xx や timeout は時刻と body を記録し、gateway、上流、クライアントを分けて調べます。
成功レスポンスは、そのリクエストでキー、endpoint、形式、モデル ID が動いたことだけを示します。すべての Claude Code 機能が動くことは示しません。
モデル ID の選び方
ECAIX のカタログには、中国のプロバイダーが提供する複数のモデルファミリーがあります。モデル名だけではなく、タスクに応じて最初の候補を選びます。
コーディングと一般的な開発
現在のカタログに表示されている DeepSeek、Qwen、GLM、Seed のコーディング対応モデルから始めます。例として deepseek-v4.1-flash、qwen3.8-flash、glm-5.3、seed-2.0-code などがあります。ただし、公開状況や能力は変わるため、記事を公開する時点でもモデルページを再確認します。
長いコンテキストとリポジトリ作業
大きなリポジトリや長い技術文書を扱う場合は、モデル一覧に表示されるコンテキスト長を比較します。コンテキスト長が大きいだけで、リポジトリ作業の結果が良くなるわけではありません。プロンプトの構成、ツール対応、出力上限、ゲートウェイ側の制限も確認が必要です。
ツール呼び出しと Agent ワークフロー
Function Calling や tools を使う場合は、モデルとエンドポイントのドキュメントを確認します。OpenAI 互換 API でツール呼び出しを提供するプロバイダーもあれば、フィールド名や対応範囲が異なるプロバイダーもあります。本番の外部システムへ接続する前に、単一の簡単な関数でテストしてください。
中国語を含む開発作業
コードベース、ドキュメント、課題管理、チームのやり取りに中国語が含まれる場合、中国オープンソースモデルを候補にできます。一般的なランキングだけではなく、自分のプロンプトとリポジトリのサンプルで評価してください。
API リクエスト成功後に Claude Code をテストする
直接の API リクエストが成功したら、最初は読み取り専用または低リスクのコマンドを実行します。
claude -p "Explain what this repository does without editing files."
次に、範囲を限定したタスクを試します。
claude -p "List the likely entry points for the web application. Do not modify files."
テストは段階的に進めます。
- 短いテキスト応答。
- コードの説明。
- リポジトリのナビゲーション。
- 使い捨てブランチでの限定的な編集。
- ツール呼び出しや複数ステップのタスク。
- ストリーミングと長いコンテキスト。
テキスト応答が成功しただけで、権限確認、ツール呼び出し、ストリーミング、コンテキスト制限、ファイル編集まで同じように動くと判断しないでください。
API パスの選び方
Claude Code はクライアントの一つです。必要な機能に応じて、API パスを比較します。
| 方法 | 向いている場面 | 比較するもの |
|---|---|---|
| 公式 Claude API | ネイティブ Claude と公式ドキュメントを使う | 公式条件、機能、料金 |
| 第三者 Anthropic 互換ゲートウェイ | Anthropic 形式のリクエストと統一ルーティング | 互換範囲、ルーティング、制限、ログ、非 Claude の制約 |
| モデルプロバイダーのネイティブ API | プロバイダー固有のモデル機能 | フィールド、tools、コンテキスト、SDK |
| OpenAI 互換ゲートウェイ | 既存の OpenAI SDK とツールを使う | base URL、フィールド変換、Responses、tools |
ECAIX の Anthropic 互換パスは Anthropic Messages ドキュメント、OpenAI 互換クライアントは Chat Completions ドキュメントを参照してください。現在のモデルと価格はモデル一覧と料金ページで確認します。
互換性マトリクス
| テスト項目 | この記事の証拠状態 | 次に行うテスト |
|---|---|---|
| API キー認証 | リクエスト形式を提示 | 認証済みキーで status を記録 |
| モデルルーティング | 公開カタログ ID を提示 | response の model/usage を確認 |
| 通常のテキスト | 最小リクエストを提示 | 実際の response を保存 |
| ストリーミング | 未検証 | event 形式とクライアント解析 |
| tools | 未検証 | 安全な関数 schema を一つ確認 |
| 複数ステップ Agent | 未検証 | 使い捨てリポジトリで確認 |
| 長いコンテキスト | 未検証 | 最大成功 prompt を測定 |
| 権限動作 | 未検証 | 読み取り専用と限定編集を別に確認 |
最小リクエストの成功を、完全な Claude Code 互換認証として扱わないでください。
現在のモデル詳細ページ
古い記事からモデル名をコピーせず、モデル詳細ページで確認します。
公開状況は変わるため、公開後も詳細ページを再確認してください。
よくあるエラー
エラーが出たら、複数の変数を同時に変更しないでください。次の順番で確認します。
- HTTP status と response body を保存する。
- base URL と endpoint suffix を確認する。
- ローカルのキーとアカウント権限を確認する。
- モデル一覧で正確なモデル ID を確認する。
- 最小リクエストで再試行する。
- Claude Code のリクエストと直接の curl を比較する。
- 最後に upstream routing、timeout、tool schema を調べる。
これにより、スペルミス、権限不足、gateway のマッピング、上流プロバイダーのエラーを分けられます。401/403 では先にモデルを変えず、テキスト成功後に tools だけが失敗する場合は schema を確認します。
| 症状 | 考えられる原因 | 確認すること |
|---|---|---|
401 / 403 | API キーがない、無効、または権限がない | キー、アカウント権限、ヘッダー |
| Model not found | カタログにない、またはキーに許可されていない | /ja/models、スペル、アクセス権 |
| Unsupported parameter | Anthropic 形式の一部だけが対応されている | オプションを減らして最小リクエストを送る |
| ツール呼び出しが空、または壊れる | ツールスキーマやプロバイダー変換の違い | 単一の簡単な関数で検証 |
| Timeout | コンテキスト、出力、上流負荷、クライアント timeout | タスク、プロンプト、出力上限を小さくする |
| モデル設定が無視される | Claude Code のバージョンによる設定場所の違い | バージョン別の設定ドキュメント |
| テキストは動くが Agent が失敗する | テキスト互換性とツール互換性は別 | ツール、権限、ストリーミング、コンテキストを別々に検証 |
セキュリティとデータ処理
ゲートウェイは独立したサービス境界として扱います。ソースコードや顧客データを送る前に、次を確認してください。
- プロンプトとファイル内容をどのサービスが受け取るか。
- リクエストとレスポンスがログに保存されるか。
- API キーがどこに保存され、どうローテーションされるか。
- 実際の上流接続か、別プロバイダーへの fallback か。
- クライアントが実行できるツールの範囲。
- テスト終了後にキーを無効化できるか。
実際の API キーを公開 issue、記事、スクリーンショット、共有される shell history に貼り付けないでください。
公式 Claude Code サポートとの違い
Claude Code のサポート範囲は Anthropic 公式ドキュメントを基準にします。第三者ゲートウェイが互換形式を公開していても、それは公式サポートと同じではありません。安全な説明は次のようになります。
- このゲートウェイ構成で検証したもの:エンドポイント、認証ヘッダー、モデル ID、ECAIX がテストした機能。
- 自動的には保証されないもの:すべての Claude Code 機能、非 Claude モデルの動作、プロバイダー固有の tool semantics、将来のクライアントバージョン。
- 変更後に再検証が必要なもの:モデル提供状況、リクエストフィールド、コンテキスト上限、ストリーミング、ツール呼び出し、価格。
FAQ
このワークフローに Claude のサブスクリプションは必要ですか?
Claude Code のインストール、アカウント条件、ゲートウェイ構成によって異なります。この記事は Anthropic のサブスクリプションや製品要件を変更しません。公式 Claude Code ドキュメントと利用するゲートウェイの規約を確認してください。
カタログにあるすべてのモデル ID を使えますか?
いいえ。現在表示され、有効で、エンドポイントとアカウントに対応するモデル ID を使います。カタログにあっても、API スタイルやキーによって利用できない場合があります。
Anthropic 互換エンドポイントなら必ず tools が使えますか?
いいえ。プロトコルの互換性とツール動作は別に確認する必要があります。小さな Function Calling テストを行い、モデルの現在のドキュメントを確認してください。
現在のモデルと価格はどこで確認できますか?
ECAIX モデル一覧 と料金ページを確認してください。現在の提供状況と表示価格はリアルタイムページを基準にし、この記事から古いモデル ID や価格をコピーしないでください。
まとめ
安全な検証手順は次の通りです。
- Claude Code と gateway の公式ドキュメントを読む。
- API キーを作成し、公開しない。
/ja/modelsで現在使えるモデル ID を選ぶ。ANTHROPIC_BASE_URLとキーをローカルで設定する。/api/ai/v1/anthropic/messagesに最小リクエストを送る。- Claude Code で読み取り専用タスクを実行する。
- tools、ストリーミング、コンテキスト、権限を個別にテストする。
- クライアント、ゲートウェイ、モデル、エンドポイントが変わったら再検証する。
次に、Anthropic Messages API ドキュメント、現在のモデル一覧、API Keys を確認してください。
実運用前の互換性チェックリスト
チームで利用する前に、次のテスト結果を記録してください。
| テスト | 記録する内容 |
|---|---|
| 最小テキストリクエスト | HTTP ステータス、レスポンス形式、モデル ID |
| ストリーミング | クライアントが期待するイベント形式で届くか |
| ツール呼び出し | schema が受理され、引数が正しく返るか |
| 長いコンテキスト | timeout 内で完了する最大の入力サイズ |
| ファイル編集 | 権限確認と patch 適用が期待通りか |
| エラー処理 | rate limit、timeout、上流エラーをどう表示するか |
| キーの無効化 | テスト用キーを停止・交換できるか |
単純な挨拶に成功しただけでは十分ではありません。ゲートウェイがテキストリクエストを受け取れても、tools、ストリーミング、コンテキストウィンドウ、モデルエイリアスには別の設定が必要な場合があります。
この構成を使わない方がよい場合
ログ、保存期間、ルーティング、アクセス制御を確認する前に、機密性の高い本番リポジトリで利用しないでください。プロバイダー互換エンドポイントが、元のプロバイダーと同じ安全性、system prompt、ツール権限、コンテキスト計算を提供するとは限りません。規制対象データや機密データを扱う場合は、組織のセキュリティレビューを完了してください。
設定を更新するタイミング
次の変更があったら再確認します。
- Claude Code をアップグレードしたとき。
- ゲートウェイの Anthropic 互換実装が変更されたとき。
- モデル ID が変更、削除、または別の上流へ移行したとき。
- ストリーミング、tools、コンテキスト上限、エラー形式が変わったとき。
- ECAIX のモデル一覧や API 制限が更新されたとき。
小さなテスト用プロジェクトに設定を保存し、実際のリポジトリとは分けてください。クライアントやモデルを更新した後も、同じ条件で比較できます。
実際のテストケース
最初のテストでは、いきなり大きなリポジトリを渡さないでください。次のように段階を分けると、どこで問題が発生したかを把握しやすくなります。
1. 認証だけを確認する
最小の messages リクエストを送り、HTTP ステータス、レスポンス形式、使用したモデル ID を記録します。401 や 403 が出る場合は、プロンプト内容ではなく API キー、ヘッダー、アカウント権限を先に確認します。
2. コード説明を確認する
小さな関数を入力し、説明だけを求めます。ここではファイル編集や外部ツールを許可しません。出力が返ること、文字化けがないこと、入力されたコンテキストが正しく扱われることを確認します。
3. ツールと権限を分けて確認する
ツール呼び出しを使う場合は、最初に安全なダミー関数を用意します。モデルが関数名と引数を正しく返すか、クライアントが確認画面を表示するか、実行結果を次のリクエストへ戻せるかを個別に確認してください。実際のファイル削除、外部 API、データベース操作は最初のテストに使わないでください。
4. 失敗時の動きを記録する
timeout、rate limit、無効なモデル ID、上流のエラーを意図的に一つずつ確認します。エラーがクライアントまで伝わるのか、ゲートウェイで別の形式に変わるのかを記録すると、後で運用時の調査が簡単になります。
運用時の注意
この構成をチームへ配布する場合は、共有するのは設定方法だけにし、API キーそのものは共有しないでください。利用者ごと、または環境ごとにキーを分け、不要になったキーを無効化できるようにします。設定ファイルを dotfiles リポジトリへ保存する場合は、キーを環境変数に置き換え、サンプルファイルには明示的なプレースホルダーだけを入れます。
モデルや gateway の更新後は、以前成功したリクエストを同じ条件で再実行します。テキスト応答だけでなく、ストリーミング、tools、長いコンテキスト、権限フローを比較してください。以前の結果を新しいモデルの保証として扱わないことが重要です。
リリース前の最終確認
公開前に、URL、canonical、hreflang、モデル ID、API キーの扱いを確認します。記事内のモデル名や価格を固定値として扱わず、最新のモデル一覧と料金ページへリンクしてください。これで、内容を更新したときにも古い情報が検索結果に残りにくくなります。