直接回答
Claude Code には単なる text endpoint ではなく Anthropic Messages の動作が必要です。client の前に gateway を直接検証します。
このガイドで解決できること
Claude Code gateway の接続、認証、model mapping、streaming 互換エラーを修正する。
症状と影響範囲を確認する
custom gateway 設定後に Claude Code が接続、認証、model、stream error を報告します。
汎用 curl が text を返しても Messages path、event type、tool use で Claude Code は失敗します。
- 設定を変更する前に、ステータスまたは例外、レスポンス本文、request ID、UTC 時刻、クライアント版、最終ホストを保存します。
- 最小リクエストと失敗するワークフローを比較し、全体障害、モデル固有、機能固有のどれかを切り分けます。
- 認証情報、完全なプロンプト、顧客データ、非公開ファイルをスクリーンショットやサポート資料に含めません。
主な原因と責任境界
エラーは一つのレイヤーから得た証拠であり、下流全体の故障を証明するものではありません。まず次の可能性を順に検証します。
- Base URL に Claude Code が追加する resource path がすでに含まれる。
- environment variable が credential を誤った auth header に mapping する。
- Claude model alias が実際に対応する upstream model へ route されない。
- gateway が必要な Messages streaming・tool-use semantics を実装していない。
レイヤー別に最小診断を行う
可変要素が最も少ないリクエストから開始します。アカウント、API ホスト、対象モデルは維持し、任意機能だけを外します。
一度に一項目だけ変更し、元のステータス、ヘッダー、本文、所要時間を残します。これによりクライアントのシリアライズとゲートウェイ・上流の挙動を分離できます。
- 01境界を確定Claude Code status と有効な Base URL、model、credential source を機密除去して確認します。
- 02基準を作成gateway へ最小 non-stream Messages request を直接送ります。
- 03一項目を比較Bearer token と x-api-key mapping を gateway 文書と比較します。
- 04決定的な証拠を記録mapped model を確認後、streaming と tool use を個別に試します。
printf 'ANTHROPIC_BASE_URL=%s
' "$ANTHROPIC_BASE_URL"
test -n "$ANTHROPIC_AUTH_TOKEN" && echo 'Bearer token is set'
test -n "$ANTHROPIC_API_KEY" && echo 'x-api-key credential is set'
claude --version
claude --debug-file /tmp/claude-gateway-debug.log
# 会话内运行 /status;分享日志前必须脱敏。確認した根本原因に修正を適用する
証拠で確定したレイヤーだけを最小限変更します。決定的な設定エラーを広範な再試行や検証無効化で隠さないでください。
- 01障害レイヤーを修正Messages resource path が一度だけ追加される root を設定します。
- 02必要な動作を復元credential variable と gateway header mapping を一致させます。
- 03一時回避策を除去対応済み model mapping を明示し、検証済み protocol capability だけを有効化します。
export ANTHROPIC_BASE_URL='https://<your-gateway-host>'
read -rsp 'Gateway token: ' ANTHROPIC_AUTH_TOKEN && printf '
'
export ANTHROPIC_AUTH_TOKEN
unset ANTHROPIC_API_KEY
claude
# 会话结束后:unset ANTHROPIC_AUTH_TOKEN一度の成功ではなく修正結果を検証する
最小確認が成功したら元の経路を再実行し、通常のストリーミング、同時実行数、タイムアウト条件でも安定することを確認します。
- 有効 Base URL に Messages path が一度だけ含まれる。
- 送信 auth header が gateway の期待と一致する。
- 各 Claude Code model 名が実対応 model ID に解決される。
- non-stream、stream、tool use が個別に成功する。
セキュリティ境界とエスカレーション資料
認証、通信、権限、検証を弱めず、かつ機密情報を公開しない範囲で、再現とエスカレーションに必要な証拠を収集します。
- environment 確認時に Claude・gateway credential を表示しない。
- model alias で別 model へ黙って downgrade しない。
- gateway 経由でも permission prompt と tool restriction を維持する。
- version、環境変数名、mapping、UTC 時刻、request ID を機密除去して共有する。
公式情報と検証範囲
本ガイドはプロトコル仕様とクライアント公式文書を根拠にしています。エラー文、再試行ヘッダー、設定項目はサービスやバージョンで変わるため、参照元を確認し、ログとリクエスト例を秘匿してから共有してください。
技術検証方法を見る