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 вашей организации. Проверьте, уже ли администратор его настроил, или установите базовый URL и учетные данные самостоятельно для CLI, VS Code, GitHub Actions и Agent SDK, затем проверьте соединение и исправьте ошибки шлюза.
8
9[Шлюз LLM](/ru/llm-gateway) — это прокси, который ваша организация запускает между Claude Code и поставщиком модели. Когда ваша организация использует его, Claude Code аутентифицируется на шлюзе с учетными данными, которые выдает ваша организация, вместо вашего личного входа claude.ai.
10
11Эта страница предназначена для разработчиков, запускающих Claude Code через шлюз, который управляет их организация. Она охватывает два пути: [проверка того, уже ли администратор его настроил для вас](#check-for-an-existing-configuration), и [самостоятельная настройка](#configure-claude-code-yourself), если он этого не сделал.
12
13<Note>
14 * Чтобы развернуть шлюз для вашей организации, см. [Развертывание шлюза LLM](/ru/llm-gateway-rollout)
15 * Для информации о том, что Claude Code отправляет на шлюз, см. [справочник протокола шлюза](/ru/llm-gateway-protocol)
16</Note>
17
18<h2 id="check-for-an-existing-configuration">
19 Проверка существующей конфигурации
20</h2>
21
22Администраторы могут распространять адрес шлюза и учетные данные через [управляемые параметры](/ru/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** и проверьте две строки:
31
32 * `Anthropic base URL`: эта строка появляется только при установке адреса шлюза. Если ее нет, Claude Code не указан на шлюз; [настройте его самостоятельно](#configure-claude-code-yourself) ниже.
33 * `Auth token` или `API key`: строка, называющая `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_API_KEY` или `apiKeyHelper`, подтверждает, что учетные данные шлюза активны. Строка `Login method`, называющая учетную запись claude.ai, означает, что учетные данные не были распространены; [установите их самостоятельно](#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
47Чтобы самостоятельно настроить Claude 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): две переменные, которые нужны каждому соединению с шлюзом
56* [Проверка соединения](#verify-the-connection): подтвердите, что оно работает, прежде чем что-либо сохранять
57* [Настройка каждой поверхности](#configure-each-surface): если вы используете поверхность, отличную от CLI Claude Code, такую как VS Code, см., как настроить ее с учетными данными шлюза
58* [Дополнительная конфигурация](#additional-configuration): переменные, которые некоторым шлюзам нужны помимо базового URL и учетных данных, такие как пользовательский заголовок, помощник учетных данных, обнаружение модели или базовый URL в формате поставщика. Устанавливайте их только если администратор их назвал
59
60<h3 id="set-the-credential-variable">
61 Установка переменной учетных данных
62</h3>
63
64Чтобы аутентифицировать Claude 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`; замените его на `ANTHROPIC_API_KEY`, если это [переменная, которую вы выбрали](#set-the-credential-variable). Вы можете установить их [в вашей оболочке](#set-as-shell-environment-variables), что длится один сеанс терминала, или [в файле параметров 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
110Чтобы конфигурация применялась везде, где работает Claude Code, без зависимости от вашей оболочки, установите переменные в блоке `env` [файла параметров](/ru/settings). Файлы параметров имеют разные области:
111
112* `~/.claude/settings.json` применяется ко всем вашим проектам. На Windows путь — `%USERPROFILE%\.claude\settings.json`
113* `.claude/settings.local.json` применяется к одному проекту. 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`, чтобы увидеть, какой базовый URL и источник учетных данных использует Claude Code.
131
132<h3 id="verify-the-connection">
133 Проверка соединения
134</h3>
135
136С переменными, экспортированными в вашей оболочке, отправьте однотокенный запрос на шлюз напрямую. Это подтверждает, что URL и учетные данные работают, прежде чем вы откроете Claude Code, поэтому сбой указывает на шлюз, а не на вашу конфигурацию. Команды ниже читают переменные оболочки, поэтому им нужны [экспорты оболочки](#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`, замените заголовок `Authorization` на `x-api-key: $ANTHROPIC_API_KEY` в команде Bash или запись таблицы хеша `"Authorization"` на `"x-api-key" = "$env:ANTHROPIC_API_KEY"` в команде PowerShell.
160
161Ответ JSON, начинающийся с `{"id":"msg_` и включающий поле `"content":[...]`, означает, что шлюз доступен и учетные данные работают. Ошибка, называющая неизвестную модель, все еще доказывает, что 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` вам предлагается один раз в интерактивном режиме одобрить ключ перед тем, как он возьмет верх.
184
185Запустите `/status`, чтобы подтвердить, какой источник учетных данных активен. Если при запуске показывается предупреждение о конфликте аутентификации, называющее два источника, см. первую строку [таблицы устранения неполадок](#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](/ru/vs-code) в `claudeCode.environmentVariables` в собственных параметрах пользователя VS Code, открытых командой **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Настольное приложение читает маршрутизацию шлюза из [конфигурации, распределяемой администратором](https://claude.com/docs/cowork/3p/gateway), а не из `ANTHROPIC_BASE_URL` или `settings.json`. Если ваша организация распределила ее, настольное приложение маршрутизирует через шлюз без каких-либо действий с вашей стороны; если нет, используйте терминальный CLI или расширение VS Code для сеансов шлюза. Администраторы распределяют конфигурацию, как описано в [развертывании организации](/ru/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](/ru/github-actions) читает `ANTHROPIC_BASE_URL` и `ANTHROPIC_CUSTOM_HEADERS` из блока `env` рабочего процесса. Передайте учетные данные как вход `anthropic_api_key` действия; действие устанавливает его как `ANTHROPIC_API_KEY`, поэтому он достигает шлюза в заголовке `x-api-key`.
221
222Для шлюза `x-api-key` установите базовый URL в `env` и передайте ключ шлюза как вход:
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
234Для шлюза bearer-token передайте один и тот же секрет как вход `anthropic_api_key` и `ANTHROPIC_AUTH_TOKEN` в блоке `env` рабочего процесса. Действие требует `anthropic_api_key`, `CLAUDE_CODE_OAUTH_TOKEN` или федерацию рабочей нагрузки перед запуском Claude Code, и оно не читает `ANTHROPIC_AUTH_TOKEN`, поэтому вход удовлетворяет эту проверку запуска, а переменная окружения помещает ключ в заголовок `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` и федерацию рабочей нагрузки, см. [Claude Code GitHub Actions](/ru/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](/ru/agent-sdk/overview) не имеет опций, специфичных для шлюза; он передает переменные окружения процессу Claude Code, который он порождает. Каждый SDK принимает опцию `env`, которая устанавливает окружение порожденного процесса, и SDK TypeScript и Python обрабатывают это по-разному:
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[Claude Code в Slack](/ru/slack) и [Claude Code на веб](/ru/claude-code-on-the-web) — это размещенные Anthropic продукты, которые всегда используют API Anthropic; они не являются частью развертывания шлюза. Переменные шлюза, установленные в конфигурации окружения облачного сеанса, не применяются. Если ваш трафик должен оставаться на шлюзе, не включайте эти поверхности для этих пользователей.
287
288[Remote Control](/ru/remote-control) и [голосовая диктовка](/ru/voice-dictation) оба полагаются на идентичность claude.ai: 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) требуют одного.
295
296<h3 id="send-additional-headers">
297 Отправка дополнительных заголовков
298</h3>
299
300Некоторые шлюзы маршрутизируют или помечают запросы, используя пользовательский заголовок в дополнение к учетным данным, например идентификатор клиента или ключ маршрутизации. Чтобы отправить один, установите [`ANTHROPIC_CUSTOM_HEADERS`](/ru/env-vars) с одной парой `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Вы также можете установить `ANTHROPIC_CUSTOM_HEADERS` в блоке `env` файла параметров. Используйте `\n` между парами там, так как строки JSON не могут охватывать несколько строк:
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_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` в вашей оболочке или в блоке `env` `~/.claude/settings.json`. Обнаружение требует Claude Code v2.1.129 или позже. {/* min-version: 2.1.129 */}
335
336Обнаруженные модели появляются как дополнительные записи `/model`, помеченные `From gateway`. Чтобы подтвердить, что обнаружение запустилось, запустите `claude --debug` и ищите строки `[gatewayDiscovery]`: успех регистрирует, сколько моделей было кэшировано, и `404`, timeout или перенаправление также записываются там. Для того, когда запускается обнаружение, что оно фильтрует и формат ответа, который обслуживают шлюзы, см. [справочник обнаружения модели](/ru/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, или администратор сказал вам настроить один. Если ваши учетные данные — это фиксированная строка, которую вы устанавливаете один раз, [переменная учетных данных](#set-the-credential-variable) — это все, что вам нужно, и вы можете пропустить этот раздел.
345
346Помощник — это любая команда оболочки, которая выводит текущие учетные данные на stdout. Claude Code запускает ее через вашу системную оболочку, поэтому на Windows это может быть исполняемый файл или вызов PowerShell. Напишите скрипт, сделайте его исполняемым и ссылайтесь на него из `apiKeyHelper` в вашем [файле параметров](/ru/settings):
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 Ссылайтесь на вызов PowerShell в `%USERPROFILE%\.claude\settings.json`, экранируя обратные косые черты в строке 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 кэширует вывод помощника в течение пяти минут по умолчанию и переустанавливает его, когда запрос возвращает HTTP 401. Чтобы изменить время жизни кэша, установите `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` в миллисекундах, например `CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000` на 15 минут.
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 на шлюз через переменную базового URL, специфичную для поставщика, вместо `ANTHROPIC_BASE_URL`. Шлюзы Bedrock и Vertex принимают собственные форматы запросов этих поставщиков; шлюзы Foundry и Claude Platform на AWS принимают формат Anthropic Messages и отличаются только тем, какая переменная базового URL их достигает.
392
393Используйте один только если команда шлюза специально назвала Bedrock, Vertex, Foundry или Claude Platform на AWS. Если [запрос проверки](#verify-the-connection) выше вернул JSON, вы можете пропустить этот раздел.
394
395Установите блок для поставщика, которого назвала команда шлюза. Переменные skip-auth говорят Claude Code не подписывать запросы с учетными данными поставщика, так как шлюз их держит. Если шлюзу нужен свой собственный токен, добавьте `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 Claude Platform на AWS
471</h4>
472
473См. [Claude Platform на AWS](/ru/claude-platform-on-aws) для ID рабочего пространства.
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| Предупреждение при запуске, называющее два источника учетных данных и заканчивающееся на `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)` или `(ECONNREFUSED)` из установок npm, часто после молчаливой паузы, пока Claude Code [повторяет с отступом](/ru/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| Ошибки `400`, называющие `context_management`, `Extra inputs are not permitted` или другие неузнанные поля | Шлюз пересылает запросы на вышестоящий, который отклоняет поля, которые Claude Code отправляет на конечные точки формата Anthropic | Установите `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, что подавляет большинство полей предварительного выпуска; см. [передача функций](/ru/llm-gateway-protocol#feature-pass-through). Некоторые бета-версии не управляются этим флагом; для них установите соответствующую переменную поставщика `CLAUDE_CODE_USE_*`, чтобы Claude Code отправлял только то, что этот поставщик принимает |
508| Ошибки `400`, называющие `thinking` или `adaptive`, такие как `Input tag 'adaptive' found` | Сборка вышестоящей модели не принимает адаптивное рассуждение, которое Claude Code запрашивает для моделей Claude 4.6 и позже | Обновите вышестоящий шлюз. На Opus 4.6 и Sonnet 4.6 вместо этого работает `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`. Переменные возможностей [конфигурации модели](/ru/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` | Шлюз применяет меньший контекст, чем собственное окно модели, и переписывает ошибку вышестоящего, поэтому автоматическое сжатие и повтор, которое соответствует формулировке `prompt is too long` Anthropic, не срабатывает | Запустите `/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) или добавьте имена с переменными [конфигурации модели](/ru/model-config) |
511| Claude Code просит вас войти, даже если [тест curl](#verify-the-connection) успешен | CLI не имеет собственных учетных данных: достижимый базовый URL не является одним, и блок `env` в `.claude/settings.json` или `.claude/settings.local.json` проекта применяется только после мастера первого запуска и подсказки доверия | Установите `ANTHROPIC_AUTH_TOKEN` где-то, где Claude Code читает перед первоначальной настройкой: экспорт оболочки, блок `env` в `~/.claude/settings.json` или управляемые параметры |
512| `ANTHROPIC_API_KEY` установлен, но игнорируется, без подсказки | Ключ требует одобрения один раз в интерактивных сеансах, и ранее отклоненный ключ игнорируется без повторного запроса | Включите его под `/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` из управляемых параметров, чтобы использовать учетные данные шлюза, или удалить учетные данные шлюза, чтобы использовать вход первой стороны. Эти два не могут быть объединены |
514| `403` с телом HTML, такое как `403 Forbidden`, когда собственные журналы шлюза не показывают полученный запрос | Веб-приложение брандмауэра или обратный прокси перед шлюзом заблокировал тело запроса перед тем, как оно достигло шлюза. Подсказки 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](/ru/network-config#ca-certificate-store) |
516
517Если Claude Code повторно просит вас войти после удаления конфигурации шлюза, причина обычно в хранилище учетных данных, а не в шлюзе; см. [ошибки аутентификации](/ru/errors#authentication-errors).
518
519<h2 id="related-resources">
520 Связанные ресурсы
521</h2>
522
523* [Обзор шлюзов LLM](/ru/llm-gateway): что такое шлюз и как он взаимодействует с подписками claude.ai
524* [Развертывание шлюза LLM для вашей организации](/ru/llm-gateway-rollout): контрольный список, обращенный к администратору, для развертывания и распределения конфигурации шлюза
525* [Справочник протокола шлюза](/ru/llm-gateway-protocol): что Claude Code отправляет на шлюз, включая заголовки и поля, которые шлюз должен пересылать
526* [Параметры](/ru/settings): где находятся файлы параметров и как читается блок `env`
527* [Аутентификация](/ru/authentication): как переменные учетных данных, `apiKeyHelper` и вход OAuth взаимодействуют