1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# Claude Code を LLM ゲートウェイに接続する
6
7> Claude Code を組織の LLM ゲートウェイに指定します。管理者がすでに設定しているかどうかを確認するか、CLI、VS Code、GitHub Actions、Agent SDK の基本 URL と認証情報を自分で設定してから、接続を確認し、ゲートウェイエラーを修正します。
8
9[LLM ゲートウェイ](/ja/llm-gateway)は、Claude Code とモデルプロバイダーの間に組織が実行するプロキシです。組織がゲートウェイを使用する場合、Claude Code は個人の claude.ai ログインではなく、組織が発行する認証情報を使用してゲートウェイに認証します。
10
11このページは、組織が運用するゲートウェイを通じて Claude Code を実行している開発者向けです。2 つのパスをカバーしています。[管理者がすでに設定しているかどうかを確認する](#check-for-an-existing-configuration)場合と、[設定していない場合に自分で設定する](#configure-claude-code-yourself)場合です。
12
13<Note>
14 * 組織用のゲートウェイをデプロイするには、[LLM ゲートウェイをロールアウトする](/ja/llm-gateway-rollout)を参照してください
15 * Claude Code がゲートウェイに送信する内容については、[ゲートウェイプロトコルリファレンス](/ja/llm-gateway-protocol)を参照してください
16</Note>
17
18<h2 id="check-for-an-existing-configuration">
19 既存の設定を確認する
20</h2>
21
22管理者は、[管理設定](/ja/settings#settings-files)、デバイス管理、または [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) を通じてゲートウェイアドレスと認証情報を配布できるため、Claude Code は起動時にそれらを取得し、設定する必要がありません。組織がすでにこれを行ったかどうかを確認するには:
23
24<Steps>
25 <Step title="Claude Code を起動する">
26 `claude` を実行します。ログイン画面ではなくセッションが開く場合、ゲートウェイ認証情報は配布されていません。以下の[自分で設定](#configure-claude-code-yourself)を参照してください。
27 </Step>
28
29 <Step title="Status タブを確認する">
30 Claude Code がログイン画面を表示せずにセッションを開始した場合、`/status` を実行し、**Status** タブを開いて、2 つの行を確認します:
31
32 * `Anthropic base URL`:この行はゲートウェイアドレスが設定されている場合にのみ表示されます。ない場合、Claude Code はゲートウェイを指していません。以下の[自分で設定](#configure-claude-code-yourself)を参照してください。
33 * `Auth token` または `API key`:`ANTHROPIC_AUTH_TOKEN`、`ANTHROPIC_API_KEY`、または `apiKeyHelper` という名前の行は、ゲートウェイ認証情報がアクティブであることを確認します。代わりに claude.ai アカウントという名前の `Login method` 行は、認証情報が配布されていないことを意味します。[自分で設定](#set-the-credential-variable)してください。
34 </Step>
35
36 <Step title="テストメッセージを送信する">
37 `/status` メニューを閉じて、Claude Code で任意のプロンプトを送信します。Claude からの通常の応答でエラーがない場合、ゲートウェイ接続が機能していることを確認します。
38 </Step>
39</Steps>
40
41`/status` メニューの両方の行が正しく見えるが、Claude へのメッセージが失敗する場合は、[トラブルシューティングテーブル](#troubleshoot-gateway-errors)を参照してください。
42
43<h2 id="configure-claude-code-yourself">
44 Claude Code を自分で設定する
45</h2>
46
47Claude Code をゲートウェイ用に自分で設定するには、ゲートウェイチームから以下が必要です:
48
49* ゲートウェイの基本 URL
50* 認証情報:キーまたはトークン文字列、またはそれを取得するコマンド
51 * ゲートウェイチームが認証情報の種類を指定しなかった場合、以下の[認証情報変数セクション](#set-the-credential-variable)で試すべきことをカバーしています
52
53以下のセクションは設定を順番にカバーしています:
54
55* [認証情報変数を設定する](#set-the-credential-variable)と[基本 URL を設定する](#set-the-base-url-and-credential):すべてのゲートウェイ接続に必要な 2 つの変数
56* [接続を確認する](#verify-the-connection):何かを永続化する前に機能することを確認します
57* [各サーフェスを設定する](#configure-each-surface):Claude Code CLI 以外のサーフェス(VS Code など)を使用している場合、ゲートウェイ認証情報で設定する方法を参照してください
58* [追加設定](#additional-configuration):基本 URL と認証情報を超えて一部のゲートウェイが必要とする変数(カスタムヘッダー、認証情報ヘルパー、モデル検出、またはプロバイダー形式の基本 URL など)。管理者が名前を付けた場合のみこれらを設定します
59
60<h3 id="set-the-credential-variable">
61 認証情報変数を設定する
62</h3>
63
64Claude Code をゲートウェイに認証するには、環境変数に認証情報を設定します。どの変数を使用するかは、ゲートウェイチームが何を言ったかによって異なります:
65
66| 認証情報を設定する場所 | 使用する場合 |
67| :------------------------------------------------------ | :------------------------------------------------------ |
68| `ANTHROPIC_AUTH_TOKEN` | ゲートウェイチームが'bearer token'または'Authorization header'と言った場合 |
69| `ANTHROPIC_API_KEY` | ゲートウェイチームが'API key'または'x-api-key'と言った場合 |
70| [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) | 認証情報がローテーションするか、ボルトから来る場合 |
71
72どの種類かを指定されなかった場合は、`ANTHROPIC_AUTH_TOKEN` を使用します。以下の[検証リクエスト](#verify-the-connection)は、切り替える必要があるかどうかを判断する方法を示しています。
73
74<h3 id="set-the-base-url-and-credential">
75 基本 URL と認証情報を設定する
76</h3>
77
78ゲートウェイの基本 URL と、上記で選択した認証情報変数を環境変数として設定します。例は `ANTHROPIC_AUTH_TOKEN` を使用しています。[選択した変数](#set-the-credential-variable)が `ANTHROPIC_API_KEY` の場合は、それに置き換えてください。[シェルで](#set-as-shell-environment-variables)設定できます(1 つのターミナルセッション用)、または [Claude Code 設定ファイルで](#set-in-a-settings-file)設定できます(Claude Code が実行されるすべての場所で永続化)。
79
80最初の接続の場合、シェルエクスポートから始めて、値を設定ファイルに移動する前に[検証リクエスト](#verify-the-connection)を実行してください。
81
82<h4 id="set-as-shell-environment-variables">
83 シェル環境変数として設定する
84</h4>
85
86ゲートウェイチームが提供した値に置き換えます:
87
88<Tabs>
89 <Tab title="Bash または Zsh">
90 ```bash theme={null}
91 export ANTHROPIC_BASE_URL=https://llm-gateway.example.com
92 export ANTHROPIC_AUTH_TOKEN=sk-gateway-key
93 ```
94 </Tab>
95
96 <Tab title="PowerShell">
97 ```powershell theme={null}
98 $env:ANTHROPIC_BASE_URL = "https://llm-gateway.example.com"
99 $env:ANTHROPIC_AUTH_TOKEN = "sk-gateway-key"
100 ```
101 </Tab>
102</Tabs>
103
104シェルエクスポートはそのターミナルセッションと、そこから開始されたプログラムにのみ適用されます。ドックまたはスタートメニューから起動されたエディターはそれらを見ません。新しいターミナル全体で永続化するには、同じ行をシェルプロファイル(`~/.zshrc`、`~/.bashrc`、PowerShell `$PROFILE` など)に追加するか、代わりに設定ファイルを使用してください。
105
106<h4 id="set-in-a-settings-file">
107 設定ファイルで設定する
108</h4>
109
110Claude Code が実行されるすべての場所で設定を適用し、シェルに依存しないようにするには、[設定ファイル](/ja/settings)の `env` ブロックで変数を設定します。設定ファイルはスコープが異なります:
111
112* `~/.claude/settings.json` はすべてのプロジェクトに適用されます。Windows ではパスは `%USERPROFILE%\.claude\settings.json` です
113* `.claude/settings.local.json` は 1 つのプロジェクトに適用されます。Claude Code はファイルを作成するときに gitignore に追加します。自分で作成する場合は、認証情報を誤ってコミットしないように、最初に gitignore に手動で追加してください
114
115<Warning>
116 プロジェクトの `.claude/settings.json` に認証情報を入れないでください。このファイルはコミットされ、リポジトリをクローンするすべての人と共有されます。
117</Warning>
118
119`env` ブロックはどちらのファイルでも同じように見えます:
120
121```json theme={null}
122{
123 "env": {
124 "ANTHROPIC_BASE_URL": "https://llm-gateway.example.com",
125 "ANTHROPIC_AUTH_TOKEN": "sk-gateway-key"
126 }
127}
128```
129
130シェルエクスポートと設定ファイルの `env` ブロックの両方が同じ変数を設定する場合、設定ファイルの値が適用されます。`/status` を実行して、Claude Code が使用している基本 URL と認証情報ソースを確認してください。
131
132<h3 id="verify-the-connection">
133 接続を確認する
134</h3>
135
136シェルで変数をエクスポートした状態で、ゲートウェイに 1 トークンのリクエストを直接送信します。これは Claude Code を開く前に URL と認証情報が機能することを確認するため、失敗はゲートウェイを指し、設定ではなく。以下のコマンドはシェル変数を読み取るため、設定ファイルに値を入れた場合でも[シェルエクスポート](#set-as-shell-environment-variables)が必要です。
137
138<Tabs>
139 <Tab title="Bash または Zsh">
140 ```bash theme={null}
141 curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \
142 -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
143 -H "anthropic-version: 2023-06-01" \
144 -H "content-type: application/json" \
145 -d '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
146 ```
147 </Tab>
148
149 <Tab title="PowerShell">
150 ```powershell theme={null}
151 Invoke-RestMethod -Method Post -Uri "$env:ANTHROPIC_BASE_URL/v1/messages" `
152 -Headers @{ "Authorization" = "Bearer $env:ANTHROPIC_AUTH_TOKEN"; "anthropic-version" = "2023-06-01" } `
153 -ContentType "application/json" `
154 -Body '{"model": "claude-sonnet-4-6", "max_tokens": 1, "messages": [{"role": "user", "content": "."}]}'
155 ```
156 </Tab>
157</Tabs>
158
159ゲートウェイが `x-api-key` ヘッダーのキーを期待する場合、Bash コマンドの `Authorization` ヘッダーを `x-api-key: $ANTHROPIC_API_KEY` に置き換えるか、PowerShell コマンドの `"Authorization"` ハッシュテーブルエントリを `"x-api-key" = "$env:ANTHROPIC_API_KEY"` に置き換えてください。
160
161`{"id":"msg_` で始まり、`"content":[...]` フィールドを含む JSON レスポンスは、ゲートウェイに到達可能で、認証情報が機能していることを意味します。不明なモデルという名前のエラーでも、ゲートウェイがリクエストを認証してからモデル名を拒否したため、URL と認証情報が機能していることを証明します。このテストのためにゲートウェイが提供するモデルを見つける必要はありません。`401` は認証情報が拒否されたことを意味します。変数を推測した場合は、もう一方に切り替えて再度エクスポートしてください。
162
163<h4 id="confirm-in-claude-code">
164 Claude Code で確認する
165</h4>
166
167同じシェルから `claude` を起動して、エクスポートを継承し、メッセージを送信して、`/status` を実行します。
168
169**Status** タブで、`Anthropic base URL` 行はゲートウェイアドレスを表示する必要があり、リクエストがそこにルーティングされていることを確認します。行がない場合、変数がセッションに到達しませんでした。`Auth token` または `API key` 行が設定した変数という名前は、保存された claude.ai ログインではなく、ゲートウェイ認証情報がアクティブであることを確認します。
170
171メッセージが失敗するか、`/status` がゲートウェイ URL を表示しない場合は、以下の[トラブルシューティングテーブル](#troubleshoot-gateway-errors)を参照してください。
172
173<h3 id="how-the-credential-variable-maps-to-a-header">
174 認証情報変数がヘッダーにマップされる方法
175</h3>
176
177各変数は認証情報を異なる HTTP ヘッダーで送信します:`ANTHROPIC_AUTH_TOKEN` は `Authorization: Bearer` で、`ANTHROPIC_API_KEY` は `x-api-key` で、`apiKeyHelper` は両方で。間違った変数の認証情報はゲートウェイが読まないヘッダーに到達し、リクエストは `401` で失敗します。検証リクエストが `401` を返した場合、もう一方の変数に切り替えて再度試してください。
178
179<h3 id="conflicts-with-an-existing-login">
180 既存のログインとの競合
181</h3>
182
183ゲートウェイ認証情報変数は、保存された claude.ai ログインまたは Console キーより優先されます。claude.ai ログインは保存されたままで、変数が設定されている間は使用されません。変数を設定解除すると、Claude Code はそれに戻ります。`ANTHROPIC_AUTH_TOKEN` では、変数は直ちに優先されます。`ANTHROPIC_API_KEY` では、キーが引き継ぐ前に、インタラクティブモードで 1 回承認するよう求められます。
184
185`/status` を実行して、どの認証情報ソースがアクティブかを確認します。起動が 2 つのソースという名前の認証競合警告を表示する場合は、[トラブルシューティングテーブル](#troubleshoot-gateway-errors)の最初の行を参照して、どちらを削除するかを確認してください。保存されたログインをクリアしてゲートウェイ認証情報のみを残すには、`/logout` を実行してください。
186
187<h2 id="configure-each-surface">
188 各サーフェスを設定する
189</h2>
190
191CLI は上記の環境変数と設定ファイルを読み取ります。他のサーフェスは VS Code 拡張機能、デスクトップアプリ、GitHub Actions、Agent SDK、Slack やウェブなどのクラウドサーフェスです。以下のセクションは、これらの設定が各サーフェスに到達するかどうかをカバーしています。
192
193<h3 id="vs-code-extension">
194 VS Code 拡張機能
195</h3>
196
197[VS Code 拡張機能](/ja/vs-code)のゲートウェイ変数を VS Code 独自のユーザー設定で `claudeCode.environmentVariables` に設定します。**Preferences: Open User Settings (JSON)** コマンドで開きます。拡張機能は起動前にこの設定から認証情報をチェックするため、ゲートウェイ認証情報の信頼できる場所です。`~/.claude/settings.json` の値は生成されたプロセスに到達しますが、拡張機能独自のログインチェックには到達しません。
198
199```json theme={null}
200{
201 "claudeCode.environmentVariables": [
202 { "name": "ANTHROPIC_BASE_URL", "value": "https://llm-gateway.example.com" },
203 { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-gateway-key" }
204 ]
205}
206```
207
208<h3 id="desktop-app">
209 デスクトップアプリ
210</h3>
211
212デスクトップアプリは、`ANTHROPIC_BASE_URL` または `settings.json` ではなく、[管理者配布設定](https://claude.com/docs/cowork/3p/gateway)からゲートウェイルーティングを読み取ります。組織がそれを配布している場合、デスクトップアプリはゲートウェイを通じてルーティングされ、設定は不要です。そうでない場合は、ゲートウェイセッションのためにターミナル CLI または VS Code 拡張機能を使用してください。管理者は[組織ロールアウト](/ja/llm-gateway-rollout#distribute-through-managed-settings)で説明されているように設定を配布します。
213
214デスクトップアプリが `Gateway was unreachable` を表示する場合、アプリは起動時に設定された基本 URL に到達できませんでした。URL とネットワークパスを上記の [curl テスト](#verify-the-connection)で確認してください。
215
216<h3 id="github-actions">
217 GitHub Actions
218</h3>
219
220[Claude Code GitHub Actions](/ja/github-actions) はワークフローの `env` ブロックから `ANTHROPIC_BASE_URL` と `ANTHROPIC_CUSTOM_HEADERS` を読み取ります。認証情報をアクションの `anthropic_api_key` 入力として渡します。アクションはそれを `ANTHROPIC_API_KEY` として設定するため、`x-api-key` ヘッダーでゲートウェイに到達します。
221
222`x-api-key` ゲートウェイの場合、`env` で基本 URL を設定し、ゲートウェイキーを入力として渡します:
223
224```yaml theme={null}
225env:
226 ANTHROPIC_BASE_URL: https://llm-gateway.example.com
227
228steps:
229 - uses: anthropics/claude-code-action@v1
230 with:
231 anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}
232```
233
234bearer token ゲートウェイの場合、同じシークレットをアクションの `anthropic_api_key` 入力とワークフロー `env` ブロックの `ANTHROPIC_AUTH_TOKEN` の両方として渡します。アクションは Claude Code を起動する前に `anthropic_api_key`、`CLAUDE_CODE_OAUTH_TOKEN`、またはワークロード ID フェデレーションが必要で、`ANTHROPIC_AUTH_TOKEN` を読み取らないため、入力はその起動チェックを満たし、env 変数はゲートウェイが読む `Authorization` ヘッダーにキーを入れます。`x-api-key` のコピーは無視されます:
235
236```yaml theme={null}
237env:
238 ANTHROPIC_BASE_URL: https://llm-gateway.example.com
239 ANTHROPIC_AUTH_TOKEN: ${{ secrets.GATEWAY_API_KEY }}
240
241steps:
242 - uses: anthropics/claude-code-action@v1
243 with:
244 anthropic_api_key: ${{ secrets.GATEWAY_API_KEY }}
245```
246
247アクションの他の認証オプション(`CLAUDE_CODE_OAUTH_TOKEN` やワークロード ID フェデレーションを含む)については、[Claude Code GitHub Actions](/ja/github-actions) とアクションの [README](https://github.com/anthropics/claude-code-action#readme) を参照してください。
248
249<h3 id="agent-sdk">
250 Agent SDK
251</h3>
252
253[Agent SDK](/ja/agent-sdk/overview) にはゲートウェイ固有のオプションはありません。生成する Claude Code プロセスに環境変数を渡します。各 SDK は生成されたプロセスの環境を設定する `env` オプションを受け入れ、TypeScript と Python SDK はそれを異なる方法で処理します:
254
255* TypeScript:生成されたプロセスはデフォルトで親環境を継承しますが、`options.env` を設定すると環境全体が置き換わります。ゲートウェイ変数を保つために `process.env` をそこに広げます。
256* Python:`ClaudeAgentOptions(env=...)` は継承された環境の上にマージされるため、親プロセスで設定されたゲートウェイ変数は広げずに通ります。
257
258<CodeGroup>
259 ```ts TypeScript theme={null}
260 const result = query({
261 prompt: "...",
262 options: {
263 env: {
264 ...process.env,
265 ANTHROPIC_BASE_URL: "https://llm-gateway.example.com",
266 ANTHROPIC_AUTH_TOKEN: process.env.GATEWAY_KEY,
267 },
268 },
269 })
270 ```
271
272 ```python Python theme={null}
273 options = ClaudeAgentOptions(
274 env={
275 "ANTHROPIC_BASE_URL": "https://llm-gateway.example.com",
276 "ANTHROPIC_AUTH_TOKEN": os.environ["GATEWAY_KEY"],
277 }
278 )
279 ```
280</CodeGroup>
281
282<h3 id="slack-web-and-remote-control">
283 Slack、ウェブ、Remote Control
284</h3>
285
286[Slack の Claude Code](/ja/slack) と [ウェブの Claude Code](/ja/claude-code-on-the-web) は、Anthropic がホストする製品で、常に Anthropic の API を使用します。ゲートウェイデプロイメントの一部ではありません。クラウドセッションの環境設定で設定されたゲートウェイ変数は適用されません。トラフィックがゲートウェイに留まる必要がある場合、これらのユーザーに対してこれらのサーフェスを有効にしないでください。
287
288[Remote Control](/ja/remote-control) と[音声ディクテーション](/ja/voice-dictation)は両方とも claude.ai ID に依存します。Remote Control はライブセッションをアカウントとペアリングし、音声ディクテーションは claude.ai トランスクリプションエンドポイントに到達します。`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` がアクティブな間は利用できません。どちらかを使用するには、ゲートウェイ認証情報を設定解除し、代わりに claude.ai でログインしてください。`/doctor` は設定解除する変数という名前を付けます。
289
290<h2 id="additional-configuration">
291 追加設定
292</h2>
293
294これらの設定は基本 URL と認証情報を超えるケースをカバーしています。管理者の指示または[トラブルシューティングテーブル](#troubleshoot-gateway-errors)が 1 つを呼び出す場合のみこれらを設定します。
295
296<h3 id="send-additional-headers">
297 追加ヘッダーを送信する
298</h3>
299
300一部のゲートウェイは、テナント識別子またはルーティングキーなど、認証情報に加えてカスタムヘッダーを使用してリクエストをルーティングまたはタグ付けします。1 つを送信するには、[`ANTHROPIC_CUSTOM_HEADERS`](/ja/env-vars) を 1 行あたり 1 つの `Name: Value` ペアで設定します。以下の例は `X-Org-Route` という名前のルーティングヘッダーを追加します:
301
302<Tabs>
303 <Tab title="Bash または Zsh">
304 ```bash theme={null}
305 export ANTHROPIC_CUSTOM_HEADERS="X-Org-Route: prod"
306 ```
307 </Tab>
308
309 <Tab title="PowerShell">
310 ```powershell theme={null}
311 $env:ANTHROPIC_CUSTOM_HEADERS = "X-Org-Route: prod"
312 ```
313 </Tab>
314</Tabs>
315
316設定ファイルの `env` ブロックで `ANTHROPIC_CUSTOM_HEADERS` を設定することもできます。JSON 文字列は複数行にまたがることができないため、ペア間で `\n` を使用します:
317
318```json theme={null}
319{
320 "env": {
321 "ANTHROPIC_CUSTOM_HEADERS": "X-Org-Route: prod\nX-Tenant: acme"
322 }
323}
324```
325
326<h3 id="add-gateway-models-to-the-model-picker">
327 ゲートウェイモデルをモデルピッカーに追加する
328</h3>
329
330モデル検出は起動時にゲートウェイにモデルリストをクエリし、それらの名前を組み込みエントリと一緒に `/model` ピッカーに追加します。
331
332ゲートウェイが Claude Code の組み込みリストにないモデル名を提供し、ピッカーから選択したい場合は、それを有効にします。組み込みモデルが使用するものである場合、検出は不要です。管理者は管理設定を通じてすでに有効にしている可能性があります。
333
334有効にするには、シェルまたは `~/.claude/settings.json` の `env` ブロックで `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` を設定します。検出には Claude Code v2.1.129 以降が必要です。{/* min-version: 2.1.129 */}
335
336検出されたモデルは `From gateway` というラベルの追加 `/model` エントリとして表示されます。検出が実行されたことを確認するには、`claude --debug` を起動して `[gatewayDiscovery]` 行を探します。成功はキャッシュされたモデル数をログに記録し、`404`、タイムアウト、またはリダイレクトもそこに記録されます。検出が実行される場合、フィルタリング内容、ゲートウェイが提供するレスポンス形式については、[モデル検出リファレンス](/ja/llm-gateway-protocol#model-discovery)を参照してください。
337
338<h3 id="rotate-credentials-with-apikeyhelper">
339 apiKeyHelper で認証情報をローテーションする
340</h3>
341
342`apiKeyHelper` は、静的環境変数から読み取る代わりに、ゲートウェイ認証情報を取得するために Claude Code が実行するコマンドです。
343
344認証情報がスケジュールで期限切れになる場合、ボルトまたは SSO コマンドから来る場合、または管理者が 1 つを設定するよう指示した場合、ヘルパーを使用します。認証情報が 1 回設定する固定文字列である場合、[認証情報変数](#set-the-credential-variable)がすべて必要で、このセクションをスキップできます。
345
346ヘルパーは現在の認証情報を stdout に出力するシェルコマンドです。Claude Code はシステムシェルを通じて実行するため、Windows ではそれは実行可能ファイルまたは PowerShell 呼び出しです。スクリプトを書き、実行可能にして、[設定ファイル](/ja/settings)の `apiKeyHelper` から参照します:
347
348<Tabs>
349 <Tab title="Bash または Zsh">
350 たとえば、ボルトから読み取るスクリプト:
351
352 ```bash theme={null}
353 #!/bin/bash
354 vault kv get -field=api_key secret/llm-gateway/claude-code
355 ```
356
357 `~/.claude/settings.json` でそのパスを参照します:
358
359 ```json theme={null}
360 {
361 "apiKeyHelper": "~/bin/get-gateway-key.sh"
362 }
363 ```
364 </Tab>
365
366 <Tab title="PowerShell">
367 たとえば、ボルトから読み取るスクリプト:
368
369 ```powershell theme={null}
370 vault kv get -field=api_key secret/llm-gateway/claude-code
371 ```
372
373 `%USERPROFILE%\.claude\settings.json` で PowerShell 呼び出しを参照し、JSON 文字列のバックスラッシュをエスケープします:
374
375 ```json theme={null}
376 {
377 "apiKeyHelper": "powershell -NoProfile -File C:\\scripts\\get-gateway-key.ps1"
378 }
379 ```
380 </Tab>
381</Tabs>
382
383Claude Code はデフォルトでヘルパーの出力を 5 分間キャッシュし、リクエストが HTTP 401 を返すときに再度実行します。キャッシュ有効期間を変更するには、`CLAUDE_CODE_API_KEY_HELPER_TTL_MS` をミリ秒で設定します。たとえば、15 分の場合は `CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000` です。
384
385ヘルパーの値は `Authorization` と `x-api-key` ヘッダーの両方で送信されるため、ゲートウェイがどちらのヘッダーを読むかに関わらず機能します。
386
387<h3 id="route-to-a-cloud-provider-through-a-gateway">
388 クラウドプロバイダーをゲートウェイ経由でルーティングする
389</h3>
390
391これらの設定は Claude Code を `ANTHROPIC_BASE_URL` の代わりにプロバイダー固有の基本 URL 変数を通じてゲートウェイに指定します。Bedrock と Vertex ゲートウェイはそれらのプロバイダーのネイティブリクエスト形式を受け入れます。Foundry と AWS 上の Claude Platform ゲートウェイは Anthropic Messages 形式を受け入れ、どの基本 URL 変数がそれらに到達するかでのみ異なります。
392
393ゲートウェイチームが Bedrock、Vertex、Foundry、または AWS 上の Claude Platform という名前を付けた場合のみ 1 つを使用します。上記の[検証リクエスト](#verify-the-connection)が JSON を返した場合、このセクションをスキップできます。
394
395ゲートウェイチームが名前を付けたプロバイダーのブロックを設定します。skip-auth 変数は Claude Code にプロバイダー認証情報でリクエストに署名しないよう指示します。ゲートウェイがそれらを保持しているため。ゲートウェイが独自のトークンが必要な場合、Foundry を除いて、ブロックの後に `ANTHROPIC_AUTH_TOKEN` を追加します。Foundry は示されているように `ANTHROPIC_FOUNDRY_API_KEY` を使用します。
396
397<h4 id="amazon-bedrock">
398 Amazon Bedrock
399</h4>
400
401<Tabs>
402 <Tab title="Bash または Zsh">
403 ```bash theme={null}
404 export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock
405 export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1
406 export CLAUDE_CODE_USE_BEDROCK=1
407 ```
408 </Tab>
409
410 <Tab title="PowerShell">
411 ```powershell theme={null}
412 $env:ANTHROPIC_BEDROCK_BASE_URL = "https://llm-gateway.example.com/bedrock"
413 $env:CLAUDE_CODE_SKIP_BEDROCK_AUTH = "1"
414 $env:CLAUDE_CODE_USE_BEDROCK = "1"
415 ```
416 </Tab>
417</Tabs>
418
419<h4 id="google-vertex-ai">
420 Google Vertex AI
421</h4>
422
423<Tabs>
424 <Tab title="Bash または Zsh">
425 ```bash theme={null}
426 export ANTHROPIC_VERTEX_BASE_URL=https://llm-gateway.example.com/vertex
427 export ANTHROPIC_VERTEX_PROJECT_ID=your-gcp-project-id
428 export CLAUDE_CODE_SKIP_VERTEX_AUTH=1
429 export CLAUDE_CODE_USE_VERTEX=1
430 export CLOUD_ML_REGION=us-east5
431 ```
432 </Tab>
433
434 <Tab title="PowerShell">
435 ```powershell theme={null}
436 $env:ANTHROPIC_VERTEX_BASE_URL = "https://llm-gateway.example.com/vertex"
437 $env:ANTHROPIC_VERTEX_PROJECT_ID = "your-gcp-project-id"
438 $env:CLAUDE_CODE_SKIP_VERTEX_AUTH = "1"
439 $env:CLAUDE_CODE_USE_VERTEX = "1"
440 $env:CLOUD_ML_REGION = "us-east5"
441 ```
442 </Tab>
443</Tabs>
444
445<h4 id="microsoft-foundry">
446 Microsoft Foundry
447</h4>
448
449ゲートウェイの認証情報を `ANTHROPIC_FOUNDRY_API_KEY` に入れます。`x-api-key` ヘッダーとしてゲートウェイに送信されます。`CLAUDE_CODE_SKIP_FOUNDRY_AUTH` はここでは適用されません。API キーがないと、Foundry クライアントはマシンを離れる前にすべてのリクエストに失敗します。
450
451<Tabs>
452 <Tab title="Bash または Zsh">
453 ```bash theme={null}
454 export ANTHROPIC_FOUNDRY_BASE_URL=https://llm-gateway.example.com/foundry
455 export ANTHROPIC_FOUNDRY_API_KEY=sk-gateway-key
456 export CLAUDE_CODE_USE_FOUNDRY=1
457 ```
458 </Tab>
459
460 <Tab title="PowerShell">
461 ```powershell theme={null}
462 $env:ANTHROPIC_FOUNDRY_BASE_URL = "https://llm-gateway.example.com/foundry"
463 $env:ANTHROPIC_FOUNDRY_API_KEY = "sk-gateway-key"
464 $env:CLAUDE_CODE_USE_FOUNDRY = "1"
465 ```
466 </Tab>
467</Tabs>
468
469<h4 id="claude-platform-on-aws">
470 AWS 上の Claude Platform
471</h4>
472
473ワークスペース ID については、[AWS 上の Claude Platform](/ja/claude-platform-on-aws) を参照してください。
474
475<Tabs>
476 <Tab title="Bash または Zsh">
477 ```bash theme={null}
478 export ANTHROPIC_AWS_BASE_URL=https://llm-gateway.example.com/anthropic-aws
479 export ANTHROPIC_AWS_WORKSPACE_ID=wrkspc_01ABCDEFGHIJKLMN
480 export CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH=1
481 export CLAUDE_CODE_USE_ANTHROPIC_AWS=1
482 ```
483 </Tab>
484
485 <Tab title="PowerShell">
486 ```powershell theme={null}
487 $env:ANTHROPIC_AWS_BASE_URL = "https://llm-gateway.example.com/anthropic-aws"
488 $env:ANTHROPIC_AWS_WORKSPACE_ID = "wrkspc_01ABCDEFGHIJKLMN"
489 $env:CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH = "1"
490 $env:CLAUDE_CODE_USE_ANTHROPIC_AWS = "1"
491 ```
492 </Tab>
493</Tabs>
494
495<h2 id="troubleshoot-gateway-errors">
496 ゲートウェイエラーのトラブルシューティング
497</h2>
498
499これらはゲートウェイを通じて Claude Code を実行する場合の最も一般的なエラーで、ゲートウェイ側の原因と修正方法です:
500
501| エラー | 原因 | 修正 |
502| :------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
503| 2 つの認証情報ソースという名前の起動警告で、`auth may not work as expected` で終わります。古いバージョンは代わりに `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` を表示します。 | ゲートウェイ認証情報と保存されたログインの両方がアクティブです。変数はリクエストに使用されますが、古いログインは予期しない認証動作を引き起こす可能性があります | 変数を設定解除して保存されたログインを使用するか、`/logout` を実行してゲートウェイ認証情報を使用します |
504| 無効または認識されないトークンという名前の `401` エラー | 認証情報はゲートウェイが発行したものではないか、ゲートウェイが読むヘッダーにあります | [認証情報テーブル](#set-the-credential-variable)で変数が認証情報の種類と一致することを確認し、ゲートウェイで失効した場合はキーを再生成します |
505| `Unable to connect to API (ConnectionRefused)`、または npm インストールからの `(ECONNREFUSED)`。多くの場合、Claude Code が[バックオフで再試行](/ja/errors#automatic-retries)している間の静かな一時停止の後 | 基本 URL で何も応答しません。アドレスが間違っているか、VPN またはファイアウォールがゲートウェイへのパスをブロックしています | 上記の [curl テスト](#verify-the-connection)を実行します。これは同じ原因で直ちに失敗し、URL とネットワークパスをゲートウェイチームで確認します |
506| `API returned an empty or malformed response (HTTP 200)` | ゲートウェイまたは中間プロキシが非 API レスポンス(多くの場合 HTML エラーまたはログインページ)を返しました | 上記の [curl リクエスト](#verify-the-connection)でテストします。非 JSON を返すゲートウェイルートを修正します |
507| `context_management`、`Extra inputs are not permitted`、または他の認識されないフィールドという名前の `400` エラー | ゲートウェイは Anthropic 形式エンドポイントに Claude Code が送信するフィールドを拒否する上流にリクエストを転送します | `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` を設定します。これはほとんどのプレリリースフィールドを抑制します。[機能パススルー](/ja/llm-gateway-protocol#feature-pass-through)を参照してください。一部のベータはこのフラグでゲートされていません。それらについては、一致する `CLAUDE_CODE_USE_*` プロバイダー変数を設定して、Claude Code がそのプロバイダーが受け入れるもののみを送信するようにします |
508| `thinking` または `adaptive` という名前の `400` エラー(`Input tag 'adaptive' found` など) | 上流モデルビルドは Claude Code が Claude 4.6 以降のモデルに要求する適応推論を受け入れません | ゲートウェイの上流をアップグレードします。Opus 4.6 と Sonnet 4.6 では、代わりに `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` が機能します。[モデル設定](/ja/model-config)機能変数は、`CLAUDE_CODE_USE_BEDROCK` や `CLAUDE_CODE_USE_VERTEX` などのプロバイダー設定にのみ適用され、`ANTHROPIC_BASE_URL` ゲートウェイの背後には適用されません |
509| ゲートウェイ独自の言葉でコンテキストまたはトークン制限を述べる `400` エラー(`ContextWindowExceededError` または `prompt token count of N exceeds the limit of M` など) | ゲートウェイはモデルのネイティブウィンドウより小さいコンテキストを強制し、上流エラーを書き直すため、Anthropic の `prompt is too long` 表現と一致する自動コンパクト再試行は発火しません | `/compact` を実行してセッションを復旧します。防ぐには、`CLAUDE_CODE_AUTO_COMPACT_WINDOW` をゲートウェイの制限に設定します。値は少なくとも 100,000 トークン、最大でもモデルのコンテキストウィンドウにクランプされるため、100,000 未満のゲートウェイ制限は一致できず、`/compact` はそこでの復旧のままです。また、`CLAUDE_CODE_MAX_OUTPUT_TOKENS` をゲートウェイモデルの出力制限より下に設定します |
510| `/model` ピッカーから欠落しているモデル | ゲートウェイモデル名は Claude Code の組み込みリストにありません | [ゲートウェイモデル検出](#add-gateway-models-to-the-model-picker)を有効にするか、[モデル設定](/ja/model-config)変数で名前を追加します |
511| Claude Code は [curl テスト](#verify-the-connection)が成功しても、ログインするよう求めます | CLI には独自の認証情報がありません。到達可能な基本 URL は 1 つではなく、プロジェクトの `.claude/settings.json` または `.claude/settings.local.json` の `env` ブロックは最初の実行ウィザードと信頼プロンプトの後にのみ適用されます | `ANTHROPIC_AUTH_TOKEN` をどこかに設定します。Claude Code は最初の実行セットアップの前に読み取ります。シェルエクスポート、`~/.claude/settings.json` の `env` ブロック、または管理設定 |
512| `ANTHROPIC_API_KEY` が設定されていますが、プロンプトなしで無視されます | キーはインタラクティブセッションで 1 回の承認が必要で、以前に拒否されたキーは再度尋ねられずに無視されます | `/config` で `Use custom API key` オプションで有効にします |
513| `This machine's managed settings require a first-party login` | 管理設定に `forceLoginMethod` または `forceLoginOrgUUID` が含まれています。Claude Code v2.1.146 以降では、`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、または `apiKeyHelper` と共存できません | 管理者は管理設定から `forceLoginMethod` と `forceLoginOrgUUID` を削除してゲートウェイ認証情報を使用するか、ゲートウェイ認証情報を削除してファーストパーティログインを使用する必要があります。2 つは組み合わせることはできません |
514| `403` と HTML 本体(`403 Forbidden` など)。ゲートウェイ独自のログに受信したリクエストがない場合 | ゲートウェイの前の Web アプリケーションファイアウォールまたはリバースプロキシがゲートウェイに到達する前にリクエスト本体をブロックしました。Claude Code プロンプトには XML スタイルタグとソースコードが含まれており、クロスサイトスクリプティング本体ルールと一致するため、短い curl テストは成功しますが、実際のセッションは成功しません | ゲートウェイの `/v1/messages` パスをリクエスト本体検査から除外します。AWS WAF ではこれは `CrossSiteScripting_Body` マネージドルールです。nginx と ModSecurity では、同等の OWASP CRS 本体ルールです |
515| 証明書または TLS エラー(`SSL certificate verification failed` または `Self-signed certificate detected` など)。[curl テスト](#verify-the-connection)が成功する場合 | Claude Code のランタイムは `curl` が使用するのと同じ認証局を信頼していません。一般的に企業 TLS 検査プロキシの背後 | `NODE_EXTRA_CA_CERTS` を CA バンドルパスに設定します。[CA 証明書ストア](/ja/network-config#ca-certificate-store)を参照してください |
516
517ゲートウェイ設定を削除した後、Claude Code が繰り返しログインするよう求める場合、原因は通常、ゲートウェイではなく認証情報ストレージです。[認証エラー](/ja/errors#authentication-errors)を参照してください。
518
519<h2 id="related-resources">
520 関連リソース
521</h2>
522
523* [LLM ゲートウェイの概要](/ja/llm-gateway):ゲートウェイとは何か、および claude.ai サブスクリプションとどのように相互作用するか
524* [組織用の LLM ゲートウェイをロールアウトする](/ja/llm-gateway-rollout):ゲートウェイをデプロイして配布するための管理者向けチェックリスト
525* [ゲートウェイプロトコルリファレンス](/ja/llm-gateway-protocol):Claude Code がゲートウェイに送信するもの。ゲートウェイが転送する必要があるヘッダーとフィールドを含む
526* [設定](/ja/settings):設定ファイルが存在する場所と `env` ブロックがどのように読み取られるか
527* [認証](/ja/authentication):認証情報変数、`apiKeyHelper`、OAuth ログインがどのように相互作用するか