GET /protocol, охватывающую конечные точки входа, вывода, управляемых параметров, обнаружения модели и телеметрии этого шлюза. Это отдельный документ от этого руководства.
- Чтобы развернуть существующий или сторонний шлюз для вашей организации, см. Развертывание LLM gateway
- Если вы отдельный разработчик, аутентифицирующий Claude Code на шлюзе с учетными данными, которые вам были предоставлены, см. Подключение Claude Code к LLM gateway
- Форматы API и конечные точки для обслуживания для каждого
- Поведение клиента по методу подключения: как идентификаторы моделей, значения
anthropic-beta, поля запроса и значения по умолчанию отличаются между форматами и входом в Claude apps gateway - Заголовки запроса: какие должны достичь вышестоящего сервера и какие может использовать ваш шлюз
- Заголовки ответа: что возвращать, чтобы обнаружение зависания, повторные попытки и отображение лимита использования работали
- Блок атрибуции системного приглашения и как он взаимодействует с кэшированием приглашений
- Сквозная передача функций: что перестает работать при удалении заголовков или полей тела
- Обнаружение модели
- Передавать без изменений: передать его вышестоящему серверу побайтово
- Использовать: шлюз может прочитать его для маршрутизации, атрибуции или трассировки и не обязан передавать его
Форматы API
Шлюз должен предоставлять клиентам Claude Code по крайней мере один из следующих форматов API. Клиент выбирает формат и указывает Claude Code на ваш шлюз с помощью переменных в столбце “Selected by” таблицы ниже. Google Cloud’s Agent Platform — это конечная точка Claude в Google Cloud, ранее известная как Vertex AI; названия её переменных сохраняют написаниеVERTEX.
Foundry и Claude Platform on AWS
Microsoft Foundry и Claude Platform on AWS реализуют формат Anthropic Messages. Claude Code маршрутизирует к ним через их собственные переменные,ANTHROPIC_FOUNDRY_BASE_URL и ANTHROPIC_AWS_BASE_URL, но шлюз, находящийся перед любым из них, реализует строку Anthropic Messages выше. Шлюз, находящийся перед Claude Platform on AWS, должен также пересылать заголовок anthropic-workspace-id, который эта платформа требует для каждого запроса.
Опциональные endpoints и стартовый трафик
Endpoints подсчёта токенов — единственные опциональные: когда их нет, Claude Code переходит на оценку использования контекста на основе количества символов. Сопоставляйте по пути, а не по полному URL:- Запросы вывода отправляются на
/v1/messages?beta=true - Метод Google Cloud’s Agent Platform добавляет суффиксы к пути модели издателя, как в
/projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict
HEAD /api/hello для прогрева соединения, который Claude Code пропускает, когда настроен HTTP-прокси или сертификат клиента. Шлюз формата Amazon Bedrock получает запрос GET /inference-profiles?type=SYSTEM_DEFINED и, когда настроенная модель является профилем вывода, поиски GET /inference-profiles/{profile}.
Сессии, проходящие через шлюз, не подходят для конфигурации HIPAA. В разделе Проверьте, как разработчики входят в систему и подключаются перечислены методы входа и подключения, которые подходят. См. Конфигурация HIPAA за шлюзом.
Проверка доступности быстрого режима никогда не появляется в логах шлюза: она вызывает api.anthropic.com напрямую, а не следует ANTHROPIC_BASE_URL, поэтому в сети, которая блокирует прямой исходящий трафик на api.anthropic.com, быстрый режим может сообщить об ошибке подключения, в то время как вывод через шлюз продолжает работать. Проверка безопасности домена WebFetch также вызывает api.anthropic.com напрямую. Раздел Использование быстрого режима за прокси и шлюзами LLM охватывает переменные, которые его восстанавливают.
Потоковая передача
Claude Code читает каждый потоковый ответ вывода событие за событием по мере его поступления, поэтому то, как ваш шлюз передаёт поток, влияет на то, что видит пользователь:- Если ваш шлюз буферизирует ответ до его завершения, Claude Code зависает.
- Claude Code ожидает полную последовательность событий каждого ответа, по порядку, вплоть до финальных событий
message_deltaиmessage_stop. Если тело завершается чисто после начала блока контента, но до этого финальногоmessage_delta, Claude Code рассматривает ответ как разорванное соединение. The response above may be incomplete описывает, что в этом случае видит пользователь, а раздел Автоматические повторные попытки — когда Claude Code вместо этого повторно отправляет запрос. - Когда guardrail Amazon Bedrock блокирует ответ, события, которые отправляет Bedrock, могут ссылаться на блок контента, чей
content_block_stopуже прибыл, и Claude Code рассчитывает получить их в том виде, в каком они были отправлены. AWS Guardrails описывает, как завершается такой ответ. - Claude Code прерывает потоковый ответ, как только на него не поступают байты дольше, чем его таймаут простоя потоковой передачи. Во время длительной паузы мышления SSE-события
pingвышестоящего сервера могут быть единственными байтами в потоке, поэтому шлюз, который удаляет или буферизирует их, может вызвать срабатывание этого таймаута посреди ответа. У шлюза, который выполняет преобразование с вышестоящего сервера без пингов, такого как двоичный поток событий Amazon Bedrock, возникает тот же пробел, если только он не выдаёт собственные событияping. - В формате Amazon Bedrock InvokeModel Claude Code читает ответ
/model/{model}/invoke-with-response-streamкак двоичное телоapplication/vnd.amazon.eventstream, которое возвращает Bedrock, и не может его разобрать, если шлюз преобразует его в server-sent events или переписывает этот заголовокContent-Type. Раздел Ошибки потоковой передачи за шлюзом или прокси описывает, что в этом случае видит пользователь.
Несоответствие формата с вышестоящим сервером
Какой формат использует клиент, определяет, что получает ваш шлюз. Распространённый режим отказа — несоответствие между форматом, который клиент отправляет вашему шлюзу, и форматом, который принимает вышестоящий поставщик позади него.- Когда клиент использует формат Amazon Bedrock или Google Cloud’s Agent Platform, Claude Code отправляет только подмножество своего полного набора возможностей, которое эти поставщики принимают
- Когда клиент использует формат Anthropic Messages, Claude Code отправляет полный набор, даже если ваш шлюз пересылает на вышестоящий сервер Amazon Bedrock или Google Cloud’s Agent Platform
Как метод подключения изменяет поведение клиента
Способ подключения разработчика к вашему шлюзу определяет, какие ID моделей, значенияanthropic-beta и поля запроса отправляет Claude Code, а также какие значения по умолчанию он применяет. Ваш шлюз видит одно из трёх поведений клиента:
- Формат Amazon Bedrock или Agent Platform: разработчик устанавливает
CLAUDE_CODE_USE_BEDROCK=1сANTHROPIC_BEDROCK_BASE_URLилиCLAUDE_CODE_USE_VERTEX=1сANTHROPIC_VERTEX_BASE_URL, указывающие на ваш шлюз. Claude Code использует ID моделей этого поставщика, поля запроса и значения по умолчанию. - Формат Anthropic Messages: разработчик устанавливает
ANTHROPIC_BASE_URLна ваш шлюз. Claude Code рассматривает шлюз как Claude API и не может определить, на какой upstream вы перенаправляете. - Вход в шлюз Claude apps: разработчик входит в шлюз Claude apps. Этот шлюз использует формат Anthropic Messages, но может маршрутизировать на любой upstream, поэтому Claude Code отправляет только значения
anthropic-betaи предположения о возможностях модели, которые также принимают Amazon Bedrock и Agent Platform.
Запросы и значения по умолчанию по методу подключения
Таблица ниже сравнивает три метода подключения, по одному поведению в строке. Она исключает Microsoft Foundry и Claude Platform на AWS, которые также используют формат Anthropic Messages, но которые Claude Code достигает через свои собственные переменные. Для них см. страницы Microsoft Foundry и Claude Platform на AWS.
Для функций, которые поддерживает каждое подключение, и телеметрии, которую оно отправляет Anthropic по умолчанию, см. Доступность функций и Поведение по умолчанию по поставщику API.
Параметры для нераспознанных ID моделей
Два параметра на стороне клиента изменяют то, что Claude Code предполагает для ID модели, которую он не распознаёт, независимо от того, какой метод подключения использует разработчик:- Окно контекста: Claude Code предполагает 200K или 1M, когда ID содержит
[1m]. Чтобы объявить реальное окно, см. Исправьте окно для шлюза или пользовательского ID модели - Возможности: чтобы дать alias шлюза возможности модели позади него, сопоставьте ID Anthropic этой модели с вашим alias с помощью записи
modelOverridesв параметрах, которые вы распространяете. Для того, где применяются переменныеANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES, см. передача функций
Заголовки запроса
Claude Code включает эти заголовки в запросы API. Имена заголовков не чувствительны к регистру на проводе. Пересылайтеanthropic-version и anthropic-beta без изменений, плюс anthropic-workspace-id когда upstream — это Claude Platform on AWS; остальное gateway может использовать для маршрутизации, атрибуции и трассировки и не обязан пересылать.
Идентификаторы подагентов генерируются заново для каждого порождения. Агенты товарищей, названные члены команды агентов, повторно используют стабильный идентификатор на основе имени при переподключениях. В обоих случаях идентификатор идентифицирует агента, а не человека или устройство, поэтому не рассматривайте заголовок идентификатора агента как идентификатор пользователя.
Если ваши разработчики установили
ANTHROPIC_CUSTOM_HEADERS, эти заголовки также появляются в запросах.
Заголовки подсказок Gateway
Claude Code также может отправлять подсказки маршрутизации: факты для каждого запроса, которые gateway или маршрутизатор может использовать для планирования, кэширования или отнесения запроса. Требуется Claude Code v2.1.273 или позже. Наличие их в запросе зависит от того, куда Claude Code его отправляет:- Прямое подключение к API Anthropic: отправляются по умолчанию
- Пользовательский базовый URL: отключено по умолчанию, потому что прокси, который отклоняет неизвестные заголовки, приведет к отказу запроса. Чтобы их получить, установите
CLAUDE_CODE_GATEWAY_HINT_HEADERS=1для ваших разработчиков, например в блокеenvуправляемых параметров - Любой другой backend, включая Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry и Claude Platform on AWS: отправляются только когда установлено
CLAUDE_CODE_GATEWAY_HINT_HEADERS=1
CLAUDE_CODE_GATEWAY_HINT_HEADERS на 0 останавливает заголовки на каждом подключении.
Заголовки содержат только то, что указано в строках ниже: фиксированные словари, имена инструментов, длительности и случайный идентификатор подсказки, никогда текст подсказки или содержимое файлов. Каждое значение — это печатаемый ASCII.
Перед анализом
x-claude-code-prev-tool-durations проверьте, как Claude Code строит значение и что оно опускает:
- Записи: одна на каждый выполненный вызов инструмента, в порядке сбора его результата, в целых миллисекундах
- Ограничение: Claude Code отправляет максимум 32 записи и 4 КБ, сохраняя первые записи
- Кодирование: имена инструментов кодируются в процентах, охватывая
%,;,=, запятую, пробел и любой символ вне печатаемого ASCII - Анализ: разделите на
;, затем на=, и декодируйте каждое имя - Отсутствие: вызовы компактирования, побочные запросы и первый запрос нового подсказки никогда его не содержат. Не читайте отсутствующий заголовок как ход, который не запустил никакие инструменты
- Времена: каждое исключает подсказки разрешения и hooks, и параллельные вызовы инструментов каждый сообщают свое собственное время, поэтому записи не складываются в промежуток между запросами
Пересылка как открытые списки
Рассматривайте заголовки и поля тела как открытые списки, а не закрытые. Claude Code получает возможности в выпусках, и они поступают как новые значенияanthropic-beta, новые поля тела запроса и иногда новые заголовки anthropic-* или x-claude-code-*.
При пересылке на upstream формата Anthropic пропускайте заголовки запроса anthropic-* и поля тела запроса без изменений, а не создавайте список разрешений видимых вами сегодня. Gateway, привязанный к наблюдаемому списку, удаляет заголовок или поле следующей возможности и ломает его при выпуске, который его вводит.
Исключением является upstream, не относящийся к Anthropic, такой как Amazon Bedrock или Google Cloud’s Agent Platform, где преодоление различия схемы — задача gateway; см. сквозная передача функций.
Заголовки ответов
Claude Code читает эти заголовки ответов для обнаружения зависших потоков, чтобы решить, следует ли и когда повторить попытку, а также для отображения лимитов использования. В таблице указано, что возвращать для каждого. Также пропускайте тела ответов об ошибках без изменений, чтобы восстановление при отклонении возможностей Claude Code могло соответствовать формулировке ошибки вышестоящего сервера.Блок атрибуции системного приглашения
Claude Code добавляет в начало системного приглашения короткий блок атрибуции, содержащий версию клиента и отпечаток, полученный из разговора. Конечная точкаapi.anthropic.com удаляет блок перед обработкой, когда он поступает без изменений в качестве первого системного блока, поэтому он не влияет на кеширование приглашений первой стороны. Любой другой upstream получает его как часть приглашения.
Удаление является позиционным, поэтому оно работает только тогда, когда шлюз пересылает массив system без изменений. Чтобы исключить блок из приглашения без потери другого системного содержимого:
- Пересылайте массив
systemточно так, как он был получен, сохраняя блок первым: добавление другого системного блока в начало, переупорядочение массива или преобразование его в одну строку нарушает удаление, и блок затем достигает модели и ключа кеша приглашений. - Сохраняйте блок в собственной записи массива: конечная точка рассматривает объединённый блок, который начинается с заголовка атрибуции, как атрибуцию в целом и удаляет всё объединённое в него, включая остальную часть системного приглашения.
- Если ваш шлюз должен переформатировать системное содержимое, установите
CLAUDE_CODE_ATTRIBUTION_HEADER=0, чтобы Claude Code опустил блок. Anthropic и конечные точки Claude облачных поставщиков читают блок для атрибуции, поэтому опустите его на клиенте, а не удаляйте или перемещайте его в шлюзе.
0:
- Запросы поступают на
api.anthropic.com, сANTHROPIC_BASE_URLне установленной или указывающей на этот хост, и ни один поставщик третьей стороны не выбран. - Активные учётные данные не являются профилем Anthropic или учётными данными федерации.
0 удаляет блок из запросов классификатора также. До версии v2.1.229 это исключение не существовало: установка 0 удаляла блок из этих запросов классификатора, и когда API отклонял неидентифицированные запросы, режим автоматического выбора не работал на каждом действии, которое он отправлял классификатору.
Начиная с Claude Code v2.1.181, блок стабилен в течение всего времени жизни разговора, когда запросы маршрутизируются через пользовательский базовый URL, поэтому кеш приглашений на стороне шлюза, использующий ключ на основе полного тела запроса, работает без отключения его, и любой поставщик, на которого ваш шлюз пересылает запросы, получает стабильный префикс приглашения. До версии v2.1.181 блок включал токен для каждого запроса, который изменял начало системного приглашения при каждом запросе. На этих версиях установите CLAUDE_CODE_ATTRIBUTION_HEADER=0, когда ваш шлюз выполняет любое из этих действий:
- Реализует кеш приглашений, использующий ключ на основе тела запроса.
- Пересылает запросы поставщику третьей стороны, такому как Amazon Bedrock, Microsoft Foundry или Google Cloud’s Agent Platform, в формате Anthropic Messages или в собственном формате поставщика, где изменяющийся префикс снижает повторное использование кеша приглашений у этого поставщика.
Сквозная передача функций
Claude Code рассматривает шлюзANTHROPIC_BASE_URL как конечную точку в формате Anthropic и отправляет ему бета-заголовки и поля тела запроса, которые он отправляет на api.anthropic.com, за исключением небольшого набора диагностики и значений по умолчанию, зарезервированных для прямых соединений, таких как значение по умолчанию для потоковой передачи инструментов с точной настройкой, описанное ниже. Этот набор варьируется в зависимости от версии, поэтому не полагайтесь на его содержимое.
Потоковая передача инструментов с точной настройкой — это одно из значений по умолчанию для прямого соединения: она отключена по умолчанию всякий раз, когда запросы маршрутизируются через пользовательский базовый URL, и шлюз получает ее, когда разработчики устанавливают CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1.
Пары бета-заголовков и полей тела
Возможности, которые добавляют поля тела, связывают их с бета-заголовком, и эта пара передается вместе. Шлюз, который удаляет заголовок при передаче тела или пересылает тело в формате Anthropic на вышестоящий сервер с другой схемой, вызывает ошибки400. Когда обе части отсутствуют вместе, функция отключается без ошибок.
Шлюз, который переписывает или редактирует тела запросов для проверки содержимого, нарушает связь так же, как это делает удаление, поэтому проверяйте без изменений. В таблице указано, где функция отклоняется от связи.
Переменные
ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES объявляют возможности модели только в конфигурациях поставщика: CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX, CLAUDE_CODE_USE_FOUNDRY и CLAUDE_CODE_USE_MANTLE. Они не имеют никакого эффекта за шлюзом ANTHROPIC_BASE_URL.
Автоматический повтор и пересылка ошибок
Когда вышестоящий сервер отклоняет одну из этих возможностей, Claude Code может самостоятельно повторить запрос, удалив или изменив отклоненную часть:- Когда ошибка
400сообщает, что значениеthinking.typeenabledилиadaptiveне поддерживается, Claude Code один раз повторяет попытку с другим типом и сохраняет полеthinking. Последующие запросы к этой модели используют измененный тип до выхода из Claude Code. До версии v2.1.121 Claude Code не повторял попытку, поэтому ошибкаthinking.type.enabled is not supportedдоходила до разработчика - Когда вышестоящий сервер отклоняет запись
role: "system"внутриmessages, Claude Code один раз повторяет попытку без этих системных сообщений в середине диалога и вместо этого передает их текст в пользовательских сообщениях. Последующие запросы в диалоге сохраняют эту форму, пока разработчик не выполнит/clearили диалог не будет сжат - Когда вышестоящий сервер отклоняет только маркер
cache_controlна системном сообщении в середине диалога, Claude Code сохраняет системные сообщения и один раз повторяет попытку с перемещенным маркером. Маркер ставится на последнюю запись вmessages, которая не является системным сообщением, — в этой повторной попытке и в последующих запросах до выхода из Claude Code - Когда вышестоящий сервер отклоняет подпись мышления, включая ошибку
400, сообщение которой говорит, что блокbound to a different conversation, Claude Code удаляет более ранние блоки мышления из запроса, повторяет и исключает их из каждого последующего запроса. Новые ответы по-прежнему включают мышление - Когда шлюз или его вышестоящий сервер отклоняет запись инструмента-советника в
toolsкак неизвестный тип инструмента, Claude Code повторяет запрос один раз без этой записи и ее значенияanthropic-beta. Последующие запросы их не содержат. Claude Code распознает это отклонение по ответу400или422, сообщение которого называет тип инструмента послеInput tag, напримерInput tag 'advisor_20260301'. До версии v2.1.280 Claude Code не повторял попытку при этом отклонении - Когда вышестоящий сервер отклоняет
output_config.effortили его значениеanthropic-beta, шлюз получает запрос еще раз без них. Последующие запросы их не содержат. Вашему шлюзу не нужны изменения, если он пересылает ошибку400вышестоящего сервера без изменений, а ее сообщение:- Называет
output_config.effortвместе сExtra inputs are not permitted - Сообщает, что модель не поддерживает параметр effort
- Начинается с
Unexpected value(s)и указываетeffort-2025-11-24для заголовкаanthropic-beta. Требуется v2.1.310 или более поздняя версия. Разработчики, у которыхANTHROPIC_BETASсодержит это значение, продолжают его отправлять и получать ошибку400, поэтому попросите их удалить эту запись
- Называет
- Когда вышестоящий сервер отклоняет поле
context_managementили его значениеanthropic-beta, шлюз получает запрос еще раз без них. Последующие запросы их не содержат. Claude Code распознает это отклонение по его сообщению, например содержащемуcontext_management: Extra inputs are not permitted. До версии v2.1.304 Claude Code не повторял попытку при этом отклонении - Когда ошибка
400отклоняет по имени другое значениеanthropic-beta, шлюз получает запрос еще раз без него, если повторная попытка распространяется на это значение - Когда вышестоящий сервер отклоняет бета-поле инструмента, отличное от
defer_loading, напримерstrict, ошибка400доходит до разработчика. Перед этим шлюз может снова получить запрос без полей поиска инструментов. Чтобы прекратить отправку таких полей, попросите разработчиков установитьCLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
bound to a different conversation поступает из проверки сохраненного мышления API, которая не срабатывает, когда содержимое system, tools или более ранних messages отличается от запроса, который создал мышление. Шлюз, который переписывает любое из этого содержимого, может вызвать само отклонение; Libraries, proxies, and gateways охватывает то, что нужно пересылать без изменений.
Большая часть этой логики повторных попыток ориентируется на формулировку ошибки вышестоящего сервера, поэтому пересылайте тела ответов об ошибках без изменений. Шлюз, который оборачивает ошибки вышестоящего сервера в свой собственный конверт, нарушает путь восстановления, даже если он сохраняет код состояния, если только сообщение конверта не содержит стабильный токен capability_rejected:. Claude apps gateway подставляет эти токены вместо формулировок ошибок облачных поставщиков, например capability_rejected: prompt_too_long.
Повторная попытка без отклоненного бета-значения
Когда ошибка400 отклоняет по имени значение anthropic-beta, на которое распространяется эта повторная попытка, шлюз получает запрос еще раз без него. Последующие запросы не содержат это значение. Для большинства охватываемых значений требуется v2.1.314 или более поздняя версия.
Вашему шлюзу не нужны изменения, если сообщение возвращаемой им ошибки 400 содержит значение в одной из следующих форм:
- Предложение API: предложение
Unexpected value(s), в котором указано значение для заголовкаanthropic-beta - Токен
beta_header::capability_rejected: beta_header:, за которым следует значение, — токенcapability_rejected:
- Значение с собственной повторной попыткой, например советник или поиск инструментов: шлюз вместо этого видит собственную повторную попытку этой возможности
- Значение, которое Claude Code не распознает: значение, заданное разработчиком через
ANTHROPIC_BETAS, остается в каждом запросе, поэтому запросы разработчика продолжают завершаться ошибкой400. Попросите разработчика удалить эту запись - Сообщение, содержащее только
invalid beta flag: Claude Code предполагает, какое значение отклонил вышестоящий сервер. Если запрос содержал одно из предполагаемых значений, шлюз снова получает запрос без этого значения. Если ошибка400все равно доходит до разработчика, сделайте так, чтобы ваш шлюз указывал отклоненное значение в одной из этих форм
Как долго отклоненное бета-значение не отправляется
Повторная попытка без поиска инструментов
В версии v2.1.305 или более поздней Claude Code повторно отправляет запрос без полейdefer_loading и блоков tool_reference после ошибки 400 или 422, в которой упоминается поиск инструментов или причину которой он не распознает. После успешной повторной попытки последующие запросы в этом диалоге также их не содержат.
Запросы разработчика продолжают работать без каких-либо изменений на шлюзе, а их инструменты MCP загружаются заранее. Когда Claude Code снова пытается использовать поиск инструментов, шлюз может видеть ещё один отклонённый запрос, за которым следует его повторная попытка. Для самого поиска инструментов Claude Code ожидает, что шлюз будет пересылать поля defer_loading и блоки tool_reference вместе с их значением anthropic-beta.
Отключение предварительных возможностей
Если ваш шлюз или его вышестоящий сервер отклоняет предварительные значенияanthropic-beta или связанные с ними поля тела и вы не можете пересылать обе части, попросите разработчиков установить CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1. Когда эта переменная установлена, Claude Code перестает отправлять предварительные возможности и связанные с ними значения anthropic-beta, включая:
- Управление контекстом и его поле тела
context_management - Бета-поля схемы инструментов, такие как
strictиdefer_loading. Стандартные поля инструментовname,description,input_schemaиcache_controlсохраняются - Поле структурированного вывода
output_config.format. Требуется Claude Code v2.1.287 или более поздней версии - Поле
output_config.task_budget - MCP Tool Search, поэтому все инструменты MCP загружаются заранее, если только ваша организация не оставляет эту функцию включенной через управляемые настройки
anthropic-beta. Среди того, что она оставляет:
- Значения
anthropic-betaдля расширенного контекста, чередующегося мышления и усилия, которые также принимают облачные поставщики - Поле верхнего уровня
output_config.effort. В разделе Автоматические повторные попытки и пересылка ошибок описан случай, когда вышестоящий сервер его отклоняет - Поле
thinkingадаптивного рассуждения, у которого нет бета-заголовка - Записи
role: "system", которые содержат системные сообщения в середине диалога - Значение
anthropic-betaдля OAuth, которое требуется для аутентификации по подписке - Значения заголовков и поля тела, которые разработчики добавляют сами через
ANTHROPIC_BETASилиCLAUDE_CODE_EXTRA_BODY
CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST, CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS не останавливает сеансы автоматического режима на Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry или Claude apps gateway от запроса к серверу проверки классификатора. Эта проверка добавляет значение anthropic-beta и поле запроса safeguards. Установите CLAUDE_CODE_AUTO_MODE_SERVER=0, чтобы остановить это там.
На Claude Code v2.1.227 или более поздней версии ваша организация может сохранить поиск инструментов MCP в соответствии с этой переменной через управляемые параметры. То, что Claude Code отправляет с этим переопределением, зависит от того, как вы подключаетесь:
- При прямом соединении без конфигурации HIPAA или через шлюз, установленный с
ANTHROPIC_BASE_URL, Claude Code продолжает отправлять бета-заголовок поиска инструментов, поля инструментовdefer_loadingи блокиtool_reference - На облачном поставщике или при входе через Claude apps gateway, переопределение не имеет никакого эффекта
- В сессии, которая получает конфигурацию HIPAA, переопределение не имеет никакого эффекта, и поиск инструментов остается отключенным
Обнаружение моделей
КогдаANTHROPIC_BASE_URL указывает на gateway, который предоставляет формат Anthropic Messages, Claude Code может запросить конечную точку /v1/models gateway при запуске и добавить возвращаемые модели в средство выбора /model. Если вы или ваш администратор установили replaceBuiltInOptions в линейке modelPicker, Claude Code скрывает обнаруженные модели из средства выбора.
Разработчики включают это, установив CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 в своей собственной среде или через управляемые параметры. Обнаружение отключено по умолчанию, чтобы gateway-ы, поддерживаемые общим ключом API, не выводили каждую модель, к которой ключ может получить доступ, каждому пользователю.
Когда выполняется обнаружение
Обнаружение применяется только к формату Anthropic Messages. Оно не выполняется, когда:- Установлена любая переменная поставщика
CLAUDE_CODE_USE_*, даже если также установленANTHROPIC_BASE_URL ANTHROPIC_BASE_URLне установлен или указывает наapi.anthropic.com
Запрос и ответ
Запрос — этоGET /v1/models?limit=1000 с тайм-аутом 3 секунды по умолчанию, и любое перенаправление рассматривается как отказ, поэтому учетные данные не могут утечь на цель перенаправления. Gateway, который отвечает медленнее, чем тайм-аут, или тот, который перенаправляет /v1/models, даже http на https, молча не выполняет обнаружение; обслуживайте конечную точку непосредственно по настроенному базовому URL.
Чтобы дать медленному gateway больше времени, установите CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS. Переменная требует Claude Code v2.1.269 или позже.
Claude Code отправляет запрос обнаружения с обоими заголовками учетных данных ниже и опускает заголовок, значение которого не разрешается. Отправка обоих заголовков требует Claude Code v2.1.248 или позже. Более ранние версии отправляют только Authorization, когда установлен ANTHROPIC_AUTH_TOKEN, и только x-api-key в противном случае.
Authorization:ANTHROPIC_AUTH_TOKENкак токен носителя, в противном случае значениеapiKeyHelperкак токен носителя.x-api-key: разрешенный Claude Code ключ API, такой какANTHROPIC_API_KEY. Когда значение помощника является единственным учетным данием, этот заголовок также его содержит, поэтому значение поступает в оба заголовка.
ANTHROPIC_CUSTOM_HEADERS. Когда пользовательский заголовок имеет непустое значение, Claude Code отправляет его вместо встроенного заголовка с тем же именем, сопоставляя имена без учета регистра.
Когда ни одно значение заголовка учетных данных не разрешается, Claude Code пропускает обнаружение и записывает строку [gatewayDiscovery] skipped в журнал отладки сеанса claude --debug. Если вы предоставляете учетные данные только через ANTHROPIC_CUSTOM_HEADERS, Claude Code все равно пропускает обнаружение.
Claude Code читает id, опциональный display_name и опциональный description из каждой записи в массиве data ответа:
id содержит claude или anthropic где-либо в строке, сопоставляя без учета регистра, и игнорирует остальное. ID с префиксом поставщика, такие как vertex_ai/claude-sonnet-4-6 или bedrock/anthropic.claude-sonnet-4-5, проходят фильтр; ID, который не содержит ни одну подстроку, не проходит. До версии v2.1.223 Claude Code сохранял запись только когда ее id начинался с claude или anthropic, что скрывало ID с префиксом поставщика.
Записи средства выбора и кеширование
Средство выбора — это интерактивный список моделей, который открывается, когда разработчик запускает/model в Claude Code. Каждая обнаруженная запись использует display_name как свое имя, когда gateway отправляет такое, которое отличается от id. В противном случае запись показывает имя модели, когда Claude Code распознает id, и id, когда не распознает. Например, запись с id my-gateway-claude-sonnet-4-6 и без display_name отображается как Sonnet 4.6.
Обнаружение добавляет только модели, которые разрешает управляемый параметр availableModels.
Каждая запись также показывает description модели, свернутую в одну строку. Запись без description вместо этого читается как “From gateway”. До версии v2.1.257 каждая обнаруженная запись читалась как “From gateway”.
Обнаруженный ID не получает свою собственную строку, когда он совпадает со строкой, уже находящейся в средстве выбора:
- Одинаковый ID: обнаруженный ID точно совпадает с ID существующей строки, или оба ID являются написаниями одной и той же версии Fable.
- Та же модель, что и встроенный псевдоним: когда обнаруженный явный ID называет модель, в которую встроенный псевдоним в настоящее время разрешается, средство выбора показывает только строку псевдонима. Например, пока
sonnetразрешается вclaude-sonnet-5-5, обнаруженныйclaude-sonnet-5-5объединяется в строкуsonnet, а обнаруженныйclaude-sonnet-5всё ещё получает свою собственную строку.
~/.claude/cache/gateway-models.json или %USERPROFILE%\.claude\cache\gateway-models.json на Windows и обновляются при каждом запуске. Если вы установили CLAUDE_CONFIG_DIR, кеш находится в этом каталоге вместо этого. Если запрос не выполняется или gateway не реализует /v1/models, средство выбора возвращается к кешированному списку из предыдущего запуска или к встроенному списку моделей. Если ваш gateway обслуживает модели Claude под псевдонимами, которые не совпадают с фильтром обнаружения, разработчики могут добавить эти псевдонимы вручную с помощью переменных конфигурации модели.
Связанные ресурсы
Для остальной документации gateway и базовых справочников API:- Обзор gateway: что такое gateway и как выбрать между Claude apps gateway и другим продуктом
- Другие LLM gateway: как развернуть gateway, который работает в вашей организации, и как он взаимодействует с подписками claude.ai
- Развертывание LLM gateway для вашей организации: контрольный список администратора, который использует этот контракт
- Подключение Claude Code к LLM gateway: конфигурация для каждого разработчика и таблица устранения неполадок
- Справочник бета-заголовков: текущий набор значений
anthropic-beta - Messages API: формат API, который реализует gateway формата Anthropic