SpyBara
Go Premium

Documentation 2026-07-28 23:57 UTC to 2026-07-29 19:02 UTC

5 files changed +620 −63. View all changes and history on the product overview
2026
Wed 29 19:02 Tue 28 23:57 Mon 27 21:02 Sun 26 19:02 Sat 25 21:59 Fri 24 23:01 Thu 23 23:57 Wed 22 23:59 Tue 21 23:00 Mon 20 23:01 Sat 18 16:02 Fri 17 22:57 Thu 16 22:59 Wed 15 22:00 Tue 14 23:01 Mon 13 23:57 Sat 11 19:03 Fri 10 17:00 Thu 9 23:58 Wed 8 16:02 Tue 7 16:02 Mon 6 23:57 Sat 4 03:01 Fri 3 23:00 Thu 2 23:59 Wed 1 21:01

claude-apps-gateway.md +351 −0 created

Details

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 apps для Amazon Bedrock, Claude Platform на AWS, Google Cloud и Microsoft Foundry

6 

7> Запускайте Claude Code через Amazon Bedrock, Claude Platform на AWS, Google Cloud или Microsoft Foundry за самостоятельно размещаемым шлюзом с входом SSO, доступом к моделям по группам и телеметрией OTLP.

8 

9<Note>

10 Шлюз Claude apps предназначен для организаций, которые должны — или предпочитают — маршрутизировать вывод через своего поставщика облачных услуг, например для соответствия требованиям [резидентности данных](/docs/ru/claude-apps-gateway-deploy#compliance-posture). Если у вас нет этого требования и вы хотите получить доступ к другим функциям, таким как подготовка SCIM или Claude Code в веб-версии и мобильных приложениях, Claude Enterprise может быть лучшим вариантом. Полное сравнение всех методов развертывания см. на странице [доступности функций](/docs/ru/feature-availability).

11</Note>

12 

13Claude apps gateway — это самостоятельно размещаемый сервис, который находится между клиентами Claude Code ваших разработчиков и вашим поставщиком модели. Разработчики входят с помощью вашего корпоративного поставщика удостоверений (IdP) вместо того, чтобы хранить ключи API или учетные данные облака. Шлюз хранит учетные данные вышестоящего уровня, обеспечивает доступ к модели и [управляемые параметры](/docs/ru/permissions#managed-settings) по группам IdP и передает телеметрию использования в ваш собственный стек наблюдаемости.

14 

15Он включен в двоичный файл `claude`, поэтому тот же исполняемый файл, который запускает Claude Code на ноутбуке, запускает сервер шлюза с помощью `claude gateway --config gateway.yaml`.

16 

17На этой странице рассматривается:

18 

19* [Почему Claude apps gateway](#why-claude-apps-gateway), что он добавляет по сравнению с самостоятельным запуском и когда что-то другое подходит лучше

20* [Быстрый старт](#quickstart) с [предварительными требованиями](#prerequisites), который переводит шлюз от нуля к вошедшему разработчику

21* [Подключение разработчиков](#connect-developers), включая установку URL шлюза через управляемые параметры

22* [Доступность и ограничения](#availability-and-limitations), охватывающие какие функции Claude Code работают через шлюз и что поддерживает сервер

23 

24Дополнительные страницы углубляются в детали. [Справочник по конфигурации](/docs/ru/claude-apps-gateway-config) охватывает каждый параметр в файле YAML, который пишет быстрый старт, а [руководство по развертыванию](/docs/ru/claude-apps-gateway-deploy) охватывает настройку для каждого IdP, развертывание Kubernetes и Cloud Run, а также операции.

25 

26<h2 id="why-claude-apps-gateway">

27 Почему Claude apps gateway

28</h2>

29 

30[Обзор шлюза](/docs/ru/gateways) охватывает, что делает шлюз и почему вы бы его запустили. Claude apps gateway — это собственный шлюз Anthropic, встроенный в двоичный файл `claude` и протестированный вместе с каждым выпуском Claude Code, поэтому он пересылает заголовки и поля запроса, которые отправляет Claude Code, без того, чтобы операторы поддерживали отдельный список разрешений. После развёртывания он даёт вам:

31 

32* **Учётные данные**: ключ API вышестоящего уровня или учётные данные облака существуют только в вашей инфраструктуре. Разработчики аутентифицируются с помощью корпоративного SSO и получают краткосрочные токены-носители, поэтому отключение происходит в вашем IdP. Отключите пользователя, и его доступ к шлюзу истекает в течение времени жизни сеанса, по умолчанию один час.

33* **Контроль доступа**: ваши группы IdP сопоставляются со списками разрешённых моделей и политиками [управляемых параметров](/docs/ru/permissions#managed-settings). Шлюз обеспечивает доступ к модели на стороне сервера, отклоняя запросы для неразрешённых моделей, и выбирает политику управляемых параметров каждой группы, которую CLI применяет на [уровне управляемых параметров](/docs/ru/settings#settings-precedence). Разные команды получают разные модели, инструменты и разрешения, и разработчик не может переопределить то, что его политика блокирует.

34* **Доставка параметров**: шлюз доставляет управляемые параметры подписанным клиентам сам, занимая место [параметров, управляемых сервером](/docs/ru/server-managed-settings) из консоли администратора claude.ai.

35* **Телеметрия**: каждое настроенное назначение, такое как Datadog, Splunk или ClickHouse, получает [метрики OpenTelemetry Protocol (OTLP)](/docs/ru/monitoring-usage) с подсчётом токенов, моделью, идентификацией пользователя и задержкой по умолчанию, с журналами и трассировками как дополнительные параметры для каждого назначения.

36* **Маршрутизация вышестоящего уровня**: клиенты говорят API Anthropic Messages с шлюзом, и шлюз переводит для каждого вышестоящего уровня, будь то Amazon Bedrock, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), Agent Platform Google Cloud, Microsoft Foundry или API Anthropic, с отказоустойчивостью между ними. Вы можете менять регионы, поставщиков или порядок отказоустойчивости без того, чтобы разработчики замечали или переконфигурировали.

37 

38<Frame>

39 <img src="https://mintcdn.com/claude-code/st9_ZQOFsZa3cKFl/images/claude-gateway-architecture.svg?fit=max&auto=format&n=st9_ZQOFsZa3cKFl&q=85&s=560770d8f49bbd6f1ca7090ed1f13c03" alt="Диаграмма, показывающая клиентов Claude Code, подключающихся по HTTPS с токенами-носителями к самостоятельно размещённому Claude apps gateway внутри вашей инфраструктуры, который входит пользователей в ваш IdP, хранит состояние аутентификации в PostgreSQL, передаёт телеметрию вашему сборщику OTLP и пересылает вывод в Amazon Bedrock, Claude Platform on AWS, Google Cloud, Microsoft Foundry или API Anthropic" width="760" height="320" data-path="images/claude-gateway-architecture.svg" />

40</Frame>

41 

42<Note>

43 Плоскость данных самого шлюза не отправляет ничего в инфраструктуру Anthropic, если API Anthropic не является настроенным вышестоящим уровнем. Вы контролируете, куда идут телеметрия, журналы аудита, управляемые параметры и идентификация IdP ваших разработчиков, и шлюз не отправляет ни одно из них в Anthropic. Для оставшегося трафика процесс CLI может отправлять и как его закрыть, см. [Позиция соответствия](/docs/ru/claude-apps-gateway-deploy#compliance-posture).

44</Note>

45 

46Для того, какие функции Claude Code работают через шлюз и что сам сервер поддерживает, см. [Доступность и ограничения](#availability-and-limitations) ниже. Для решений, таких как стоимость, обход, запуск нескольких шлюзов и бессерверные платформы, см. [руководство по развёртыванию](/docs/ru/claude-apps-gateway-deploy#deployment).

47 

48<h3 id="other-gateway-implementations">

49 Другие реализации шлюза

50</h3>

51 

52Если вы уже запускаете шлюз LLM или шлюз API, который соответствует вашим потребностям, продолжайте его использовать; [Другие шлюзы LLM](/docs/ru/llm-gateway) охватывает конфигурирование Claude Code против него.

53 

54[Справочник протокола шлюза](/docs/ru/llm-gateway-protocol) документирует контракт, который Claude Code ожидает от любого шлюза: конечные точки, которые он вызывает, заголовки и поля тела для пересылки, и что перестаёт работать, когда они удаляются. Работающий Claude apps gateway служит надмножеством этого контракта в `GET /protocol`, добавляя конечные точки Claude apps gateway для входа SSO, доставки управляемых параметров и телеметрии. Получите его с помощью `curl https://claude-gateway.internal.example.com/protocol` из любого развёрнутого шлюза, такого как тот, который производит [быстрый старт](#quickstart) ниже. Критические изменения протокола объявляются заранее, но неопределённая обратная совместимость не гарантируется.

55 

56<h2 id="quickstart">

57 Быстрый старт

58</h2>

59 

60Этот быстрый старт проходит минимальный путь: зарегистрируйте клиент OAuth в вашем IdP, напишите `gateway.yaml`, запустите шлюз вместе с Postgres с помощью Docker Compose и проверьте вход от конца к концу. Он использует вышестоящий уровень Amazon Bedrock; Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry и API Anthropic одинаково поддерживаются путём замены блока `upstreams`, как показано в [справочнике конфигурации](/docs/ru/claude-apps-gateway-config#upstreams). В конце у вас есть шлюз, к которому разработчик может выполнить `/login`.

61 

62<Note>

63 **Развёртывайте в вашей частной сети.** Claude Code подключается только к шлюзу, адрес которого является частным. Это охранник безопасности, потому что доверенный шлюз может отправлять параметры, которые запускают команды на машинах разработчиков. Поместите шлюз за внутренним балансировщиком нагрузки или VPN и дайте ему имя хоста, которое разрешается только в частные IP-адреса.

64 

65 Общедоступные конечные точки шлюза, управляемые Anthropic, являются исключением: `/login` принимает их по `https://`. Это небольшой фиксированный набор шлюзов, которыми управляет сама Anthropic; они не являются вариантом развёртывания, который вы можете выбрать или настроить. Список скомпилирован в Claude Code, поэтому никакая конфигурация не может добавить имя хоста в него и ни один шлюз, который вы размещаете, не соответствует исключению. {/* min-version: 2.1.206 */}До версии 2.1.206 `/login` отклонял эти конечные точки, как и любой другой общедоступный адрес.

66</Note>

67 

68<h3 id="prerequisites">

69 Предварительные требования

70</h3>

71 

72Имейте это на месте перед началом:

73 

74| Вам нужно | Детали |

75| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

76| Claude Code v2.1.195 или позже | Подкоманда `claude gateway` и поток входа шлюза поставляются в v2.1.195. Более ранние общедоступные сборки их не включают. Как машина, запускающая сервер шлюза, так и машина каждого разработчика должны быть на v2.1.195 или позже; запустите `claude update`, чтобы получить последний выпуск. {/* min-version: 2.1.198 */}[Claude Platform on AWS upstream](/docs/ru/claude-apps-gateway-config#claude-platform-on-aws) требует Claude Code v2.1.198 или позже на сервере шлюза. |

77| Поставщик удостоверений OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak или Dex, или любой другой совместимый с OIDC IdP, такой как PingFederate. Шлюз запускает стандартное обнаружение OIDC и поток кода авторизации против него. SAML и LDAP не поддерживаются. |

78| PostgreSQL 14 или позже | Поддерживает поток входа устройства, где обратный вызов браузера пишет, а опрашивающий CLI читает, плюс счётчики ограничения скорости. Любой управляемый Postgres работает, включая самый маленький уровень. Без настроенных ограничений расходов шлюз хранит несколько КБ краткосрочного состояния аутентификации; с [ограничениями расходов](/docs/ru/claude-apps-gateway-spend-limits) он также содержит долговечные таблицы расходов, аудита и идентификации, которые должны быть скопированы. TLS через `?sslmode=require` рекомендуется. |

79| Вышестоящий уровень модели | Учётные данные Amazon Bedrock, учётные данные Claude Platform on AWS, учётные данные Google Cloud, ресурс Microsoft Foundry или ключ API Anthropic. Поддерживаются несколько вышестоящих уровней с отказоустойчивостью. |

80| HTTPS | Шлюз должен быть доступен по `https://` с ноутбуков разработчиков и из любого браузера, используемого для входа; шлюз служит страницей проверки устройства на том же слушателе. Либо предоставьте сертификат TLS через `listen.tls`, либо запустите позади завершающего TLS входа и установите `listen.public_url`. Простое происхождение `http://` принимается только на loopback для локальной разработки. |

81| Адрес частной сети | При `/login` Claude Code требует, чтобы имя хоста или IP-адрес шлюза разрешались только в частные адреса: RFC 1918, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` или loopback для локальной разработки. Проверка выполняется на каждом разрешённом IP, поэтому если какой-либо адрес, на который разрешается имя, является общедоступным, `/login` отклоняет URL. Если машины разработчиков маршрутизируют HTTPS через корпоративный прокси, вход также требует, чтобы хост прокси разрешался в частные адреса; если это не так, добавьте хост шлюза в `NO_PROXY`, чтобы CLI подключался напрямую. {/* min-version: 2.1.206 */}Общедоступные конечные точки шлюза, управляемые Anthropic, освобождены от проверок частного адреса и прокси: `/login` принимает их по `https://` по точному совпадению имени хоста, поэтому требование частной сети применяется только к шлюзу, который вы размещаете сами. До версии 2.1.206 `/login` отклонял конечную точку, управляемую Anthropic, как и любой другой общедоступный адрес. |

82| Среда выполнения Linux | Сервер шлюза работает только на собственном двоичном файле Linux. macOS работает для локальной разработки. Windows не поддерживается как платформа сервера. |

83 

84Сервер шлюза требует собственный двоичный файл `claude`; загрузите закреплённый выпуск, как описано в [Установка Claude Code](/docs/ru/setup). Сервер использует функции среды выполнения, которые недоступны, когда Claude Code работает под Node. Если вы видите `requires the native binary` при загрузке, переключитесь на один из методов автономной установки.

85 

86<h3 id="steps">

87 Шаги

88</h3>

89 

90<Steps>

91 <Step title="Зарегистрируйте клиент OAuth в вашем IdP">

92 Сначала решите имя хоста шлюза, потому что URI перенаправления должен ему соответствовать. Создайте новое веб-приложение OIDC и установите URI перенаправления на `https://claude-gateway.<your-domain>/oauth/callback`, где хост — это то же значение, которое вы установили как [`listen.public_url`](/docs/ru/claude-apps-gateway-config#listen) на шаге 3. Запишите `client_id` и `client_secret`. Инструкции для каждого IdP находятся в [Настройка поставщика удостоверений](/docs/ru/claude-apps-gateway-deploy#identity-provider-setup).

93 </Step>

94 

95 <Step title="Подготовьте базу данных PostgreSQL">

96 Любой Postgres 14 или позже работает, включая самый маленький управляемый уровень. Шлюз запускает свои собственные миграции схемы при загрузке, поэтому пользователю базы данных нужно разрешение `CREATE TABLE`. Если ваша политика безопасности запрещает DDL из ролей приложения, предварительно создайте схему вместо этого; см. [`store`](/docs/ru/claude-apps-gateway-config#store).

97 </Step>

98 

99 <Step title="Напишите gateway.yaml">

100 Секреты читаются через расширение `${ENV_VAR}`, поэтому сам файл может находиться в системе управления версиями. Используйте имя хоста `public_url`, которое разрешается в частный IP в вашей сети, потому что `/login` отклоняет общедоступные адреса. Минимальная конфигурация имеет пять разделов, и каждое другое поле имеет значение по умолчанию:

101 

102 ```yaml gateway.yaml theme={null}

103 listen:

104 host: 0.0.0.0

105 port: 8080

106 # Требуется позади любого завершающего TLS входа. Используется для IdP

107 # redirect_uri и документа обнаружения.

108 public_url: https://claude-gateway.internal.example.com

109 

110 oidc:

111 issuer: https://login.example.com # должен служить /.well-known/openid-configuration

112 client_id: 0oa1example2

113 client_secret: ${OIDC_CLIENT_SECRET}

114 allowed_email_domains: [example.com] # отклонять id_tokens вне вашей организации

115 userinfo_fallback: true # для IdPs, чьи id_token опускают email/groups; безвредно в противном случае

116 

117 session:

118 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32

119 ttl_hours: 1 # также ограничивает задержку отзыва при отключении IdP

120 

121 store:

122 postgres_url: ${GATEWAY_POSTGRES_URL} # добавьте ?sslmode=require для управляемого Postgres

123 

124 upstreams:

125 - provider: bedrock

126 region: us-east-1

127 auth: {} # пусто: цепь учётных данных AWS по умолчанию

128 # (IRSA, роль задачи EC2/ECS, переменные окружения, ~/.aws)

129 

130 # Модели переводятся для каждого вышестоящего уровня автоматически. Встроенный каталог

131 # сопоставляет claude-opus-4-8 с us.anthropic.claude-opus-4-8 и так далее для каждого

132 # поддерживаемого Bedrock модели Claude. Установите false и добавьте список `models:` для

133 # раскрытия только определённых моделей.

134 auto_include_builtin_models: true

135 ```

136 

137 Эта конфигурация достаточна для работающего цикла входа с каталогом моделей Bedrock по умолчанию. После того как она запущена, добавьте RBAC для каждой группы и управляемые параметры через [`managed.policies`](/docs/ru/claude-apps-gateway-config#managed), телеметрию fan-out через [`telemetry`](/docs/ru/claude-apps-gateway-config#telemetry), и многоуровневую отказоустойчивость, ARN подготовленной пропускной способности или не-US регионы через [`models`](/docs/ru/claude-apps-gateway-config#models).

138 

139 <Note>

140 Вышестоящий уровень Bedrock нуждается в принципе AWS с `bedrock:InvokeModel` и `bedrock:InvokeModelWithResponseStream` как на ARN `inference-profile/us.anthropic.*`, так и на базовых ARN `foundation-model/anthropic.*`, и доступ к модели включён в консоли Bedrock для моделей Claude, которые вы хотите. Предоставьте учётные данные с IRSA на EKS, ролью задачи ECS или профилем экземпляра EC2, а не статическими ключами. [Справочник `upstreams`](/docs/ru/claude-apps-gateway-config#upstreams) содержит полные детали IAM, матрицу учётных данных между облаками и блоки `auth` для других поставщиков.

141 </Note>

142 </Step>

143 

144 <Step title="Запустите его">

145 Создайте образ контейнера вокруг двоичного файла `claude`, который соответствует [требованиям образа](/docs/ru/claude-apps-gateway-deploy#container-image), затем запустите его вместе с Postgres:

146 

147 ```yaml docker-compose.yaml theme={null}

148 services:

149 gateway:

150 image: <your-registry>/claude-gateway:<version>

151 ports: ["8080:8080"]

152 volumes: ["./gateway.yaml:/etc/claude/gateway.yaml:ro"]

153 environment:

154 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}

155 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}

156 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway

157 # Учётные данные AWS: в производстве опустите их и используйте роль экземпляра

158 # вместо этого. Для локального тестирования Compose передайте свои собственные:

159 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}

160 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}

161 AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}

162 depends_on:

163 postgres:

164 condition: service_healthy

165 postgres:

166 image: postgres:16-alpine

167 environment: { POSTGRES_USER: gw, POSTGRES_PASSWORD: pw, POSTGRES_DB: gateway }

168 healthcheck:

169 test: ["CMD-SHELL", "pg_isready -U gw"]

170 interval: 5s

171 volumes: ["pgdata:/var/lib/postgresql/data"]

172 volumes: { pgdata: }

173 ```

174 

175 Шлюз — это один двоичный файл Linux, который читает конфигурацию, запускает обнаружение OIDC против вашего IdP, применяет миграции схемы Postgres, создаёт клиентов вышестоящего уровня и начинает слушать. Загрузка закрывается для конфигурации, подключения Postgres с тайм-аутом 5 секунд, обнаружения OIDC и конструкции клиента вышестоящего уровня. Если какой-либо из них недоступен или неправильно настроен, шлюз выходит с ошибкой, а не служит трафику в деградированном состоянии.

176 

177 Успешная загрузка не проверяет путь вывода, потому что учётные данные экземпляра Bedrock и Agent Platform разрешаются при первом запросе, а не при загрузке.

178 

179 Смотрите stderr для последовательности загрузки. Строки журнала используют формат `[gateway] <timestamp> <level> <message>`, события аудита — это однострочный JSON с полем `evt`, и баннер запуска, опущенный ниже, печатается между строками миграции и прослушивания. Вы должны увидеть, по порядку:

180 

181 ```text theme={null}

182 {"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}

183 [gateway] 2026-06-10T17:03:21.408Z info migration 1 applied

184 [gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080

185 ```

186 

187 Если загрузка выходит перед строкой `claude gateway listening on`, последняя строка stderr называет проблему:

188 

189 * недоступный Postgres

190 * роль Postgres без разрешения DDL

191 * недоступный или недействительный документ обнаружения OIDC

192 * нарушение схемы конфигурации с путём нарушающего поля

193 

194 Исправьте это и перезагрузитесь.

195 

196 Если у вас уже есть завершающий TLS вход, пропустите Compose и запустите двоичный файл напрямую с помощью `claude gateway --config gateway.yaml`. Установите `public_url` на происхождение входа и привяжите `listen` к адресу loopback или внутри кластера.

197 </Step>

198 

199 <Step title="Проверьте поверхность аутентификации">

200 Три проверки подтверждают, что шлюз может аутентифицировать реального пользователя перед тем, как вы передадите его разработчику.

201 

202 Примеры используют общедоступный URL шлюза; для локальной установки Compose без входа замените `http://localhost:8080` в первых двух проверках. Третья проверка открывает `verification_uri_complete`, который построен из `public_url`, поэтому для локального Compose установите `public_url: http://localhost:8080` в `gateway.yaml` и добавьте `http://localhost:8080/oauth/callback` как второй URI перенаправления на клиент OAuth из шага 1, потому что шлюз строит IdP `redirect_uri` из `public_url`. Ссылка проверки затем открывается в вашем локальном браузере.

203 

204 В Windows PowerShell запустите `curl.exe`; голый `curl` — это псевдоним для `Invoke-WebRequest` и отклоняет эти флаги.

205 

206 Сначала получите документ обнаружения, который подтверждает, что шлюз работает, конфигурация действительна и все проверки загрузки прошли:

207 

208 ```bash theme={null}

209 curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq

210 ```

211 

212 ```json theme={null}

213 {

214 "issuer": "https://claude-gateway.internal.example.com",

215 "device_authorization_endpoint": "…/oauth/device_authorization",

216 "token_endpoint": "…/oauth/token",

217 "grant_types_supported": ["urn:ietf:params:oauth:grant-type:device_code", "refresh_token"]

218 }

219 ```

220 

221 Ответ включает дополнительные поля, такие как `response_types_supported` и `scopes_supported`.

222 

223 Во-вторых, запросите авторизацию устройства, которая подтверждает, что поток входа устройства работает и Postgres доступен и доступен для записи:

224 

225 ```bash theme={null}

226 curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq

227 ```

228 

229 ```json theme={null}

230 {

231 "device_code": "…",

232 "user_code": "WDJB-MJHT",

233 "verification_uri": "https://claude-gateway.internal.example.com/device",

234 "verification_uri_complete": "https://claude-gateway.internal.example.com/device?user_code=WDJB-MJHT",

235 "expires_in": 600,

236 "interval": 5

237 }

238 ```

239 

240 В-третьих, протестируйте ветку браузера, открыв `verification_uri_complete` в браузере и подтвердив код. Вы должны быть перенаправлены на страницу входа вашего IdP и после входа приземлиться обратно на шлюз с подтверждением входа.

241 

242 Используйте первую неудачную проверку для определения проблемы:

243 

244 * **Первая проверка не удаётся**: загрузка не завершена; проверьте stderr

245 * **Вторая проверка не удаётся**: Postgres недоступен из шлюза или роль не может писать; проверьте строку подключения и разрешения

246 * **Третья проверка не достигает IdP**: проверьте, что URI перенаправления IdP точно соответствует `https://<gateway>/oauth/callback`

247 * **Третья проверка достигает IdP, но отскакивает с ошибкой**: прочитайте журнал аудита шлюза, который записывает каждый отказ в аутентификации с причиной, такой как `email domain not allowed`

248 </Step>

249 

250 <Step title="Войдите разработчик">

251 Этот последний шаг происходит на машине разработчика, а не на сервере. Установите `forceLoginMethod` на `"gateway"` и `forceLoginGatewayUrl` на `public_url` вашего шлюза в [файле управляемых параметров](/docs/ru/settings#settings-files) этой машины, затем запустите `/login`, нажмите Enter на экране **Cloud gateway** и завершите вход в браузер. [Установка URL шлюза](#set-the-gateway-url) ниже охватывает распределение обоих ключей в масштабе.

252 </Step>

253</Steps>

254 

255<h2 id="connect-developers">

256 Подключение разработчиков

257</h2>

258 

259Разработчики подключаются со своих собственных ноутбуков с одним входом в браузер, используя свою корпоративную рабочую учётную запись. Им не нужна учётная запись claude.ai, ключ API или подписка, потому что запросы к модели идут через шлюз, используя учётные данные вышестоящего уровня организации. Подключение управляется [управляемыми параметрами на стороне клиента](/docs/ru/claude-apps-gateway-config#client-side-managed-settings), которые вы отправляете через MDM, поэтому нет ручной настройки на стороне разработчика; этот раздел охватывает то, что настраивает администратор.

260 

261CLI отпечатывает сертификат TLS листа шлюза при первом подключении и закрепляет его для каждого имени хоста. Опубликуйте ожидаемый отпечаток SHA-256 вместе с URL шлюза, чтобы разработчики имели что-то для сравнения. Получите отпечаток из файла сертификата с помощью `openssl x509 -noout -fingerprint -sha256 -in cert.pem`; подсказка `/login` показывает первые 16 символов дайджеста как строчные шестнадцатеричные без разделителей.

262 

263Когда сертификат ротируется, каждый разработчик видит подсказку доверия снова, поэтому рассматривайте ротации как запланированное событие и переопубликуйте отпечаток.

264 

265После входа [средство выбора модели](/docs/ru/model-config) показывает модели в списке разрешённых `availableModels` разработчика, управляемые параметры применяются при запуске и обновляются ежечасно, и телеметрия маршрутизируется в ваш сборщик. Сеансы молча обновляются перед истечением `ttl_hours`, и неудачное обновление после отключения IdP запрашивает повторный вход.

266 

267<h3 id="set-the-gateway-url">

268 Установка URL шлюза

269</h3>

270 

271Установите оба ключа в файл [управляемых параметров](/docs/ru/settings#settings-files) для каждой ОС, который вы развёртываете через MDM или непосредственно на диск, и `/login` открывается прямо на экране **Cloud gateway** с заполненным URL:

272 

273```json theme={null}

274{

275 "forceLoginMethod": "gateway",

276 "forceLoginGatewayUrl": "https://claude-gateway.internal.example.com"

277}

278```

279 

280Разработчик нажимает Enter для подключения. Подсказка отпечатка TLS при первом подключении всё ещё появляется.

281 

282Нет опции шлюза в средстве выбора входа для разработчика, чтобы выбрать вручную, и `forceLoginGatewayUrl` игнорируется в собственных файлах параметров разработчика. `forceLoginMethod` один, без URL, оставляет разработчика с сообщением "Свяжитесь с администратором IT". Оба ключа принадлежат файлу, который вы отправляете на машины, а не в блок `managed.policies[].cli` шлюза, который достигает только уже подключённых клиентов.

283 

284<h3 id="ci-pipelines-and-remote-machines">

285 Конвейеры CI и удалённые машины

286</h3>

287 

288Нет потока токена сервиса для автоматических конвейеров. Вход шлюза всегда запускает поток устройства браузера, поэтому задача CI без разработчика для одобрения входа не может аутентифицироваться; настройте их непосредственно против вашего поставщика.

289 

290Однажды разработчик вошёл, каждый вызов Claude Code на этой машине использует сеанс шлюза, включая неинтерактивные запуски `claude -p` и сеансы, запущенные Agent SDK, и [политика шлюза применяется ко всем из них](/docs/ru/claude-apps-gateway-config#managed).

291 

292Поток устройства отделяет опрашивающий CLI от одобряющего браузера, поэтому удалённый ящик разработки без дисплея всё ещё работает: разработчик запускает `/login` по SSH на удалённой машине и открывает ссылку проверки в браузере на своём ноутбуке.

293 

294<h3 id="what’s-enforced-on-developers">

295 Что применяется к разработчикам

296</h3>

297 

298Эти гарантии применяются к каждому подписанному сеансу шлюза.

299 

300* **Доступ к модели**: запросы для моделей, которые политика не предоставляет, возвращают 400, и средство выбора `/model` фильтруется в список разрешённых `availableModels` политики. Установите [`enforceAvailableModels: true`](/docs/ru/model-config#default-model-behavior) в политике, чтобы опция Default разрешалась в модель внутри `availableModels` вместо встроенного значения по умолчанию Claude Code; без неё Default остаётся выбираемым и отклоняется во время запроса, если эта модель не предоставлена.

301* **Назначение телеметрии**: когда [пересылка телеметрии](/docs/ru/claude-apps-gateway-config#telemetry) настроена, конечная точка экспорта OTLP закреплена на шлюзе, и конфигурация, отправленная шлюзом, переопределяет локально установленные переменные `OTEL_*`.

302* **Учётные данные**: токен шлюза — это единственное учётное данные сеанса. `ANTHROPIC_AUTH_TOKEN`, `ANTHROPIC_API_KEY`, `apiKeyHelper` и любой более ранний вход claude.ai игнорируются при входе, поэтому разработчикам не нужно сначала выходить из claude.ai.

303* **Управляемые параметры**: заблокированные ключи не могут быть переопределены локально. CLI применяет политику при запуске и при каждом ежечасном опросе.

304* **Запуск**: подписанные сеансы выходят при запуске с ошибкой примерно через 10 секунд, когда шлюз недоступен, а не запускаются без своих параметров.

305* **Отключение**: сеанс, чей пользователь отключён в IdP, истекает в течение `ttl_hours`, когда следующее обновление не удаётся.

306 

307<h3 id="what-the-organization-can-see">

308 Что может видеть организация

309</h3>

310 

311Телеметрия использования несёт идентификацию разработчика, подсчёт токенов, модель и задержку в сборщик организации. Шлюз не регистрирует и не хранит содержимое подсказки или завершения. Собирается ли более богатая телеметрия, такая как журналы и трассировки, которые могут включать команды и пути файлов, — это [выбор организации для каждого назначения](/docs/ru/claude-apps-gateway-config#telemetry).

312 

313<h2 id="availability-and-limitations">

314 Доступность и ограничения

315</h2>

316 

317Таблица охватывает, какие функции Claude Code работают, когда разработчики подключаются через шлюз, и что сам сервер шлюза поддерживает. Где что-то не поддерживается, столбец Notes даёт альтернативу.

318 

319Шлюз доставляет значения [`anthropic-beta`](https://platform.claude.com/docs/en/api/beta-headers), которые CLI отправляет каждому вышестоящему уровню, поэтому операторы не поддерживают список разрешений бета. Для Amazon Bedrock, который игнорирует заголовок, шлюз перемещает значения в поле `anthropic_beta` тела запроса; другие вышестоящие уровни получают заголовок как отправленный.

320 

321Набор бета сеанса шлюза CLI опускает бета-версии только первой стороны и бета-версию extended-cache-ttl, поэтому эти строки ниже показаны как недоступные.

322 

323| Функция | Статус | Примечания |

324| ---------------------------------------------------------------------------------------------------------------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

325| Пересылка вывода (Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, Microsoft Foundry, Anthropic) | Доступно | С переводом модели для каждого вышестоящего уровня и отказоустойчивостью. Вышестоящий уровень Amazon Bedrock использует конечную точку `bedrock-runtime` и цепь учётных данных AWS по умолчанию; конечная точка Amazon Bedrock [Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint) не является поддерживаемым вышестоящим уровнем. [Вышестоящий уровень Claude Platform on AWS](/docs/ru/claude-apps-gateway-config#claude-platform-on-aws) требует Claude Code v2.1.198 или более поздней версии на сервере шлюза. |

326| Доступ к модели и управляемые параметры по группе IdP | Доступно | Доступ к модели применяется на стороне сервера; управляемые параметры доставляются для каждой группы IdP и применяются CLI на [уровне управляемых параметров](/docs/ru/settings#settings-precedence) |

327| Телеметрия fan-out (OTLP/HTTP) | Доступно | Идентификация-отмечена для каждого экспорта; оба кодирования protobuf и JSON |

328| Поставщики идентификации OIDC | Доступно | Любой совместимый с OIDC IdP; шлюз запускает стандартное обнаружение OIDC и поток авторизации-кода. См. [Настройка поставщика идентификации](/docs/ru/claude-apps-gateway-deploy#identity-provider-setup) для конфигурации для каждого IdP |

329| Ограничения расходов для каждого пользователя и группы | Доступно | См. [Ограничения расходов](/docs/ru/claude-apps-gateway-spend-limits) |

330| Веб-поиск на стороне сервера | Недоступно | CLI не может видеть, какого поставщика вышестоящего уровня маршрутизирует шлюз, поэтому он не может проверить поддержку веб-поиска и отключает WebSearch на сеансах шлюза |

331| Стандартное кэширование подсказок | Доступно | Точки разрыва `cache_control` пересылаются каждому вышестоящему уровню |

332| TTL кэша 1 час | Недоступно | CLI опускает бета-версию extended-cache-ttl на сеансах шлюза, потому что не каждый вышестоящий уровень, который может маршрутизировать шлюз, поддерживает TTL 1 час, поэтому кэширование подсказок через шлюз использует TTL 5 минут; см. примечание выше о бета-заголовке |

333| Режим Auto | Доступно | Следует [правилам поставщика третьей стороны](/docs/ru/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry): только модели, имеющие право на поставщиков третьей стороны, могут его использовать. До версии v2.1.207 режим auto на сеансах шлюза требовал установки `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, доставляемой через блок `env` управляемой политики |

334| Оптимизации только первой стороны, такие как глобальная область кэша и инструменты, эффективные по токенам | Недоступно | CLI не включает их на сеансах шлюза; см. примечание выше о бета-заголовке |

335| OTLP/gRPC | Не поддерживается | Только OTLP по HTTP |

336| SAML, LDAP и другая аутентификация не-OIDC | Не поддерживается | Только OIDC. Фронт с мостом OIDC, если необходимо |

337| Мультитенантность (несколько издателей OIDC) | Не поддерживается | Один издатель на шлюз. Запустите отдельные экземпляры |

338| Сервер Windows | Не поддерживается | Развёртывайте на Linux. macOS только для локальной разработки |

339| Helm chart | Недоступно | Шлюз работает как стандартное развёртывание без состояния; см. [руководство по развёртыванию](/docs/ru/claude-apps-gateway-deploy#kubernetes) |

340| Пользовательский интерфейс администратора | Недоступно | Конфигурация — это файл YAML; переразвёртывайте, чтобы изменить его |

341 

342<h2 id="next-steps">

343 Следующие шаги

344</h2>

345 

346Быстрый старт оставляет вас с минимальной конфигурацией, работающей под Docker Compose. Чтобы пойти дальше:

347 

348* Расширьте `gateway.yaml` за пределы минимальной конфигурации, например, чтобы добавить RBAC для каждой группы, многоуровневую отказоустойчивость или назначения телеметрии. [Справочник конфигурации](/docs/ru/claude-apps-gateway-config) охватывает каждый параметр.

349* Перейдите от Compose к развёртыванию в производстве на Kubernetes или Cloud Run, правильно настройте ваш IdP и проверьте модель безопасности. [Руководство по развёртыванию и операциям](/docs/ru/claude-apps-gateway-deploy) охватывает настройку для каждого IdP, требования к образу контейнера, зонды здоровья и устранение неполадок.

350* Установите ограничения расходов для отдельных разработчиков или групп, чтобы неконтролируемая рабочая нагрузка не могла потребить всё ваше обязательство. [Ограничения расходов](/docs/ru/claude-apps-gateway-spend-limits) охватывает API администратора и как работает применение.

351* Для полного отработанного примера на Google Cloud с Cloud Run, Cloud SQL и Secret Manager см. [Развёртывание на Google Cloud](/docs/ru/claude-apps-gateway-on-gcp).

corporate-launcher.md +142 −0 created

Details

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 через корпоративный launcher

6 

7> Маршрутизируйте процессы, которые Claude Code запускает из собственного бинарного файла, включая фоновый сервис и каждый сеанс agent view, через требуемый launcher с помощью CLAUDE_CODE_PROCESS_WRAPPER.

8 

9Некоторые организации требуют, чтобы каждый процесс на рабочей станции запускался через обязательный launcher. Launcher применяет sandbox, сетевые элементы управления или внедрение учетных данных, от которых зависит позиция безопасности компании, и бинарный файл, который запускается без него, является нарушением политики.

10 

11`CLAUDE_CODE_PROCESS_WRAPPER` запускает каждый процесс, который Claude Code запускает из собственного бинарного файла, через ваш launcher: фоновый сервис, каждый сеанс, который он размещает в [agent view](/docs/ru/agent-view), и перезапуски Claude Code после обновления. Установите его на абсолютный путь вашего launcher, и Claude Code запустит launcher с командой Claude Code в качестве его аргументов.

12 

13Launcher, который оборачивает команду `claude` в вашем `PATH`, не может достичь эти процессы, потому что они запускаются из прямого пути бинарного файла без поиска `claude`.

14 

15<Note>

16 `CLAUDE_CODE_PROCESS_WRAPPER` требует Claude Code v2.1.208 или более поздней версии. Более ранние версии игнорируют переменную и запускают каждый процесс без обертки.

17</Note>

18 

19<h2 id="what-the-launcher-covers">

20 Что охватывает launcher

21</h2>

22 

23С установленным `CLAUDE_CODE_PROCESS_WRAPPER` Claude Code запускает каждый из следующих процессов через ваш launcher:

24 

25* Фоновый сервис, который запускают `claude agents` и фоновые сеансы по требованию.

26* Хост терминала и сеанс Claude Code внутри каждой строки agent view, включая теплые резервные сеансы, которые сервис держит в готовности.

27* Сеансы, которые сервис перезапускает после обновления или сбоя.

28* Перезапуск, который Claude Code выполняет сам по себе, чтобы завершить установку обновления, включая действие restart-for-update в agent view.

29 

30На Windows переменная игнорируется: контракт launcher зависит от `exec`, который Windows не поддерживает. Машина Windows с установленной переменной запускает каждый процесс без обертки и продолжает работать, и единственный сигнал — это предупреждение в [debug log](/docs/ru/troubleshooting). Если ваша политика launcher охватывает Windows, переменная не удовлетворяет ее там: при планировании развертывания считайте машины Windows как без обертки.

31 

32<h3 id="processes-that-start-outside-the-launcher">

33 Процессы, которые запускаются вне launcher

34</h3>

35 

36Три процесса никогда не запускаются через launcher:

37 

38* [Установленный фоновый сервис](/docs/ru/agent-view#the-supervisor-process): `launchd` или `systemd` запускает этот процесс из его файла unit. `/status` и `claude daemon status` предупреждают, когда это применяется, и сеансы, которые запускает сервис, все еще запускаются через launcher после перезагрузки сервиса с переменной в его параметрах.

39* Сеанс, который вы запускаете сами в терминале, который работает так, как вы его вызвали. Чтобы охватить эти сеансы, поместите скрипт с именем `claude` в каталог, который находится раньше в `PATH`, который запускает ваш launcher с реальным бинарным файлом; не заменяйте управляемый symlink. Self-spawns не консультируют `PATH`, поэтому два launcher никогда не складываются.

40* Первый процесс `claude-cli://` deep link, который обработчик протокола операционной системы запускает напрямую. Все, что этот сеанс запускает в фоне после этого, работает через launcher. Чтобы полностью закрыть этот путь, [предотвратите регистрацию обработчика](/docs/ru/deep-links#registration-and-supported-platforms) с помощью параметра `disableDeepLinkRegistration`.

41 

42<h3 id="helper-process-names-in-process-monitors">

43 Имена вспомогательных процессов в мониторах процессов

44</h3>

45 

46С настроенным launcher `ps` и Activity Monitor показывают имя версионного бинарного файла для фоновых вспомогательных процессов вместо меток Claude Code `claude bg-pty-host` и `claude bg-spare`, потому что `exec` launcher перестраивает список аргументов. Переименование является побочным эффектом, а не скрытием: процессы в остальном не изменены, и Claude Code идентифицирует свои собственные процессы по пути бинарного файла, никогда по отображаемому имени.

47 

48<h2 id="set-up-the-launcher">

49 Настройка launcher

50</h2>

51 

52<Steps>

53 <Step title="Напишите скрипт launcher">

54 Создайте исполняемый скрипт по абсолютному пути, например `/opt/corp/launcher`. Claude Code запускает его с полной командой Claude Code в качестве его аргументов, и скрипт должен заканчиваться вызовом `exec "$@"`, чтобы он заменил себя на Claude Code:

55 

56 ```bash theme={null}

57 #!/bin/sh

58 # Настройка вашей организации: введите sandbox, примените

59 # сетевые элементы управления или внедрите учетные данные.

60 exec "$@"

61 ```

62 

63 Сделайте его исполняемым с помощью `chmod +x`. Часть настройки — это все, что должен сделать ваш launcher перед запуском Claude Code; [контракт launcher](#the-launcher-contract) ниже перечисляет правила, которым должен следовать скрипт.

64 

65 <Note>

66 Если вы ранее заменили symlink `~/.local/bin/claude` на ваш launcher, восстановите исходный symlink в том же изменении. Замененный symlink заставляет первый обернутый сеанс запустить фоновый сервис через оба launcher одновременно, и это помещает установку во внешнее управляемое состояние: `/doctor` это сообщает, auto-update оставляет файл на месте, и очистка старых версий остается отключенной до тех пор, пока установщик снова не будет управлять этим путем.

67 </Note>

68 </Step>

69 

70 <Step title="Установите CLAUDE_CODE_PROCESS_WRAPPER в параметрах">

71 Установите переменную в блоке `env` файла параметров, чтобы отсоединенный фоновый сервис наследовал ее. Простой `export` в shell недостаточно: фоновый сервис запускается по требованию, переживает вашу shell и никогда не перечитывает профили shell.

72 

73 Для одной машины добавьте это в `~/.claude/settings.json`. Чтобы развернуть его на каждой машине в вашей организации, поместите тот же блок в [managed settings](/docs/ru/permissions#managed-settings):

74 

75 ```json theme={null}

76 {

77 "env": {

78 "CLAUDE_CODE_PROCESS_WRAPPER": "/opt/corp/launcher"

79 }

80 }

81 ```

82 

83 Когда более одного источника устанавливает переменную, значение managed settings переопределяет как `~/.claude/settings.json`, так и значение, экспортированное в shell, поэтому пользователи не могут указывать self-spawns на другой launcher.

84 

85 Параметры проекта и локальные параметры не могут установить эту переменную. Файл, зафиксированный в репозитории, не должен иметь возможность поместить бинарный файл перед каждым процессом Claude Code на машине, поэтому `CLAUDE_CODE_PROCESS_WRAPPER` в `.claude/settings.json` или `.claude/settings.local.json` игнорируется с предупреждением в [debug log](/docs/ru/troubleshooting).

86 </Step>

87 

88 <Step title="Перезагрузите фоновый сервис и ваши сеансы">

89 Работающий фоновый сервис и любые открытые сеансы `claude` читают переменную один раз при запуске, поэтому они продолжают запускать процессы без обертки до перезагрузки. Запустите `claude daemon stop --any`, чтобы остановить сервис по требованию; следующая команда, которая его нужна, например `claude agents`, запускает обернутый. [Установленный сервис](/docs/ru/agent-view#the-supervisor-process) принимает `claude daemon stop` без `--any`. Затем перезагрузите открытые сеансы `claude`.

90 

91 На машинах, которые вы не можете перезагрузить вручную, первый сеанс, запущенный после push параметров, автоматически выводит из эксплуатации оставшийся сервис по требованию без обертки. Машина, где не запускается новый сеанс, сохраняет свой сервис без обертки до тех пор, пока один не запустится, и установленный сервис всегда нуждается в перезагрузке на этом шаге.

92 </Step>

93 

94 <Step title="Проверьте">

95 Запустите `/status` в сеансе: запись Self-exec показывает разрешенную команду запуска и предупреждает, когда работающий фоновый сервис не совпадает с ней. `claude daemon status` выводит ту же информацию из shell, включая после того, как вы отмените установку переменной, когда `/status` больше не показывает запись.

96 </Step>

97</Steps>

98 

99<h2 id="the-launcher-contract">

100 Контракт launcher

101</h2>

102 

103Когда launcher не может работать, Claude Code отказывается запустить процесс вместо того, чтобы запустить его без обертки. На Windows [переменная игнорируется](#what-the-launcher-covers) и процессы запускаются без обертки. Claude Code придерживается скрипта этих правил:

104 

105* **Заканчивайте с `exec "$@"`.** Launcher, который разветвляет дочерний процесс и выходит, оставляет сиротский процесс Claude Code, который фоновый сервис не может отследить. Agent view отмечает такой сеанс как неудачный с сообщением, называющим launcher, и сервис собирает то, что launcher оставил позади.

106* **Не переупорядочивайте, не поглощайте и не добавляйте аргументы в начало.** Первый аргумент — это бинарный файл Claude Code, и все после него — это его argv.

107* **Передайте каждую унаследованную переменную окружения через `exec`.** Добавление переменных, таких как внедренные учетные данные, хорошо; отбрасывание унаследованных — нет.

108 * Токены аутентификации для каждого сеанса, выбор модели и поставщика, и сам `CLAUDE_CODE_PROCESS_WRAPPER` все путешествуют в унаследованной среде, поэтому launcher, который перестраивает ее из списка разрешений, нарушает сеансы, которые он запускает, и `/status` сообщает о несоответствии launcher.

109 * Если launcher должен войти в пространство имен или sandbox, который сбрасывает окружение, повторно экспортируйте унаследованное окружение внутри него дословно.

110* **Достигните `exec` примерно за три секунды каждый раз, когда запускается launcher.** Холодная фоновая отправка запускает launcher дважды подряд перед первым байтом вывода, поэтому выполняйте медленную работу, такую как обмен единственным входом, лениво или из кэша.

111 * Launcher, который работает далеко за пределами бюджета, рассматривается как застопоренный старт и перезагружается.

112* **Допускайте вызов изнутри себя.** Claude Code применяет launcher к каждому вложенному self-spawn, поэтому launcher, который получает исключительный ресурс, должен обнаружить, что он его уже держит.

113* **Не пишите в терминал перед запуском Claude Code.** Все, что напечатано перед `exec`, сообщается как причина сбоя, если сеанс умирает перед инициализацией.

114 

115<h3 id="format-of-the-claude_code_process_wrapper-value">

116 Формат значения `CLAUDE_CODE_PROCESS_WRAPPER`

117</h3>

118 

119Для большинства launcher значение — это просто абсолютный путь скрипта, например `/opt/corp/launcher`.

120 

121Чтобы передать вашему launcher его собственные аргументы, напишите их после пути. Claude Code анализирует значение как список аргументов, а не команду shell:

122 

123* Пробелы разделяют токены, а двойные кавычки группируют токен, содержащий пробелы.

124* Значение, которое начинается с `[`, читается как массив строк JSON, например `["/opt/corp/launcher", "--profile", "cc"]`.

125* Синтаксис shell не работает: нет расширения переменных или глобализации, и неквотированный оператор, такой как `;`, `|`, `&` или `$(`, отклоняется как ошибка конфигурации, а не переинтерпретируется.

126 

127Когда значение не может быть использовано, Claude Code отказывается запустить затронутый процесс и [сообщает причину](/docs/ru/errors#claude_code_process_wrapper-launcher-errors).

128 

129<h2 id="relationship-to-claude_code_shell_prefix">

130 Отношение к `CLAUDE_CODE_SHELL_PREFIX`

131</h2>

132 

133`CLAUDE_CODE_PROCESS_WRAPPER` оборачивает собственные процессы Claude Code и передает команду через отдельные токены argv для launcher в `exec`. [`CLAUDE_CODE_SHELL_PREFIX`](/docs/ru/env-vars) оборачивает команды shell, которые Claude Code запускает от вашего имени, такие как вызовы инструмента Bash, hooks и команды, которые запускают серверы stdio MCP, и передает каждую как одну строку в кавычках shell в `$1` для обертки для переоценки. Launcher, написанный для одного, не работает как другой.

134 

135<h2 id="related-resources">

136 Связанные ресурсы

137</h2>

138 

139* [Agent view](/docs/ru/agent-view): фоновые сеансы и процесс supervisor, который охватывает launcher

140* [Environment variables](/docs/ru/env-vars): запись справки `CLAUDE_CODE_PROCESS_WRAPPER`

141* [Managed settings](/docs/ru/permissions#managed-settings): доставьте блок `env` по всему парку

142* [Launcher error reference](/docs/ru/errors#claude_code_process_wrapper-launcher-errors): сообщения об отказе и способы восстановления

devcontainer.md +25 −25

Details

12 12 

13<Warning>13<Warning>

14 Хотя контейнер разработки обеспечивает существенную защиту, ни одна система полностью не защищена от всех атак.14 Хотя контейнер разработки обеспечивает существенную защиту, ни одна система полностью не защищена от всех атак.

15 При выполнении с `--dangerously-skip-permissions` контейнеры разработки не предотвращают утечку данных из вредоносного проекта, включая учетные данные Claude Code, хранящиеся в [`~/.claude`](/ru/claude-directory).15 При выполнении с `--dangerously-skip-permissions` контейнеры разработки не предотвращают утечку данных из вредоносного проекта, включая учетные данные Claude Code, хранящиеся в [`~/.claude`](/docs/ru/claude-directory).

16 Используйте контейнеры разработки только при разработке с доверенными репозиториями и отслеживайте деятельность Claude.16 Используйте контейнеры разработки только при разработке с доверенными репозиториями и отслеживайте деятельность Claude.

17 Избегайте монтирования хост-секретов, таких как `~/.ssh` или файлы облачных учетных данных, в контейнер; предпочитайте токены с областью действия репозитория или краткосрочные токены.17 Избегайте монтирования хост-секретов, таких как `~/.ssh` или файлы облачных учетных данных, в контейнер; предпочитайте токены с областью действия репозитория или краткосрочные токены.

18</Warning>18</Warning>


20<Accordion title="Как контейнеры разработки работают с вашим редактором">20<Accordion title="Как контейнеры разработки работают с вашим редактором">

21 <img src="https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture.svg?fit=max&auto=format&n=YvJyjZfd9yMihr0i&q=85&s=9017b1d16a446c6cc37ba562f35b9aae" className="dark:hidden" alt="Диаграмма, показывающая редактор на хосте, подключающийся к Docker контейнеру разработки. Claude Code, терминал и инструменты сборки работают внутри контейнера. Репозиторий хоста привязан к контейнеру как рабочее пространство." width="640" height="300" data-path="images/devcontainer-architecture.svg" />21 <img src="https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture.svg?fit=max&auto=format&n=YvJyjZfd9yMihr0i&q=85&s=9017b1d16a446c6cc37ba562f35b9aae" className="dark:hidden" alt="Диаграмма, показывающая редактор на хосте, подключающийся к Docker контейнеру разработки. Claude Code, терминал и инструменты сборки работают внутри контейнера. Репозиторий хоста привязан к контейнеру как рабочее пространство." width="640" height="300" data-path="images/devcontainer-architecture.svg" />

22 22 

23 <img src="https://mintcdn.com/claude-code/YvJyjZfd9yMihr0i/images/devcontainer-architecture-dark.svg?fit=max&auto=format&n=YvJyjZfd9yMihr0i&q=85&s=ef00c8e25b1ea7a3a152895f1488831b" className="hidden dark:block" alt="Диаграмма, показывающая редактор на хосте, подключающийся к Docker контейнеру разработки. Claude Code, терминал и инструменты сборки работают внутри контейнера. Репозиторий хоста привязан к контейнеру как рабочее пространство." width="640" height="300" data-path="images/devcontainer-architecture-dark.svg" />23 <img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/devcontainer-architecture-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=a0a340b1f2afc6a590696102c8acaaca" className="hidden dark:block" alt="Диаграмма, показывающая редактор на хосте, подключающийся к Docker контейнеру разработки. Claude Code, терминал и инструменты сборки работают внутри контейнера. Репозиторий хоста привязан к контейнеру как рабочее пространство." width="640" height="300" data-path="images/devcontainer-architecture-dark.svg" />

24 24 

25 Контейнер разработки работает как Docker контейнер, либо на вашей машине, либо на облачном хосте, таком как GitHub Codespaces. Редактор, поддерживающий спецификацию Dev Containers, такой как VS Code, GitHub Codespaces, JetBrains IDE или Cursor, подключается к этому контейнеру: вы просматриваете и редактируете файлы в редакторе как обычно, но интегрированный терминал, языковые серверы и инструменты сборки все работают внутри контейнера, а не на вашем хосте. Редакторы без поддержки контейнеров разработки, такие как простой Vim, не являются частью этого рабочего процесса.25 Контейнер разработки работает как Docker контейнер, либо на вашей машине, либо на облачном хосте, таком как GitHub Codespaces. Редактор, поддерживающий спецификацию Dev Containers, такой как VS Code, GitHub Codespaces, JetBrains IDE или Cursor, подключается к этому контейнеру: вы просматриваете и редактируете файлы в редакторе как обычно, но интегрированный терминал, языковые серверы и инструменты сборки все работают внутри контейнера, а не на вашем хосте. Редакторы без поддержки контейнеров разработки, такие как простой Vim, не являются частью этого рабочего процесса.

26 26 

27 Claude Code работает внутри контейнера, поэтому он видит те же файлы, зависимости и инструменты, что и остальная часть цепочки инструментов вашего проекта. В VS Code вы можете использовать либо [панель расширения Claude Code](/ru/vs-code), либо запустить `claude` в интегрированном терминале; оба работают внутри контейнера и используют одну и ту же конфигурацию `~/.claude`.27 Claude Code работает внутри контейнера, поэтому он видит те же файлы, зависимости и инструменты, что и остальная часть цепочки инструментов вашего проекта. В VS Code вы можете использовать либо [панель расширения Claude Code](/docs/ru/vs-code), либо запустить `claude` в интегрированном терминале; оба работают внутри контейнера и используют одну и ту же конфигурацию `~/.claude`.

28</Accordion>28</Accordion>

29 29 

30<h2 id="add-claude-code-to-your-dev-container">30<h2 id="add-claude-code-to-your-dev-container">


75То, что вы видите в подсказке аутентификации, зависит от вашего поставщика:75То, что вы видите в подсказке аутентификации, зависит от вашего поставщика:

76 76 

77* **Anthropic**: вход через браузер с вашей учетной записью Claude или Anthropic Console77* **Anthropic**: вход через браузер с вашей учетной записью Claude или Anthropic Console

78* **[Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry](/ru/third-party-integrations)**: Claude Code использует учетные данные вашего облачного поставщика без подсказки браузера78* **[Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry](/docs/ru/third-party-integrations)**: Claude Code использует учетные данные вашего облачного поставщика без подсказки браузера

79 79 

80Для облачных поставщиков передавайте учетные данные в контейнер как переменные окружения через `containerEnv`, секрет Codespaces или удостоверение рабочей нагрузки вашего облака, а не монтируйте файлы учетных данных с хоста. См. [Amazon Bedrock](/ru/amazon-bedrock), [Google Cloud's Agent Platform](/ru/google-vertex-ai) или [Microsoft Foundry](/ru/microsoft-foundry) для цепочки учетных данных, которую читает Claude Code.80Для облачных поставщиков передавайте учетные данные в контейнер как переменные окружения через `containerEnv`, секрет Codespaces или удостоверение рабочей нагрузки вашего облака, а не монтируйте файлы учетных данных с хоста. См. [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) или [Microsoft Foundry](/docs/ru/microsoft-foundry) для цепочки учетных данных, которую читает Claude Code.

81 81 

82См. [Выбор поставщика API](/ru/admin-setup#choose-your-api-provider), чтобы решить, какой путь подходит вашей организации.82См. [Выбор поставщика API](/docs/ru/admin-setup#choose-your-api-provider), чтобы решить, какой путь подходит вашей организации.

83 83 

84<Note>84<Note>

85 Если вход через браузер завершен, но обратный вызов никогда не достигает контейнер, скопируйте код, показанный в браузере, и вставьте его в подсказку `Paste code here if prompted` в терминале. Это может произойти, когда переадресация портов редактора не маршрутизирует обратный вызов localhost.85 Если вход через браузер завершен, но обратный вызов никогда не достигает контейнер, скопируйте код, показанный в браузере, и вставьте его в подсказку `Paste code here if prompted` в терминале. Это может произойти, когда переадресация портов редактора не маршрутизирует обратный вызов localhost.


89 Сохранение аутентификации и параметров при перестроении89 Сохранение аутентификации и параметров при перестроении

90</h2>90</h2>

91 91 

92По умолчанию домашний каталог контейнера отбрасывается при перестроении, поэтому инженеры должны снова входить каждый раз. Claude Code хранит свой токен аутентификации, параметры пользователя и историю сеанса в [`~/.claude`](/ru/claude-directory). Смонтируйте именованный том в этом пути, чтобы сохранить это состояние при перестроении.92По умолчанию домашний каталог контейнера отбрасывается при перестроении, поэтому инженеры должны снова входить каждый раз. Claude Code хранит свой токен аутентификации, параметры пользователя и историю сеанса в [`~/.claude`](/docs/ru/claude-directory). Смонтируйте именованный том в этом пути, чтобы сохранить это состояние при перестроении.

93 93 

94Следующий пример монтирует том в домашний каталог пользователя `node`:94Следующий пример монтирует том в домашний каталог пользователя `node`:

95 95 


99]99]

100```100```

101 101 

102Замените `/home/node` на домашний каталог `remoteUser` вашего контейнера. Если вы монтируете том в другое место, чем `~/.claude`, установите [`CLAUDE_CONFIG_DIR`](/ru/env-vars) на путь монтирования, чтобы Claude Code читал и писал там.102Замените `/home/node` на домашний каталог `remoteUser` вашего контейнера. Если вы монтируете том в другое место, чем `~/.claude`, установите [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars) на путь монтирования, чтобы Claude Code читал и писал там.

103 103 

104Чтобы изолировать состояние для каждого проекта, а не делиться одним томом во всех репозиториях, включите переменную `${devcontainerId}` в имя источника. [Справочная конфигурация](https://github.com/anthropics/claude-code/blob/main/.devcontainer/devcontainer.json) использует `source=claude-code-config-${devcontainerId}` для этой цели.104Чтобы изолировать состояние для каждого проекта, а не делиться одним томом во всех репозиториях, включите переменную `${devcontainerId}` в имя источника. [Справочная конфигурация](https://github.com/anthropics/claude-code/blob/main/.devcontainer/devcontainer.json) использует `source=claude-code-config-${devcontainerId}` для этой цели.

105 105 

106В GitHub Codespaces `~/.claude` сохраняется при остановке и запуске codespace, но все еще очищается при перестроении контейнера, поэтому монтирование тома выше применяется и там. Чтобы перенести аутентификацию между codespaces, сохраните `ANTHROPIC_API_KEY` или `CLAUDE_CODE_OAUTH_TOKEN` из [`claude setup-token`](/ru/authentication#generate-a-long-lived-token) как [секрет Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces); Codespaces автоматически делает секреты доступными как переменные окружения внутри контейнера.106В GitHub Codespaces `~/.claude` сохраняется при остановке и запуске codespace, но все еще очищается при перестроении контейнера, поэтому монтирование тома выше применяется и там. Чтобы перенести аутентификацию между codespaces, сохраните `ANTHROPIC_API_KEY` или `CLAUDE_CODE_OAUTH_TOKEN` из [`claude setup-token`](/docs/ru/authentication#generate-a-long-lived-token) как [секрет Codespaces](https://docs.github.com/en/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces); Codespaces автоматически делает секреты доступными как переменные окружения внутри контейнера.

107 107 

108<h2 id="enforce-organization-policy">108<h2 id="enforce-organization-policy">

109 Применение политики организации109 Применение политики организации


111 111 

112Контейнер разработки — это удобное место для применения политики организации, потому что один и тот же образ и конфигурация работают на машине каждого инженера.112Контейнер разработки — это удобное место для применения политики организации, потому что один и тот же образ и конфигурация работают на машине каждого инженера.

113 113 

114Claude Code читает `/etc/claude-code/managed-settings.json` на Linux и применяет его с наивысшим приоритетом в [иерархии параметров](/ru/settings#how-scopes-interact), поэтому значения там переопределяют все, что инженер устанавливает в `~/.claude` или в каталоге `.claude/` проекта. Скопируйте файл на место из вашего Dockerfile:114Claude Code читает `/etc/claude-code/managed-settings.json` на Linux и применяет его с наивысшим приоритетом в [иерархии параметров](/docs/ru/settings#how-scopes-interact), поэтому значения там переопределяют все, что инженер устанавливает в `~/.claude` или в каталоге `.claude/` проекта. Скопируйте файл на место из вашего Dockerfile:

115 115 

116```dockerfile Dockerfile theme={null}116```dockerfile Dockerfile theme={null}

117RUN mkdir -p /etc/claude-code117RUN mkdir -p /etc/claude-code

118COPY managed-settings.json /etc/claude-code/managed-settings.json118COPY managed-settings.json /etc/claude-code/managed-settings.json

119```119```

120 120 

121Поскольку Dockerfile находится в репозитории, любой, у кого есть доступ на запись, может изменить или удалить этот шаг. Для политики, которую инженеры не могут обойти, редактируя файлы репозитория, доставляйте управляемые параметры через [параметры, управляемые сервером](/ru/server-managed-settings) или ваш MDM вместо этого. См. [файлы управляемых параметров](/ru/settings#settings-files) для доступных ключей и других путей доставки.121Поскольку Dockerfile находится в репозитории, любой, у кого есть доступ на запись, может изменить или удалить этот шаг. Для политики, которую инженеры не могут обойти, редактируя файлы репозитория, доставляйте управляемые параметры через [параметры, управляемые сервером](/docs/ru/server-managed-settings) или ваш MDM вместо этого. См. [файлы управляемых параметров](/docs/ru/settings#settings-files) для доступных ключей и других путей доставки.

122 122 

123Чтобы установить [переменные окружения](/ru/env-vars), которые применяются к каждому сеансу Claude Code в контейнере, добавьте их в `containerEnv` в вашем `devcontainer.json`. Следующий пример отказывается от телеметрии и отчетов об ошибках и предотвращает автоматическое обновление Claude Code после установки:123Чтобы установить [переменные окружения](/docs/ru/env-vars), которые применяются к каждому сеансу Claude Code в контейнере, добавьте их в `containerEnv` в вашем `devcontainer.json`. Следующий пример отказывается от телеметрии и отчетов об ошибках и предотвращает автоматическое обновление Claude Code после установки:

124 124 

125```json devcontainer.json theme={null}125```json devcontainer.json theme={null}

126"containerEnv": {126"containerEnv": {


131 131 

132Функция Dev Container Feature всегда устанавливает последний выпуск Claude Code. Чтобы закрепить определенную версию Claude Code для воспроизводимых сборок, установите ее из вашего Dockerfile с помощью `npm install -g @anthropic-ai/claude-code@X.Y.Z` вместо использования функции и установите `DISABLE_AUTOUPDATER`, как показано выше.132Функция Dev Container Feature всегда устанавливает последний выпуск Claude Code. Чтобы закрепить определенную версию Claude Code для воспроизводимых сборок, установите ее из вашего Dockerfile с помощью `npm install -g @anthropic-ai/claude-code@X.Y.Z` вместо использования функции и установите `DISABLE_AUTOUPDATER`, как показано выше.

133 133 

134Для полного списка элементов управления политикой, включая правила разрешений, ограничения инструментов и списки разрешений серверов MCP, см. [Настройка Claude Code для вашей организации](/ru/admin-setup).134Для полного списка элементов управления политикой, включая правила разрешений, ограничения инструментов и списки разрешений серверов MCP, см. [Настройка Claude Code для вашей организации](/docs/ru/admin-setup).

135 135 

136Чтобы сделать [серверы MCP](/ru/mcp) доступными внутри контейнера, определите их в [области проекта](/ru/mcp#mcp-installation-scopes) в файле `.mcp.json` в корне репозитория, чтобы они были зарегистрированы вместе с конфигурацией контейнера разработки. Установите любые двоичные файлы, от которых зависят локальные серверы stdio, в вашем Dockerfile и добавьте домены удаленных серверов в ваш список разрешений сети.136Чтобы сделать [серверы MCP](/docs/ru/mcp) доступными внутри контейнера, определите их в [области проекта](/docs/ru/mcp#mcp-installation-scopes) в файле `.mcp.json` в корне репозитория, чтобы они были зарегистрированы вместе с конфигурацией контейнера разработки. Установите любые двоичные файлы, от которых зависят локальные серверы stdio, в вашем Dockerfile и добавьте домены удаленных серверов в ваш список разрешений сети.

137 137 

138<h2 id="restrict-network-egress">138<h2 id="restrict-network-egress">

139 Ограничение исходящего сетевого трафика139 Ограничение исходящего сетевого трафика

140</h2>140</h2>

141 141 

142Вы можете ограничить исходящий трафик контейнера только доменами, которые нужны Claude Code. См. [Требования к сетевому доступу](/ru/network-config#network-access-requirements) для доменов вывода и аутентификации и [Услуги телеметрии](/ru/data-usage#telemetry-services) для дополнительных соединений телеметрии и отчетов об ошибках и способов их отключения.142Вы можете ограничить исходящий трафик контейнера только доменами, которые нужны Claude Code. См. [Требования к сетевому доступу](/docs/ru/network-config#network-access-requirements) для доменов вывода и аутентификации и [Услуги телеметрии](/docs/ru/data-usage#telemetry-services) для дополнительных соединений телеметрии и отчетов об ошибках и способов их отключения.

143 143 

144Контейнер-образец включает скрипт [`init-firewall.sh`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/init-firewall.sh), который блокирует весь исходящий трафик, кроме доменов, которые нужны Claude Code и вашим инструментам разработки. Запуск брандмауэра внутри контейнера требует дополнительных разрешений, поэтому образец добавляет возможности `NET_ADMIN` и `NET_RAW` через `runArgs`. Скрипт брандмауэра и эти возможности не требуются для самого Claude Code: вы можете оставить их и вместо этого полагаться на ваши собственные элементы управления сетью.144Контейнер-образец включает скрипт [`init-firewall.sh`](https://github.com/anthropics/claude-code/blob/main/.devcontainer/init-firewall.sh), который блокирует весь исходящий трафик, кроме доменов, которые нужны Claude Code и вашим инструментам разработки. Запуск брандмауэра внутри контейнера требует дополнительных разрешений, поэтому образец добавляет возможности `NET_ADMIN` и `NET_RAW` через `runArgs`. Скрипт брандмауэра и эти возможности не требуются для самого Claude Code: вы можете оставить их и вместо этого полагаться на ваши собственные элементы управления сетью.

145 145 


151 151 

152Пропуск запросов разрешений удаляет вашу возможность просмотреть вызовы инструментов перед их запуском. Claude все еще может изменять любой файл в привязанном рабочем пространстве, который отображается непосредственно на вашем хосте, и достичь всего, что позволяет политика сети контейнера. Объедините этот флаг с [ограничениями исходящего сетевого трафика](#restrict-network-egress) выше, чтобы ограничить то, что может достичь обойденный сеанс.152Пропуск запросов разрешений удаляет вашу возможность просмотреть вызовы инструментов перед их запуском. Claude все еще может изменять любой файл в привязанном рабочем пространстве, который отображается непосредственно на вашем хосте, и достичь всего, что позволяет политика сети контейнера. Объедините этот флаг с [ограничениями исходящего сетевого трафика](#restrict-network-egress) выше, чтобы ограничить то, что может достичь обойденный сеанс.

153 153 

154Если вы хотите меньше подсказок без отключения проверок безопасности, рассмотрите вместо этого [автоматический режим](/ru/permission-modes#eliminate-prompts-with-auto-mode), который имеет классификатор для проверки действий перед их запуском. Чтобы предотвратить использование инженерами `--dangerously-skip-permissions` вообще, установите `permissions.disableBypassPermissionsMode` на `"disable"` в [управляемых параметрах](/ru/settings#permission-settings).154Если вы хотите меньше подсказок без отключения проверок безопасности, рассмотрите вместо этого [автоматический режим](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), который имеет классификатор для проверки действий перед их запуском. Чтобы предотвратить использование инженерами `--dangerously-skip-permissions` вообще, установите `permissions.disableBypassPermissionsMode` на `"disable"` в [управляемых параметрах](/docs/ru/settings#permission-settings).

155 155 

156<h2 id="try-the-reference-container">156<h2 id="try-the-reference-container">

157 Попробуйте контейнер-образец157 Попробуйте контейнер-образец


193 193 

194После того как Claude Code работает в вашем контейнере разработки, страницы ниже охватывают остальную часть развертывания организации: выбор пути аутентификации, доставка управляемой политики вне репозитория, мониторинг использования и понимание того, что Claude Code хранит и отправляет.194После того как Claude Code работает в вашем контейнере разработки, страницы ниже охватывают остальную часть развертывания организации: выбор пути аутентификации, доставка управляемой политики вне репозитория, мониторинг использования и понимание того, что Claude Code хранит и отправляет.

195 195 

196* [Настройка Claude Code для вашей организации](/ru/admin-setup): выбор поставщика аутентификации, решение о том, как политика достигает устройств, и планирование развертывания196* [Настройка Claude Code для вашей организации](/docs/ru/admin-setup): выбор поставщика аутентификации, решение о том, как политика достигает устройств, и планирование развертывания

197* [Параметры, управляемые сервером](/ru/server-managed-settings): доставка управляемой политики из консоли администратора Claude.ai, чтобы инженеры не могли обойти ее, редактируя файлы репозитория197* [Параметры, управляемые сервером](/docs/ru/server-managed-settings): доставка управляемой политики из консоли администратора Claude.ai, чтобы инженеры не могли обойти ее, редактируя файлы репозитория

198* [Мониторинг использования и аудит деятельности](/ru/monitoring-usage): экспорт метрик OpenTelemetry и просмотр того, что запускает ваша команда198* [Мониторинг использования и аудит деятельности](/docs/ru/monitoring-usage): экспорт метрик OpenTelemetry и просмотр того, что запускает ваша команда

199* [Требования к сетевому доступу](/ru/network-config#network-access-requirements): полный список доменов для прокси и брандмауэров199* [Требования к сетевому доступу](/docs/ru/network-config#network-access-requirements): полный список доменов для прокси и брандмауэров

200* [Услуги телеметрии и отказ](/ru/data-usage#telemetry-services): что Claude Code отправляет по умолчанию и переменные окружения, которые это отключают200* [Услуги телеметрии и отказ](/docs/ru/data-usage#telemetry-services): что Claude Code отправляет по умолчанию и переменные окружения, которые это отключают

201* [Изучение каталога `.claude`](/ru/claude-directory): что содержит монтирование тома, включая учетные данные, параметры и историю сеанса201* [Изучение каталога `.claude`](/docs/ru/claude-directory): что содержит монтирование тома, включая учетные данные, параметры и историю сеанса

202* [Среды Bash sandbox](/ru/sandbox-environments): сравнение контейнеров разработки со встроенной Bash sandbox, пользовательскими контейнерами и виртуальными машинами202* [Среды Bash sandbox](/docs/ru/sandbox-environments): сравнение контейнеров разработки со встроенной Bash sandbox, пользовательскими контейнерами и виртуальными машинами

203* [Модель безопасности](/ru/security): как система разрешений Claude Code, sandboxing и защита от внедрения подсказок работают вместе203* [Модель безопасности](/docs/ru/security): как система разрешений Claude Code, sandboxing и защита от внедрения подсказок работают вместе

204* [Режимы разрешений](/ru/permission-modes): полный диапазон от Plan Mode к автоматическому режиму к обходу и когда использовать каждый204* [Режимы разрешений](/docs/ru/permission-modes): полный диапазон от Plan Mode к автоматическому режиму к обходу и когда использовать каждый

llm-gateway.md +64 −0 created

Details

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# Другие LLM gateways

6 

7> Маршрутизируйте Claude Code через LLM gateway, который уже запускает ваша организация. Охватывает подключение Claude Code к шлюзу, развертывание шлюза для вашей организации и то, что Claude Code отправляет на шлюз.

8 

9В этом разделе рассматривается использование продукта шлюза, который уже запускает ваша организация, а не [Claude apps gateway](/docs/ru/claude-apps-gateway). Для получения информации о том, что такое шлюз, как он находится между Claude Code и вашим поставщиком, и как выбрать между Claude apps gateway и другим продуктом, см. [обзор шлюза](/docs/ru/gateways).

10 

11<Note>

12 * Если вы разработчик, подключающийся к существующему шлюзу: [подключите Claude Code к вашему шлюзу](/docs/ru/llm-gateway-connect)

13 * Если вы администратор, развертывающий шлюз для вашей организации: [разверните и распределите шлюз](/docs/ru/llm-gateway-rollout)

14 * Если вы настраиваете продукт шлюза: [справочник протокола шлюза](/docs/ru/llm-gateway-protocol)

15</Note>

16 

17Любой шлюз, который предоставляет [поддерживаемый формат API](/docs/ru/llm-gateway-protocol#api-formats), работает. Anthropic не одобряет, не поддерживает и не проверяет продукты шлюзов третьих сторон, и не поддерживает маршрутизацию Claude Code на модели, отличные от Claude, через какой-либо шлюз. Разверните шлюз, следуя его собственной документации, затем завершите сторону Claude Code с помощью [этапов развертывания ниже](#roll-out-a-gateway).

18 

19<h2 id="what-a-gateway-provides">

20 Что предоставляет шлюз

21</h2>

22 

23Шлюз дает вашей организации одно место для управления:

24 

25* **Учетные данные**: ключ поставщика остается на стороне сервера; разработчики вместо этого используют учетные данные шлюза

26* **Отслеживание использования**: атрибутируйте использование по разработчику или команде, независимо от того, какой поставщик обслуживает запрос

27* **Контроль затрат**: применяйте бюджеты и ограничения скорости в одном месте

28* **Логирование аудита**: логируйте каждый запрос модели для соответствия требованиям

29* **Переключение поставщика**: измените поставщика в конфигурации шлюза, не трогая машины разработчиков

30 

31Все эти функции, кроме переключения поставщика, применяются независимо от того, является ли upstream API Anthropic или [облачный поставщик](/docs/ru/third-party-integrations). Переключение поставщика без переконфигурации машин разработчиков также зависит от того, предоставляет ли шлюз одну [конечную точку в формате Anthropic](/docs/ru/llm-gateway-protocol#api-formats) независимо от upstream; шлюз, который предоставляет собственный формат поставщика, привязывает конфигурацию клиента к этому поставщику.

32 

33Компромисс заключается в том, что шлюз становится инфраструктурой, которую управляет ваша организация. Claude Code добавляет возможности с каждым выпуском, и шлюз, который не перенаправляет их, нарушает соответствующие функции, поэтому продукт шлюза должен быть обновлен по мере развития Claude Code. [Справочник протокола шлюза](/docs/ru/llm-gateway-protocol) охватывает то, что нужно перенаправлять.

34 

35<h2 id="roll-out-a-gateway">

36 Развертывание шлюза

37</h2>

38 

39Когда вы готовы развернуть LLM gateway для вашей организации, последовательность одинакова независимо от того, какой продукт шлюза вы выберете:

40 

411. Разверните шлюз и дайте ему учетные данные вашего поставщика, чтобы он мог аутентифицировать запросы, которые он перенаправляет.

422. Выдайте каждому разработчику учетные данные шлюза, чтобы использование было отнесено разработчику и отключение отзывает одно учетное данные.

433. Распределите конфигурацию через [управляемый файл параметров](/docs/ru/settings#settings-files) и ваши инструменты управления секретами, чтобы каждая машина получила базовый URL и учетные данные. Когда оба распределены, разработчики ничего не настраивают. Если у вас нет распределения параметров, разработчики следуют [странице подключения](/docs/ru/llm-gateway-connect), чтобы установить переменные самостоятельно.

444. Попросите каждого разработчика [проверить конфигурацию в Claude Code](/docs/ru/llm-gateway-connect#check-for-an-existing-configuration), чтобы проблемы распределения выявились до того, как они будут зависеть от шлюза.

45 

46[Развертывание LLM gateway для вашей организации](/docs/ru/llm-gateway-rollout) проходит каждый шаг и показывает файлы конфигурации для распределения на каждом. Шлюз — это одна часть организационной настройки; для применения политики, видимости использования и решений по обработке данных см. [Настройка Claude Code для вашей организации](/docs/ru/admin-setup).

47 

48<h2 id="subscriptions-and-gateways">

49 Подписки и шлюзы

50</h2>

51 

52Пока активна [переменная учетных данных шлюза](/docs/ru/llm-gateway-connect#set-the-credential-variable) или `apiKeyHelper`, подписка claude.ai разработчика не используется: учетные данные заменяют вход подписки для этого сеанса, и ограничения использования подписки не применяются. Этот трафик выставляется счетом за токен тому, кто владеет учетными данными, которые перенаправляет шлюз, например вашей учетной записи Anthropic Console организации, или вашей учетной записи Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, когда шлюз маршрутизирует туда.

53 

54[`ANTHROPIC_BASE_URL`](/docs/ru/llm-gateway-connect#set-the-base-url-and-credential) — это переменная, которая указывает Claude Code на шлюз. Установка только этой переменной без учетных данных шлюза не заменяет подписку. Запросы по-прежнему маршрутизируются через шлюз, но сохраненный вход claude.ai остается активным учетным данным, поэтому применяются его ограничения использования и выставление счетов. Шлюзы, которые передают этот трафик на Anthropic, должны перенаправлять возможность OAuth в `anthropic-beta`; см. [справочник заголовков запроса](/docs/ru/llm-gateway-protocol#request-headers).

55 

56<h2 id="related-pages">

57 Связанные страницы

58</h2>

59 

60* [Обзор шлюза](/docs/ru/gateways): как работает шлюз и как выбрать между Claude apps gateway и другим продуктом

61* [Claude apps gateway](/docs/ru/claude-apps-gateway): самостоятельно размещаемый шлюз Anthropic с входом SSO и телеметрией OTLP

62* [Подключение Claude Code к LLM gateway](/docs/ru/llm-gateway-connect): установите базовый URL и учетные данные на вашей собственной машине, с конфигурацией для каждой поверхности и таблицей устранения неполадок

63* [Развертывание LLM gateway для вашей организации](/docs/ru/llm-gateway-rollout): контрольный список администратора для развертывания шлюза, выдачи учетных данных разработчика и распределения управляемых параметров

64* [Справочник протокола шлюза](/docs/ru/llm-gateway-protocol): что Claude Code отправляет на шлюз, для операторов, настраивающих его, охватывающий конечные точки, заголовки для перенаправления и передачу функций

prompt-caching.md +38 −38

Details

20 20 

21<img src="https://mintcdn.com/claude-code/VbDJw--l6T9a9Wvm/images/prompt-caching-prefix.svg?fit=max&auto=format&n=VbDJw--l6T9a9Wvm&q=85&s=f2e8f0b8298a50305fe428ca3f1d1594" className="dark:hidden" alt="Четыре хода показаны как растущие горизонтальные полосы. Запрос каждого хода содержит всё из предыдущего хода плюс последний обмен, добавленный в конец. На ходах два и три неизменённый префикс читается из кэша, и только новый обмен обрабатывается. На ходе четыре системный запрос изменился, поэтому префикс больше не совпадает, и весь запрос переобрабатывается и записывается." width="720" height="454" data-path="images/prompt-caching-prefix.svg" />21<img src="https://mintcdn.com/claude-code/VbDJw--l6T9a9Wvm/images/prompt-caching-prefix.svg?fit=max&auto=format&n=VbDJw--l6T9a9Wvm&q=85&s=f2e8f0b8298a50305fe428ca3f1d1594" className="dark:hidden" alt="Четыре хода показаны как растущие горизонтальные полосы. Запрос каждого хода содержит всё из предыдущего хода плюс последний обмен, добавленный в конец. На ходах два и три неизменённый префикс читается из кэша, и только новый обмен обрабатывается. На ходе четыре системный запрос изменился, поэтому префикс больше не совпадает, и весь запрос переобрабатывается и записывается." width="720" height="454" data-path="images/prompt-caching-prefix.svg" />

22 22 

23<img src="https://mintcdn.com/claude-code/VbDJw--l6T9a9Wvm/images/prompt-caching-prefix-dark.svg?fit=max&auto=format&n=VbDJw--l6T9a9Wvm&q=85&s=7434a04e08187edd26ec6c3dd332f624" className="hidden dark:block" alt="Четыре хода показаны как растущие горизонтальные полосы. Запрос каждого хода содержит всё из предыдущего хода плюс последний обмен, добавленный в конец. На ходах два и три неизменённый префикс читается из кэша, и только новый обмен обрабатывается. На ходе четыре системный запрос изменился, поэтому префикс больше не совпадает, и весь запрос переобрабатывается и записывается." width="720" height="454" data-path="images/prompt-caching-prefix-dark.svg" />23<img src="https://mintcdn.com/claude-code/_xqph1dUOslCOwsj/images/prompt-caching-prefix-dark.svg?fit=max&auto=format&n=_xqph1dUOslCOwsj&q=85&s=297dc1c639f0915cae858d0c4b6f3be5" className="hidden dark:block" alt="Четыре хода показаны как растущие горизонтальные полосы. Запрос каждого хода содержит всё из предыдущего хода плюс последний обмен, добавленный в конец. На ходах два и три неизменённый префикс читается из кэша, и только новый обмен обрабатывается. На ходе четыре системный запрос изменился, поэтому префикс больше не совпадает, и весь запрос переобрабатывается и записывается." width="720" height="454" data-path="images/prompt-caching-prefix-dark.svg" />

24 24 

25Чтобы максимально использовать сопоставление префиксов, Claude Code упорядочивает каждый запрос так, чтобы содержимое, которое редко изменяется между ходами, шло первым:25Чтобы максимально использовать сопоставление префиксов, Claude Code упорядочивает каждый запрос так, чтобы содержимое, которое редко изменяется между ходами, шло первым:

26 26 


32 32 

33Изменение слоя разговора оставляет системный запрос и контекст проекта кэшированными. Изменение системного запроса инвалидирует всё, потому что всё последующее содержимое теперь находится за другим префиксом. Третий столбец даёт общие триггеры, а не исчерпывающий список, и разделы ниже охватывают полный набор, включая содержимое, такое как стиль вывода, который фиксируется в начале сеанса.33Изменение слоя разговора оставляет системный запрос и контекст проекта кэшированными. Изменение системного запроса инвалидирует всё, потому что всё последующее содержимое теперь находится за другим префиксом. Третий столбец даёт общие триггеры, а не исчерпывающий список, и разделы ниже охватывают полный набор, включая содержимое, такое как стиль вывода, который фиксируется в начале сеанса.

34 34 

35Правило сопоставления префиксов объясняет большинство поведений на этой странице. [Plan mode](/ru/permission-modes#analyze-before-you-edit-with-plan-mode) и [загрузка skills](/ru/skills), например, добавляют свои инструкции как сообщения разговора, поэтому кэшированный префикс остаётся нетронутым.35Правило сопоставления префиксов объясняет большинство поведений на этой странице. [Plan mode](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) и [загрузка skills](/docs/ru/skills), например, добавляют свои инструкции как сообщения разговора, поэтому кэшированный префикс остаётся нетронутым.

36 36 

37Два параметра вообще не являются частью текста запроса, поэтому они не отображаются в таблице слоёв, но оба являются частью ключа кэша:37Два параметра вообще не являются частью текста запроса, поэтому они не отображаются в таблице слоёв, но оба являются частью ключа кэша:

38 38 


49 49 

50Кэширование происходит на стороне сервера в инфраструктуре, которая обслуживает вашу модель. Где это находится, зависит от того, как вы аутентифицируетесь:50Кэширование происходит на стороне сервера в инфраструктуре, которая обслуживает вашу модель. Где это находится, зависит от того, как вы аутентифицируетесь:

51 51 

52* **API ключ, подписка Claude или [Claude Platform on AWS](/ru/claude-platform-on-aws)**: кэш находится в инфраструктуре Anthropic, доступ через [Claude API](https://platform.claude.com/docs)52* **API ключ, подписка Claude или [Claude Platform on AWS](/docs/ru/claude-platform-on-aws)**: кэш находится в инфраструктуре Anthropic, доступ через [Claude API](https://platform.claude.com/docs)

53* **Amazon Bedrock или Google Cloud's Agent Platform**: кэш находится в инфраструктуре обслуживания вашего облачного провайдера53* **Amazon Bedrock или Google Cloud's Agent Platform**: кэш находится в инфраструктуре обслуживания вашего облачного провайдера

54* **Microsoft Foundry**: запросы маршрутизируются в инфраструктуру Anthropic54* **Microsoft Foundry**: запросы маршрутизируются в инфраструктуру Anthropic

55* **Пользовательский `ANTHROPIC_BASE_URL` или [LLM gateway](/ru/llm-gateway)**: кэш находится там, где перенаправляются ваши запросы, и работает ли кэширование, зависит от шлюза55* **Пользовательский `ANTHROPIC_BASE_URL` или [LLM gateway](/docs/ru/llm-gateway)**: кэш находится там, где перенаправляются ваши запросы, и работает ли кэширование, зависит от шлюза

56 56 

57Для информации о том, что хранит и обрабатывает каждый провайдер, см. [использование данных](/ru/data-usage). Где бы ни находился кэш, записи истекают после периода неактивности, и [Время жизни кэша](#cache-lifetime) ниже охватывает TTL и как его продлить.57Для информации о том, что хранит и обрабатывает каждый провайдер, см. [использование данных](/docs/ru/data-usage). Где бы ни находился кэш, записи истекают после периода неактивности, и [Время жизни кэша](#cache-lifetime) ниже охватывает TTL и как его продлить.

58 58 

59<h2 id="actions-that-invalidate-the-cache">59<h2 id="actions-that-invalidate-the-cache">

60 Действия, которые инвалидируют кэш60 Действия, которые инвалидируют кэш


75 Переключение моделей75 Переключение моделей

76</h3>76</h3>

77 77 

78Каждая модель имеет свой кэш. Переключение с помощью [`/model`](/ru/model-config#setting-your-model) означает, что следующий запрос читает всю историю разговора без попаданий в кэш, даже если содержимое идентично.78Каждая модель имеет свой кэш. Переключение с помощью [`/model`](/docs/ru/model-config#setting-your-model) означает, что следующий запрос читает всю историю разговора без попаданий в кэш, даже если содержимое идентично.

79 79 

80Параметр модели [`opusplan`](/ru/model-config#opusplan-model-setting) разрешается в Opus во время режима плана и Sonnet во время выполнения, поэтому каждое переключение режима плана — это переключение модели и запускает свежий кэш.80Параметр модели [`opusplan`](/docs/ru/model-config#opusplan-model-setting) разрешается в Opus во время режима плана и Sonnet во время выполнения, поэтому каждое переключение режима плана — это переключение модели и запускает свежий кэш.

81 81 

82[Автоматический откат модели](/ru/model-config#automatic-model-fallback) на Fable 5 также является переключением модели. Когда классификатор безопасности помечает запрос, Claude Code повторно запускает его на модели Opus по умолчанию и сеанс продолжается там.82[Автоматический откат модели](/docs/ru/model-config#automatic-model-fallback) на Fable 5 также является переключением модели. Когда классификатор безопасности помечает запрос, Claude Code повторно запускает его на модели Opus по умолчанию и сеанс продолжается там.

83 83 

84<h3 id="changing-effort-level">84<h3 id="changing-effort-level">

85 Изменение уровня усилий85 Изменение уровня усилий

86</h3>86</h3>

87 87 

88Кэш индексируется по [уровню усилий](/ru/model-config#adjust-effort-level), а также по модели, поэтому переключение с помощью `/effort` означает, что следующий запрос читает всю историю разговора без попаданий в кэш. После начала разговора Claude Code показывает диалог подтверждения перед применением изменения усилий, которое инвалидировало бы кэш. Изменение, которое разрешается на тот же уровень, уже действующий, например явное установление значения по умолчанию модели, пропускает диалог и сохраняет кэш.88Кэш индексируется по [уровню усилий](/docs/ru/model-config#adjust-effort-level), а также по модели, поэтому переключение с помощью `/effort` означает, что следующий запрос читает всю историю разговора без попаданий в кэш. После начала разговора Claude Code показывает диалог подтверждения перед применением изменения усилий, которое инвалидировало бы кэш. Изменение, которое разрешается на тот же уровень, уже действующий, например явное установление значения по умолчанию модели, пропускает диалог и сохраняет кэш.

89 89 

90<h3 id="turning-on-fast-mode">90<h3 id="turning-on-fast-mode">

91 Включение быстрого режима91 Включение быстрого режима

92</h3>92</h3>

93 93 

94Включение [быстрого режима](/ru/fast-mode) добавляет заголовок запроса, который является частью ключа кэша, поэтому следующий запрос читает всю историю разговора без попаданий в кэш. Эти некэшированные входные токены выставляются по [тарифам быстрого режима](/ru/fast-mode#understand-the-cost-tradeoff), поэтому включение его в начале сеанса стоит дешевле, чем включение его глубоко в длинный сеанс. Включение быстрого режима из модели, отличной от Opus, также [переключает вашу модель](#switching-models), что само по себе запускает свежий кэш.94Включение [быстрого режима](/docs/ru/fast-mode) добавляет заголовок запроса, который является частью ключа кэша, поэтому следующий запрос читает всю историю разговора без попаданий в кэш. Эти некэшированные входные токены выставляются по [тарифам быстрого режима](/docs/ru/fast-mode#understand-the-cost-tradeoff), поэтому включение его в начале сеанса стоит дешевле, чем включение его глубоко в длинный сеанс. Включение быстрого режима из модели, отличной от Opus, также [переключает вашу модель](#switching-models), что само по себе запускает свежий кэш.

95 95 

96Стоимость применяется один раз за разговор. После первого хода в быстром режиме Claude Code продолжает отправлять заголовок и варьирует только параметр скорости запроса, который не является частью ключа кэша. Отключение быстрого режима, [автоматический откат к стандартной скорости](/ru/fast-mode#handle-rate-limits) после ограничения скорости и повторное включение позже все сохраняют кэш. `/clear` и `/compact` сбрасывают это, поскольку они перестраивают кэш в этих точках в любом случае.96Стоимость применяется один раз за разговор. После первого хода в быстром режиме Claude Code продолжает отправлять заголовок и варьирует только параметр скорости запроса, который не является частью ключа кэша. Отключение быстрого режима, [автоматический откат к стандартной скорости](/docs/ru/fast-mode#handle-rate-limits) после ограничения скорости и повторное включение позже все сохраняют кэш. `/clear` и `/compact` сбрасывают это, поскольку они перестраивают кэш в этих точках в любом случае.

97 97 

98<h3 id="connecting-or-disconnecting-an-mcp-server">98<h3 id="connecting-or-disconnecting-an-mcp-server">

99 Подключение или отключение MCP сервера99 Подключение или отключение MCP сервера

100</h3>100</h3>

101 101 

102Определения инструментов находятся в слое системного запроса, поэтому кэш инвалидируется, когда набор определений инструментов в запросе изменяется между ходами. Переключение [инструмента advisor](/ru/advisor) является исключением: его определение находится после точки разрыва кэша, поэтому включение или отключение `/advisor` сохраняет кэшированный префикс нетронутым. Зависит ли [изменение MCP сервера](/ru/mcp) от этого, зависит от того, отложены ли его инструменты [поиском инструментов](/ru/mcp#scale-with-mcp-tool-search) или загружены в префикс:102Определения инструментов находятся в слое системного запроса, поэтому кэш инвалидируется, когда набор определений инструментов в запросе изменяется между ходами. Переключение [инструмента advisor](/docs/ru/advisor) является исключением: его определение находится после точки разрыва кэша, поэтому включение или отключение `/advisor` сохраняет кэшированный префикс нетронутым. Зависит ли [изменение MCP сервера](/docs/ru/mcp) от этого, зависит от того, отложены ли его инструменты [поиском инструментов](/docs/ru/mcp#scale-with-mcp-tool-search) или загружены в префикс:

103 103 

104* **Отложенные инструменты**, по умолчанию на поддерживаемых моделях: подключение, отключение сервера или изменение его списка инструментов только добавляет новое содержимое и не нарушает ничего, что уже кэшировано.104* **Отложенные инструменты**, по умолчанию на поддерживаемых моделях: подключение, отключение сервера или изменение его списка инструментов только добавляет новое содержимое и не нарушает ничего, что уже кэшировано.

105* **Инструменты, загруженные в префикс**: любое изменение их инвалидирует кэш. Это происходит, когда [поиск инструментов недоступен или отключен](/ru/mcp#configure-tool-search), например на Google Cloud's Agent Platform или с пользовательским шлюзом `ANTHROPIC_BASE_URL`. Это также происходит для сервера или инструмента, отмеченного [`alwaysLoad`](/ru/mcp#exempt-a-server-from-deferral), и для определений, сохраняемых впереди [загрузкой на основе порога](/ru/mcp#configure-tool-search).105* **Инструменты, загруженные в префикс**: любое изменение их инвалидирует кэш. Это происходит, когда [поиск инструментов недоступен или отключен](/docs/ru/mcp#configure-tool-search), например на Google Cloud's Agent Platform или с пользовательским шлюзом `ANTHROPIC_BASE_URL`. Это также происходит для сервера или инструмента, отмеченного [`alwaysLoad`](/docs/ru/mcp#exempt-a-server-from-deferral), и для определений, сохраняемых впереди [загрузкой на основе порога](/docs/ru/mcp#configure-tool-search).

106 106 

107Когда инструменты загружаются в префикс, наиболее частая причина инвалидации — это подключение или отключение сервера в середине сеанса, что может произойти без каких-либо действий с вашей стороны: процесс stdio сервера выходит, сеанс HTTP истекает, или сервер [автоматически переподключается после временного сбоя](/ru/mcp#automatic-reconnection). Подключённый сервер также может отправить [динамическое обновление инструмента](/ru/mcp#dynamic-tool-updates), которое изменяет его список инструментов.107Когда инструменты загружаются в префикс, наиболее частая причина инвалидации — это подключение или отключение сервера в середине сеанса, что может произойти без каких-либо действий с вашей стороны: процесс stdio сервера выходит, сеанс HTTP истекает, или сервер [автоматически переподключается после временного сбоя](/docs/ru/mcp#automatic-reconnection). Подключённый сервер также может отправить [динамическое обновление инструмента](/docs/ru/mcp#dynamic-tool-updates), которое изменяет его список инструментов.

108 108 

109Редактирование конфигурации MCP само по себе не изменяет кэш. Новая конфигурация вступает в силу только после перезагрузки, когда сервер подключается или отключается.109Редактирование конфигурации MCP само по себе не изменяет кэш. Новая конфигурация вступает в силу только после перезагрузки, когда сервер подключается или отключается.

110 110 


112 Включение или отключение плагина112 Включение или отключение плагина

113</h3>113</h3>

114 114 

115[Плагины](/ru/plugins) объединяют несколько типов компонентов, и стоимость изменения зависит от того, какие компоненты предоставляет плагин. Skills, команды, агенты, hooks, LSP серверы, мониторы и темы никогда не инвалидируют кэш: все, что они добавляют в запрос, добавляется после существующего разговора, поэтому следующий запрос платит за новое содержимое, но все еще читает все, что было до него, из кэша.115[Плагины](/docs/ru/plugins) объединяют несколько типов компонентов, и стоимость изменения зависит от того, какие компоненты предоставляет плагин. Skills, команды, агенты, hooks, LSP серверы, мониторы и темы никогда не инвалидируют кэш: все, что они добавляют в запрос, добавляется после существующего разговора, поэтому следующий запрос платит за новое содержимое, но все еще читает все, что было до него, из кэша.

116 116 

117Исключение — это плагин, который предоставляет [MCP серверы](/ru/plugins-reference#mcp-servers). Включение или отключение одного следует тем же правилам, что и [подключение или отключение MCP сервера](#connecting-or-disconnecting-an-mcp-server): кэш сохраняется, когда инструменты сервера отложены, и следующий запрос повторно читает весь разговор, когда они загружаются в префикс.117Исключение — это плагин, который предоставляет [MCP серверы](/docs/ru/plugins-reference#mcp-servers). Включение или отключение одного следует тем же правилам, что и [подключение или отключение MCP сервера](#connecting-or-disconnecting-an-mcp-server): кэш сохраняется, когда инструменты сервера отложены, и следующий запрос повторно читает весь разговор, когда они загружаются в префикс.

118 118 

119Изменения плагина применяются при запуске [`/reload-plugins`](/ru/discover-plugins#apply-plugin-changes-without-restarting) или при запуске нового сеанса. Стоимость, будь то добавленные объявления или полное повторное чтение, отображается на первом ходе после перезагрузки, а не когда вы запускаете `/plugin install`, `/plugin enable` или `/plugin disable`. {/* min-version: 2.1.163 */}Начиная с v2.1.163, когда перезагрузка вызовет полное повторное чтение, `/reload-plugins` показывает предупреждение и не применяет перезагрузку. Передайте `--force` для применения в любом случае.119Изменения плагина применяются при запуске [`/reload-plugins`](/docs/ru/discover-plugins#apply-plugin-changes-without-restarting) или при запуске нового сеанса. Стоимость, будь то добавленные объявления или полное повторное чтение, отображается на первом ходе после перезагрузки, а не когда вы запускаете `/plugin install`, `/plugin enable` или `/plugin disable`. {/* min-version: 2.1.163 */}Начиная с v2.1.163, когда перезагрузка вызовет полное повторное чтение, `/reload-plugins` показывает предупреждение и не применяет перезагрузку. Передайте `--force` для применения в любом случае.

120 120 

121Отключение плагина, который вы включили ранее в сеансе, восстанавливает предыдущую форму запроса. Если этот префикс все еще находится в пределах своего [времени жизни кэша](#cache-lifetime), следующий запрос читает более старую запись кэша вместо перестроения.121Отключение плагина, который вы включили ранее в сеансе, восстанавливает предыдущую форму запроса. Если этот префикс все еще находится в пределах своего [времени жизни кэша](#cache-lifetime), следующий запрос читает более старую запись кэша вместо перестроения.

122 122 


124 Отказ от всего инструмента124 Отказ от всего инструмента

125</h3>125</h3>

126 126 

127Добавление простого имени инструмента, такого как `Bash` или `WebFetch`, в качестве [правила отказа](/ru/permissions#manage-permissions) удаляет этот инструмент из контекста Claude полностью. Встроенные определения инструментов загружаются в слой системного запроса, поэтому добавление или удаление одного из этих правил в середине сеанса инвалидирует кэш. Изменение вступает в силу в следующем ходе, добавляете ли вы его через `/permissions` или путём [прямого редактирования файла параметров](/ru/settings#when-edits-take-effect).127Добавление простого имени инструмента, такого как `Bash` или `WebFetch`, в качестве [правила отказа](/docs/ru/permissions#manage-permissions) удаляет этот инструмент из контекста Claude полностью. Встроенные определения инструментов загружаются в слой системного запроса, поэтому добавление или удаление одного из этих правил в середине сеанса инвалидирует кэш. Изменение вступает в силу в следующем ходе, добавляете ли вы его через `/permissions` или путём [прямого редактирования файла параметров](/docs/ru/settings#when-edits-take-effect).

128 128 

129Только правило отказа, которое совпадает в позиции имени инструмента, имеет этот эффект: простое имя инструмента, эквивалентная форма `Bash(*)` или [глоб имени инструмента](/ru/permissions#tool-name-wildcards) как `"*"`. Глоб, который совпадает только с инструментами MCP, такой как `"mcp__*"`, удаляет эти инструменты так же, но оставляет кэш нетронутым, когда совпадающие инструменты [отложены](#connecting-or-disconnecting-an-mcp-server), по умолчанию, поскольку отложенные определения никогда не были в кэшированном префиксе. Правила отказа с областью действия, такие как `Bash(rm *)`, и все правила разрешения и запроса, не изменяют, какие инструменты видит Claude. Claude Code проверяет их, когда Claude пытается выполнить вызов, оставляя префикс нетронутым.129Только правило отказа, которое совпадает в позиции имени инструмента, имеет этот эффект: простое имя инструмента, эквивалентная форма `Bash(*)` или [глоб имени инструмента](/docs/ru/permissions#tool-name-wildcards) как `"*"`. Глоб, который совпадает только с инструментами MCP, такой как `"mcp__*"`, удаляет эти инструменты так же, но оставляет кэш нетронутым, когда совпадающие инструменты [отложены](#connecting-or-disconnecting-an-mcp-server), по умолчанию, поскольку отложенные определения никогда не были в кэшированном префиксе. Правила отказа с областью действия, такие как `Bash(rm *)`, и все правила разрешения и запроса, не изменяют, какие инструменты видит Claude. Claude Code проверяет их, когда Claude пытается выполнить вызов, оставляя префикс нетронутым.

130 130 

131<h3 id="compacting-the-conversation">131<h3 id="compacting-the-conversation">

132 Сжатие разговора132 Сжатие разговора

133</h3>133</h3>

134 134 

135[Сжатие](/ru/context-window#what-survives-compaction) заменяет историю ваших сообщений резюме. По замыслу, это инвалидирует слой разговора, поскольку следующий запрос имеет новую, более короткую историю, которая не совпадает с префиксом старой. Claude Code повторно использует слой системного запроса и перезагружает контекст проекта с диска, который кэш-попадает только если CLAUDE.md и память не изменились с начала сеанса.135[Сжатие](/docs/ru/context-window#what-survives-compaction) заменяет историю ваших сообщений резюме. По замыслу, это инвалидирует слой разговора, поскольку следующий запрос имеет новую, более короткую историю, которая не совпадает с префиксом старой. Claude Code повторно использует слой системного запроса и перезагружает контекст проекта с диска, который кэш-попадает только если CLAUDE.md и память не изменились с начала сеанса.

136 136 

137Чтобы создать резюме, Claude Code отправляет одноразовый запрос с тем же системным запросом, инструментами и историей, что и ваш разговор, плюс инструкция суммирования, добавленная как финальное сообщение пользователя. Поскольку он совпадает с вашим префиксом, этот запрос читает существующий кэш, а не переобрабатывает полную историю. Большая часть времени сжатия идёт на создание резюме, а не на пропуск кэша. Ход, который следует, перестраивает кэш разговора только для намного более короткого резюме, поэтому ход после сжатия — это не медленная часть.137Чтобы создать резюме, Claude Code отправляет одноразовый запрос с тем же системным запросом, инструментами и историей, что и ваш разговор, плюс инструкция суммирования, добавленная как финальное сообщение пользователя. Поскольку он совпадает с вашим префиксом, этот запрос читает существующий кэш, а не переобрабатывает полную историю. Большая часть времени сжатия идёт на создание резюме, а не на пропуск кэша. Ход, который следует, перестраивает кэш разговора только для намного более короткого резюме, поэтому ход после сжатия — это не медленная часть.

138 138 


144 Обновление Claude Code144 Обновление Claude Code

145</h3>145</h3>

146 146 

147Новая версия Claude Code обычно обновляет системный запрос или определения инструментов, поэтому первый запрос после обновления перестраивает кэш с начала. [Auto-update](/ru/setup#auto-updates) загружает новые версии в фоне, но применяет их при следующем запуске, никогда в середине сеанса, поэтому вы видите это как первый ход без кэша после перезагрузки, а не как сюрприз во время сеанса. Установите `DISABLE_AUTOUPDATER=1` для управления тем, когда применяются обновления.147Новая версия Claude Code обычно обновляет системный запрос или определения инструментов, поэтому первый запрос после обновления перестраивает кэш с начала. [Auto-update](/docs/ru/setup#auto-updates) загружает новые версии в фоне, но применяет их при следующем запуске, никогда в середине сеанса, поэтому вы видите это как первый ход без кэша после перезагрузки, а не как сюрприз во время сеанса. Установите `DISABLE_AUTOUPDATER=1` для управления тем, когда применяются обновления.

148 148 

149<Note>149<Note>

150 [Возобновление сеанса](/ru/sessions#resume-a-session) после обновления переобрабатывает всю историю разговора без попаданий в кэш, поскольку история теперь находится за другим системным запросом. Стоимость масштабируется с тем, как долго возобновляемый разговор, поэтому первый ход обратно в длинный сеанс может быть самым дорогим запросом, который вы отправляете.150 [Возобновление сеанса](/docs/ru/sessions#resume-a-session) после обновления переобрабатывает всю историю разговора без попаданий в кэш, поскольку история теперь находится за другим системным запросом. Стоимость масштабируется с тем, как долго возобновляемый разговор, поэтому первый ход обратно в длинный сеанс может быть самым дорогим запросом, который вы отправляете.

151</Note>151</Note>

152 152 

153<h2 id="actions-that-keep-the-cache">153<h2 id="actions-that-keep-the-cache">


177 177 

178Ваши файлы CLAUDE.md на уровне корня проекта и пользователя читаются один раз в начале сеанса и хранятся в памяти. Редактирование их в середине сеанса не инвалидирует кэш, но редактирование также не применяется. Claude продолжает работать с версией, которая была загружена в начале сеанса. Новое содержимое загружается при следующем `/clear`, `/compact` или перезагрузке.178Ваши файлы CLAUDE.md на уровне корня проекта и пользователя читаются один раз в начале сеанса и хранятся в памяти. Редактирование их в середине сеанса не инвалидирует кэш, но редактирование также не применяется. Claude продолжает работать с версией, которая была загружена в начале сеанса. Новое содержимое загружается при следующем `/clear`, `/compact` или перезагрузке.

179 179 

180[Вложенные файлы CLAUDE.md в подкаталогах](/ru/memory) и [правила с frontmatter `paths:`](/ru/memory#path-specific-rules) загружаются позже, когда Claude впервые читает совпадающий файл. Редактирование одного до его загрузки вступает в силу. После загрузки содержимое является частью истории разговора, поэтому редактирование в середине сеанса не ретроактивно его изменяет.180[Вложенные файлы CLAUDE.md в подкаталогах](/docs/ru/memory) и [правила с frontmatter `paths:`](/docs/ru/memory#path-specific-rules) загружаются позже, когда Claude впервые читает совпадающий файл. Редактирование одного до его загрузки вступает в силу. После загрузки содержимое является частью истории разговора, поэтому редактирование в середине сеанса не ретроактивно его изменяет.

181 181 

182<h3 id="changing-output-style">182<h3 id="changing-output-style">

183 Изменение стиля вывода183 Изменение стиля вывода

184</h3>184</h3>

185 185 

186[Стиль вывода](/ru/output-styles) является частью системного запроса, который Claude Code читает один раз в начале сеанса. Изменение его через `/config` или параметр `outputStyle` в середине сеанса не инвалидирует кэш, но изменение также не применяется. Claude продолжает использовать стиль, который был загружен в начале сеанса. Новый стиль загружается при следующем `/clear` или перезагрузке.186[Стиль вывода](/docs/ru/output-styles) является частью системного запроса, который Claude Code читает один раз в начале сеанса. Изменение его через `/config` или параметр `outputStyle` в середине сеанса не инвалидирует кэш, но изменение также не применяется. Claude продолжает использовать стиль, который был загружен в начале сеанса. Новый стиль загружается при следующем `/clear` или перезагрузке.

187 187 

188<h3 id="changing-permission-mode">188<h3 id="changing-permission-mode">

189 Изменение режима разрешений189 Изменение режима разрешений

190</h3>190</h3>

191 191 

192Переключение между [режимами разрешений](/ru/permission-modes), например с по умолчанию на принятие редактирований, не изменяет системный запрос или определения инструментов, поэтому изменения режима безопасны для кэша. Исключение — режим плана с параметром модели [`opusplan`](/ru/model-config#opusplan-model-setting), который переключает модель между Opus и Sonnet при входе или выходе из режима плана. Это делает переключение режима [переключением модели](#switching-models).192Переключение между [режимами разрешений](/docs/ru/permission-modes), например с по умолчанию на принятие редактирований, не изменяет системный запрос или определения инструментов, поэтому изменения режима безопасны для кэша. Исключение — режим плана с параметром модели [`opusplan`](/docs/ru/model-config#opusplan-model-setting), который переключает модель между Opus и Sonnet при входе или выходе из режима плана. Это делает переключение режима [переключением модели](#switching-models).

193 193 

194<h3 id="invoking-skills-and-commands">194<h3 id="invoking-skills-and-commands">

195 Вызов skills и команд195 Вызов skills и команд

196</h3>196</h3>

197 197 

198[Skills](/ru/skills) и [команды](/ru/commands) вводят свои инструкции как сообщения пользователя в точке вызова. Ничего более раннего в разговоре не изменяется.198[Skills](/docs/ru/skills) и [команды](/docs/ru/commands) вводят свои инструкции как сообщения пользователя в точке вызова. Ничего более раннего в разговоре не изменяется.

199 199 

200<h3 id="running-/recap">200<h3 id="running-/recap">

201 Запуск `/recap`201 Запуск `/recap`

202</h3>202</h3>

203 203 

204[`/recap`](/ru/interactive-mode#session-recap) создаёт резюме для отображения в вашем терминале. В отличие от `/compact`, оно добавляет резюме как вывод команды, а не заменяет историю ваших сообщений, поэтому кэшированный префикс остаётся нетронутым.204[`/recap`](/docs/ru/interactive-mode#session-recap) создаёт резюме для отображения в вашем терминале. В отличие от `/compact`, оно добавляет резюме как вывод команды, а не заменяет историю ваших сообщений, поэтому кэшированный префикс остаётся нетронутым.

205 205 

206<h3 id="rewinding-the-conversation">206<h3 id="rewinding-the-conversation">

207 Перемотка разговора207 Перемотка разговора

208</h3>208</h3>

209 209 

210[`/rewind`](/ru/checkpointing) усекает ваш разговор назад к более раннему ходу. Оставшаяся история — это то же содержимое, из которого кэш был построен в то время, и слои системного запроса и контекста проекта не изменены, поэтому следующий запрос попадает в более раннюю запись кэша. Каждый ход с тех пор читал через этот префикс, который держал запись в тепле, даже если исходный ход был давно, чем TTL.210[`/rewind`](/docs/ru/checkpointing) усекает ваш разговор назад к более раннему ходу. Оставшаяся история — это то же содержимое, из которого кэш был построен в то время, и слои системного запроса и контекста проекта не изменены, поэтому следующий запрос попадает в более раннюю запись кэша. Каждый ход с тех пор читал через этот префикс, который держал запись в тепле, даже если исходный ход был давно, чем TTL.

211 211 

212Восстановление контрольных точек файлов вместе с разговором не имеет отдельного эффекта на кэш. Содержимое файлов входит в контекст только когда Claude их читает, то же самое, что [редактирование файлов в вашем репозитории](#editing-files-in-your-repository).212Восстановление контрольных точек файлов вместе с разговором не имеет отдельного эффекта на кэш. Содержимое файлов входит в контекст только когда Claude их читает, то же самое, что [редактирование файлов в вашем репозитории](#editing-files-in-your-repository).

213 213 


239 Переопределить TTL239 Переопределить TTL

240</h3>240</h3>

241 241 

242Установите `FORCE_PROMPT_CACHING_5M=1` для принудительного пятиминутного TTL независимо от аутентификации. Это полезно, когда вы отлаживаете поведение кэша, сравниваете два TTL или переопределяете `ENABLE_PROMPT_CACHING_1H`, установленный в [управляемых параметрах](/ru/settings#settings-files).242Установите `FORCE_PROMPT_CACHING_5M=1` для принудительного пятиминутного TTL независимо от аутентификации. Это полезно, когда вы отлаживаете поведение кэша, сравниваете два TTL или переопределяете `ENABLE_PROMPT_CACHING_1H`, установленный в [управляемых параметрах](/docs/ru/settings#settings-files).

243 243 

244<h2 id="cache-scope">244<h2 id="cache-scope">

245 Область действия кэша245 Область действия кэша


249 249 

250Сеансы, которые вы запускаете параллельно в одном каталоге, строят совпадающие префиксы и читают кэш друг друга. Последовательные сеансы совпадают с префиксом только когда снимок статуса git при запуске совпадает, поскольку системный запрос также захватывает ветвь и недавние коммиты.250Сеансы, которые вы запускаете параллельно в одном каталоге, строят совпадающие префиксы и читают кэш друг друга. Последовательные сеансы совпадают с префиксом только когда снимок статуса git при запуске совпадает, поскольку системный запрос также захватывает ветвь и недавние коммиты.

251 251 

252Базовый кэш API шире. Кэши изолированы между организациями и на некоторых провайдерах [между рабочими пространствами в организации](https://platform.claude.com/docs/ru/build-with-claude/prompt-caching#cache-storage-and-sharing). В этих границах любые два запроса с одной и той же моделью и префиксом читают один и тот же кэш. Для вызывающих Agent SDK, запускающих флоты автоматизированных процессов, см. [улучшение prompt caching между пользователями и машинами](/ru/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) для подавления разделов системного запроса для каждой машины и совместного использования кэша между машинами.252Базовый кэш API шире. Кэши изолированы между организациями и на некоторых провайдерах [между рабочими пространствами в организации](https://platform.claude.com/docs/ru/build-with-claude/prompt-caching#cache-storage-and-sharing). В этих границах любые два запроса с одной и той же моделью и префиксом читают один и тот же кэш. Для вызывающих Agent SDK, запускающих флоты автоматизированных процессов, см. [улучшение prompt caching между пользователями и машинами](/docs/ru/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) для подавления разделов системного запроса для каждой машины и совместного использования кэша между машинами.

253 253 

254<h2 id="check-cache-performance">254<h2 id="check-cache-performance">

255 Проверка производительности кэша255 Проверка производительности кэша

256</h2>256</h2>

257 257 

258Производительность кэша отображается как два счётчика токенов, которые API сообщает при каждом ответе. Наиболее прямой способ наблюдать их в реальном времени — это [скрипт строки состояния](/ru/statusline), который читает объект `current_usage`:258Производительность кэша отображается как два счётчика токенов, которые API сообщает при каждом ответе. Наиболее прямой способ наблюдать их в реальном времени — это [скрипт строки состояния](/docs/ru/statusline), который читает объект `current_usage`:

259 259 

260| Поле | Значение |260| Поле | Значение |

261| ----------------------------- | ----------------------------------------------------------------------------------------------------------- |261| ----------------------------- | ----------------------------------------------------------------------------------------------------------- |


264 264 

265Высокое соотношение чтения к созданию означает, что кэширование работает хорошо. Если создание остаётся высоким ход за ходом, что-то изменяется в вашем префиксе. Раздел [действия, которые инвалидируют кэш](#actions-that-invalidate-the-cache) перечисляет обычные причины.265Высокое соотношение чтения к созданию означает, что кэширование работает хорошо. Если создание остаётся высоким ход за ходом, что-то изменяется в вашем префиксе. Раздел [действия, которые инвалидируют кэш](#actions-that-invalidate-the-cache) перечисляет обычные причины.

266 266 

267Для видимости по организации, экспортер OpenTelemetry сообщает токены чтения и создания кэша на пользователя и сеанс. См. [Мониторинг использования](/ru/monitoring-usage) для справочника метрик и атрибутов событий.267Для видимости по организации, экспортер OpenTelemetry сообщает токены чтения и создания кэша на пользователя и сеанс. См. [Мониторинг использования](/docs/ru/monitoring-usage) для справочника метрик и атрибутов событий.

268 268 

269<h2 id="subagents-and-the-cache">269<h2 id="subagents-and-the-cache">

270 Подагенты и кэш270 Подагенты и кэш

271</h2>271</h2>

272 272 

273[Подагент](/ru/sub-agents) начинает свой собственный разговор со своим собственным системным запросом и набором инструментов, отдельно от родительского. Он строит свой собственный кэш, начиная без попаданий в кэш при первом вызове и прогреваясь через свои собственные ходы. Подагенты используют пятиминутный TTL даже на подписке, поскольку автоматический одночасовой TTL применяется к основному разговору.273[Подагент](/docs/ru/sub-agents) начинает свой собственный разговор со своим собственным системным запросом и набором инструментов, отдельно от родительского. Он строит свой собственный кэш, начиная без попаданий в кэш при первом вызове и прогреваясь через свои собственные ходы. Подагенты используют пятиминутный TTL даже на подписке, поскольку автоматический одночасовой TTL применяется к основному разговору.

274 274 

275Кэш родителя не затронут. Со стороны родителя, вызов подагента и результат добавляются в разговор, оставляя префикс родителя нетронутым.275Кэш родителя не затронут. Со стороны родителя, вызов подагента и результат добавляются в разговор, оставляя префикс родителя нетронутым.

276 276 

277[Ветвление](/ru/sub-agents#fork-the-current-conversation), напротив, наследует системный запрос родителя, инструменты и историю разговора точно, поэтому его первый запрос читает кэш родителя. Вызов суммирования сжатия, описанный в [Сжатие разговора](#compacting-the-conversation), использует тот же подход совпадения префиксов.277[Ветвление](/docs/ru/sub-agents#fork-the-current-conversation), напротив, наследует системный запрос родителя, инструменты и историю разговора точно, поэтому его первый запрос читает кэш родителя. Вызов суммирования сжатия, описанный в [Сжатие разговора](#compacting-the-conversation), использует тот же подход совпадения префиксов.

278 278 

279<h2 id="disable-prompt-caching">279<h2 id="disable-prompt-caching">

280 Отключение prompt caching280 Отключение prompt caching


290| `DISABLE_PROMPT_CACHING_OPUS` | Отключить для Opus только |290| `DISABLE_PROMPT_CACHING_OPUS` | Отключить для Opus только |

291| `DISABLE_PROMPT_CACHING_FABLE` | Отключить для Fable только |291| `DISABLE_PROMPT_CACHING_FABLE` | Отключить для Fable только |

292 292 

293Чтобы установить политику кэширования по организации, поместите любую из этих или [переменных TTL](#cache-lifetime) в блок `env` [управляемых параметров](/ru/settings#settings-files). Для нормального использования оставьте кэширование включённым.293Чтобы установить политику кэширования по организации, поместите любую из этих или [переменных TTL](#cache-lifetime) в блок `env` [управляемых параметров](/docs/ru/settings#settings-files). Для нормального использования оставьте кэширование включённым.

294 294 

295<h2 id="related-resources">295<h2 id="related-resources">

296 Связанные ресурсы296 Связанные ресурсы

297</h2>297</h2>

298 298 

299* [Уроки из создания Claude Code: Prompt caching — это всё](https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything): обоснование дизайна для режима плана, отложенной загрузки инструментов и сжатия299* [Уроки из создания Claude Code: Prompt caching — это всё](https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything): обоснование дизайна для режима плана, отложенной загрузки инструментов и сжатия

300* [Изучите окно контекста](/ru/context-window): что загружается в контекст и когда300* [Изучите окно контекста](/docs/ru/context-window): что загружается в контекст и когда

301* [Уменьшите использование токенов](/ru/costs#reduce-token-usage): стратегии помимо кэширования для управления размером контекста301* [Уменьшите использование токенов](/docs/ru/costs#reduce-token-usage): стратегии помимо кэширования для управления размером контекста

302* [Отслеживайте и уменьшайте затраты](/ru/agent-sdk/cost-tracking): отслеживание токенов кэша и конфигурация TTL для вызывающих Agent SDK302* [Отслеживайте и уменьшайте затраты](/docs/ru/agent-sdk/cost-tracking): отслеживание токенов кэша и конфигурация TTL для вызывающих Agent SDK

303* [Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching): базовый механизм API, точки разрыва и цены303* [Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching): базовый механизм API, точки разрыва и цены