SpyBara
Go Premium

llm-gateway-protocol.md 2026-09-11 23:01 UTC to 2026-09-12 03:02 UTC

This page contains 76 additions and 29 deletions.

2026
Sat 12 03:02 Sun 13 21:00 Sat 19 23:57 Tue 22 23:59

Справочник совместимости Claude Code gateway

Поддерживайте LLM gateway совместимым с Claude Code: конечные точки, которые он вызывает, заголовки и поля тела для пересылки, и что ломается при их удалении.

На этой странице документированы запросы, которые Claude Code отправляет на gateway, включая вызываемые конечные точки, заголовки и поля тела, которые gateway должен пересылать, и какие функции перестают работать, если этого не происходит. Она написана для операторов, настраивающих продукт gateway для работы с Claude Code.

Claude apps gateway, самостоятельно размещаемый gateway Anthropic, предоставляет собственный справочник конечных точек по адресу GET /protocol, охватывающий конечные точки входа, вывода, управляемых параметров, обнаружения моделей и телеметрии этого gateway. Это отдельный документ от этого справочника.

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

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

  • Пересылать без изменений: передать его upstream побайтово
  • Использовать: gateway может прочитать его для маршрутизации, атрибуции или трассировки и не обязан пересылать его

Все, что не отмечено как пересылка без изменений, вы можете использовать или игнорировать.

API форматы

Gateway должен предоставить клиентам Claude Code по крайней мере один из следующих форматов API. Клиент выбирает формат и указывает Claude Code на ваш gateway с помощью переменных в столбце "Выбрано" таблицы ниже.

Google Cloud's Agent Platform — это конечная точка Claude компании Google Cloud, ранее известная как Vertex AI; названия её переменных сохраняют написание VERTEX.

Формат Выбрано Конечные точки Пересылать без изменений
Anthropic Messages ANTHROPIC_BASE_URL /v1/messages, /v1/messages/count_tokens (опционально) заголовки запроса anthropic-beta и anthropic-version
Amazon Bedrock InvokeModel ANTHROPIC_BEDROCK_BASE_URL с CLAUDE_CODE_USE_BEDROCK=1 /model/{model}/invoke, /model/{model}/invoke-with-response-stream, /model/{model}/count-tokens (опционально) поля тела запроса anthropic_beta и anthropic_version
Google Cloud's Agent Platform rawPredict ANTHROPIC_VERTEX_BASE_URL с CLAUDE_CODE_USE_VERTEX=1 :rawPredict, :streamRawPredict, count-tokens:rawPredict (опционально) заголовки запроса anthropic-beta и anthropic-version, и поле тела запроса anthropic_version

Foundry и Claude Platform on AWS

Microsoft Foundry и Claude Platform on AWS реализуют формат Anthropic Messages. Claude Code маршрутизирует их через собственные переменные, ANTHROPIC_FOUNDRY_BASE_URL и ANTHROPIC_AWS_BASE_URL, но gateway, находящийся перед ними, реализует строку Anthropic Messages выше. Gateway, находящийся перед Claude Platform on AWS, также должен пересылать заголовок anthropic-workspace-id, который эта платформа требует для каждого запроса.

Опциональные конечные точки и трафик при запуске

Конечные точки подсчета токенов — единственные опциональные: когда их нет, Claude Code использует резервный вариант с оценкой контекста на основе количества символов.

Сопоставляйте по пути, а не по полному URL:

  • Запросы вывода отправляются на /v1/messages?beta=true
  • Суффиксы метода Google Cloud's Agent Platform присоединяются к пути модели издателя, как в /projects/{project}/locations/{location}/publishers/anthropic/models/{model}:streamRawPredict

Gateway также видит трафик при запуске, который он может отклонить без нарушения чего-либо. Gateway формата Anthropic Messages получает зонд подогрева соединения HEAD /api/hello, который Claude Code пропускает, когда настроен HTTP-прокси или сертификат клиента. Gateway формата Amazon Bedrock получает запрос GET /inference-profiles?type=SYSTEM_DEFINED и, когда настроенная модель является профилем вывода, запросы GET /inference-profiles/{profile}.

Проверка доступности быстрого режима никогда не появляется в логах gateway: она вызывает api.anthropic.com напрямую, а не следует ANTHROPIC_BASE_URL, поэтому в сети, которая блокирует прямой исходящий трафик на api.anthropic.com, быстрый режим может сообщить об ошибке подключения, в то время как вывод через gateway продолжает работать. Проверка безопасности домена WebFetch также вызывает api.anthropic.com напрямую. Использование быстрого режима за прокси и LLM gateway охватывает переменные, которые его восстанавливают.

Потоковая передача

Передавайте ответы вывода потоком. Claude Code читает поток по мере его поступления, поэтому если ваш gateway буферизирует полные ответы перед их передачей, Claude Code зависает.

Когда клиент использует формат Amazon Bedrock, передавайте тело ответа InvokeModelWithResponseStream и его заголовок Content-Type: application/vnd.amazon.eventstream без изменений, и не преобразуйте поток в события, отправляемые сервером. См. Ошибки потоковой передачи за gateway или прокси.

Пересылайте также пинги keep-alive. На соединениях через ANTHROPIC_BASE_URL или ANTHROPIC_AWS_BASE_URL Claude Code считает каждый байт, который пересылает ваш gateway, включая события SSE ping и строки комментариев, и прерывает поток, который молчит в течение 300 секунд по умолчанию. Пинги upstream — единственный трафик во время длительных пауз размышления, поэтому если ваш gateway удаляет или буферизирует их, Claude Code прерывает поток во время этих пауз; Автоматические повторы охватывает то, что прерванный поток сообщает в зависимости от того, насколько далеко продвинулся ответ. Upstream, который вообще не отправляет пинги, такой как двоичный event-stream Amazon Bedrock, оставляет эти паузы без чего-либо для пересылки. При переводе с такого upstream отправляйте свои собственные события ping во время молчаливых пауз. Gateway, доступные через ANTHROPIC_BEDROCK_BASE_URL, ANTHROPIC_VERTEX_BASE_URL или ANTHROPIC_FOUNDRY_BASE_URL, не обёрнуты этим байт-уровневым сторожем, даже когда они передают формат Anthropic Messages; там 5-минутный timeout неактивности прерывает молчаливый поток вместо этого, и на соединениях ANTHROPIC_BEDROCK_BASE_URL вы можете добавить байт-уровневый сторож с помощью CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK.

Несоответствие формата с upstream

Какой формат использует клиент, определяет, что получает ваш gateway. Распространенный режим отказа — несоответствие между форматом, который клиент отправляет вашему gateway, и форматом, который принимает поставщик upstream позади него.

  • Когда клиент использует формат Amazon Bedrock или Google Cloud's Agent Platform, Claude Code отправляет только подмножество своего полного набора возможностей, которое эти поставщики принимают
  • Когда клиент использует формат Anthropic Messages, Claude Code отправляет полный набор, даже если ваш gateway пересылает на upstream Amazon Bedrock или Google Cloud's Agent Platform

Преодоление этого различия — задача вашего gateway. Сквозная передача функций описывает, что ломается, когда этого не происходит.

Заголовки запроса

Claude Code включает эти заголовки в запросы API. Имена заголовков не чувствительны к регистру на проводе. Пересылайте anthropic-version и anthropic-beta без изменений, плюс anthropic-workspace-id когда upstream — это Claude Platform on AWS; остальное gateway может использовать для маршрутизации, атрибуции и трассировки и не обязан пересылать.

Заголовок Описание
Authorization, x-api-key Учетные данные gateway разработчика, в одном или обоих заголовках в зависимости от того, какую переменную учетных данных они установили
anthropic-version Версия API, в настоящее время 2023-06-01. Запросы формата Amazon Bedrock и Google Cloud's Agent Platform также содержат поле тела anthropic_version, значение которого — строка диалекта поставщика, а не значение этого заголовка
anthropic-beta Значения возможностей, разделенные запятыми, для запроса. Пересылайте заголовок дословно; не создавайте список разрешений отдельных значений, потому что набор изменяется с выпусками Claude Code. Когда разработчик аутентифицируется с помощью входа claude.ai, что возможно, когда ANTHROPIC_BASE_URL установлен без переменной учетных данных gateway, этот заголовок также содержит возможность OAuth, которую требует upstream, и удаление его приводит к отказу этих запросов с 401
x-claude-code-session-id Уникальный идентификатор текущего сеанса Claude Code. Используйте его для агрегирования всех запросов из одного сеанса без анализа тел запросов
x-claude-code-agent-id Идентификатор подагента, который выдал запрос, присутствует только в запросах от агента, порожденного Claude Code внутри сеанса. Используйте его с идентификатором сеанса для отнесения затрат к параллельным агентам
x-claude-code-parent-agent-id Идентификатор агента, который породил запрашивающего агента, присутствует только для вложенных агентов

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

Если ваши разработчики установили ANTHROPIC_CUSTOM_HEADERS, эти заголовки также появляются в запросах.

Пересылка как открытые списки

Рассматривайте заголовки и поля тела как открытые списки, а не закрытые. Claude Code получает возможности в выпусках, и они поступают как новые значения anthropic-beta, новые поля тела запроса и иногда новые заголовки anthropic-* или x-claude-code-*.

При пересылке на upstream формата Anthropic пропускайте заголовки запроса anthropic-* и поля тела запроса без изменений, а не создавайте список разрешений видимых вами сегодня. Gateway, привязанный к наблюдаемому списку, удаляет заголовок или поле следующей возможности и ломает его при выпуске, который его вводит.

Исключением является upstream, не относящийся к Anthropic, такой как Amazon Bedrock или Google Cloud's Agent Platform, где преодоление различия схемы — задача gateway; см. сквозная передача функций.

Блок атрибуции системного приглашения

Claude Code добавляет в начало системного приглашения короткий блок атрибуции, содержащий версию клиента и отпечаток, полученный из разговора. Конечная точка api.anthropic.com удаляет блок перед обработкой, когда он поступает без изменений в качестве первого системного блока, поэтому он не влияет на кеширование приглашений первой стороны. Любой другой upstream получает его как часть приглашения.

Удаление является позиционным, поэтому оно работает только тогда, когда шлюз пересылает массив system без изменений. Чтобы исключить блок из приглашения без потери другого системного содержимого:

  • Пересылайте массив system точно так, как он был получен, сохраняя блок первым: добавление другого системного блока в начало, переупорядочение массива или преобразование его в одну строку нарушает удаление, и блок затем достигает модели и ключа кеша приглашений.
  • Сохраняйте блок в собственной записи массива: конечная точка рассматривает объединённый блок, который начинается с заголовка атрибуции, как атрибуцию в целом и удаляет всё объединённое в него, включая остальную часть системного приглашения.
  • Если ваш шлюз должен переформатировать системное содержимое, установите CLAUDE_CODE_ATTRIBUTION_HEADER=0, чтобы Claude Code опустил блок. Anthropic и конечные точки Claude облачных поставщиков читают блок для атрибуции, поэтому опустите его на клиенте, а не удаляйте или перемещайте его в шлюзе.

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

Запросы классификатора пропускают остальную часть системного приглашения Claude Code, поэтому на этих запросах блок является единственным маркером в теле запроса, который идентифицирует их как трафик Claude Code. Когда любое из условий не выполняется, через шлюз LLM, у поставщика третьей стороны или с активным профилем или учётными данными федерации, установка 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 рассматривает gateway ANTHROPIC_BASE_URL как конечную точку формата Anthropic и отправляет ему бета-заголовки и поля тела запроса, которые он отправляет на api.anthropic.com, за исключением небольшого набора диагностики и значений по умолчанию, зарезервированных для прямых соединений, таких как значение по умолчанию для потоковой передачи инструментов с точной детализацией, описанное ниже. Этот набор варьируется в зависимости от выпуска, поэтому не полагайтесь на его содержимое.

Возможности, которые добавляют поля тела, связывают их с бета-заголовком, и пара путешествует вместе. Gateway, который удаляет заголовок при передаче тела или пересылает тело формата Anthropic на upstream с другой схемой, создает жесткие ошибки 400; только когда обе половины отсутствуют вместе, функция отключается тихо. Gateway, который переписывает или редактирует тела запросов для проверки содержимого, нарушает связь так же, как удаление, поэтому проверяйте без изменения. Таблица отмечает, где функция отклоняется от связи.

Потоковая передача инструментов с точной детализацией — одно из значений по умолчанию для прямого соединения: она отключена по умолчанию, когда запросы маршрутизируются через пользовательский базовый URL, и gateway получает ее, когда разработчики установили CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING=1.

Функция Заголовок и связь тела Симптом при нарушении Исправление
Адаптивное рассуждение Нет бета-заголовка. Claude Code отправляет thinking: {"type": "adaptive"} для Claude 4.6 и позже и рассматривает имена моделей, которые он не распознает, такие как псевдонимы gateway, как текущие модели, которые получают поле 400 с указанием поля thinking или тега adaptive, когда сборка модели upstream его не принимает Обновите upstream. На Opus 4.6 и Sonnet 4.6 разработчики могут вместо этого установить CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1
Управление контекстом Бета-заголовок управления контекстом связан с полем тела context_management 400 с Extra inputs are not permitted. Часто встречается, когда gateway принимает запросы формата Anthropic, но пересылает их на Amazon Bedrock Пересылайте оба или CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Расширенный контекст и чередующееся мышление Только бета-заголовки, нет поля тела Молча недоступно, когда заголовок удален; upstream никогда не видит запрос возможности Пересылайте anthropic-beta дословно
Бета поля инструментов Бета-заголовки, связанные с инструментами, связаны с полями схемы инструментов, такими как strict и defer_loading 400 с указанием неузнанного поля схемы инструмента, когда тело проходит без его заголовка Пересылайте оба или CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Усилие и структурированные выходы Поле тела output_config содержит усилие, формат структурированного вывода и параметры бюджета задачи; каждое связано с собственным бета-заголовком 400 с указанием output_config, часто Extra inputs are not permitted, на upstream-ах Amazon Bedrock и Google Cloud's Agent Platform Пересылайте поле и его заголовки вместе
Prompt caching Нет бета-связи. Claude Code прикрепляет маркеры cache_control к блокам system и к записям messages, включая записи role: "system", добавленные в середину разговора Нет ошибки: разговор выставляется как некэшированный ввод на каждый ход, видимый как высокие input_tokens с небольшой или отсутствующей активностью кэша в usage Пересылайте cache_control без изменений везде, где он появляется, и не преобразуйте блочную форму system или содержимое сообщения в простые строки
Подсчет токенов Нет бета-связи; использует конечную точку count_tokens Нет ошибки: Claude Code возвращается к оценке на основе символов, поэтому /context показывает приблизительные подсчеты Предоставьте конечную точку для точных подсчетов токенов

Переменные ANTHROPIC_DEFAULT_*_MODEL_SUPPORTED_CAPABILITIES объявляют возможности модели только в конфигурациях поставщика: CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX, CLAUDE_CODE_USE_FOUNDRY и CLAUDE_CODE_USE_MANTLE. Они не имеют эффекта позади gateway ANTHROPIC_BASE_URL.

Автоматический повтор и пересылка ошибок

То, что Claude Code делает после отказа upstream, зависит от того, что было отклонено:

  • Когда upstream отклоняет поле thinking, системное сообщение в середине разговора или маркер cache_control на таком сообщении, Claude Code повторяет запрос и отключает отклоненную возможность на оставшуюся часть разговора
  • Когда upstream отклоняет сигнатуру мышления, Claude Code повторяет запрос без более ранних блоков мышления разговора и исключает их из каждого последующего запроса. Новые ответы по-прежнему включают мышление
  • Claude Code не повторяет отказы управления контекстом или полей схемы инструментов, поэтому эти ошибки 400 достигают разработчика

Логика повтора соответствует формулировке ошибки upstream, поэтому пересылайте тела ответов об ошибках без изменений. Gateway, который оборачивает ошибки upstream в собственный конверт, нарушает путь восстановления, даже если он сохраняет код состояния, если только сообщение конверта не содержит стабильный токен capability_rejected:. Claude apps gateway подставляет эти токены вместо формулировок ошибок облачных провайдеров, например capability_rejected: prompt_too_long.

Отключение возможностей предварительного выпуска

CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 останавливает Claude Code от отправки возможностей предварительного выпуска и их полей тела на каждого поставщика, включая управление контекстом и бета-поля инструментов. Переменная не влияет на адаптивное рассуждение, которое выбирается по модели, а не по бета. Она никогда не подавляет возможность OAuth, которую требует аутентификация подписки.

На Claude Code v2.1.227 или позже ваша организация может держать поиск инструментов MCP включенным под этой переменной через управляемые параметры. То, что Claude Code отправляет с этим переопределением на месте, зависит от того, как вы подключаетесь:

  • На прямом соединении или через gateway, установленный с ANTHROPIC_BASE_URL, Claude Code продолжает отправлять бета-заголовок поиска инструментов, поля инструментов defer_loading и блоки tool_reference, и удаляет остальное
  • На облачном провайдере или при входе через Claude apps gateway, переопределение не имеет эффекта

Набор возможностей, которые отправляет Claude Code, растет в выпусках. Для текущих строк бета-заголовков см. справочник бета-заголовков; тестируйте ваш gateway против новых выпусков Claude Code, а не привязывайтесь к наблюдаемому списку.

Обнаружение моделей

Когда 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

Обнаружение все еще выполняется, когда несущественный трафик отключен, потому что запрос идет только на ваш gateway. До версии v2.1.257 обнаружение не выполнялось, пока несущественный трафик был отключен.

Запрос и ответ

Запрос — это GET /v1/models?limit=1000 с тайм-аутом 3 секунды, и любое перенаправление рассматривается как отказ, поэтому учетные данные не могут утечь на цель перенаправления. Gateway, который отвечает медленно или перенаправляет /v1/models, даже http на https, молча не выполняет обнаружение; обслуживайте конечную точку непосредственно по настроенному базовому URL.

Claude Code отправляет запрос обнаружения с обоими заголовками учетных данных ниже и опускает заголовок, значение которого не разрешается. Отправка обоих заголовков требует Claude Code v2.1.248 или позже. Более ранние версии отправляют только Authorization, когда установлен ANTHROPIC_AUTH_TOKEN, и только x-api-key в противном случае.

  • Authorization: ANTHROPIC_AUTH_TOKEN как токен носителя, в противном случае значение apiKeyHelper как токен носителя. В этом случае Claude Code ждет, пока помощник вернет результат перед отправкой запроса.
  • x-api-key: разрешенный Claude Code ключ API, такой как ANTHROPIC_API_KEY. Когда значение помощника является единственным учетным данием, этот заголовок также его содержит, поэтому значение поступает в оба заголовка.

Claude Code также отправляет любые заголовки из ANTHROPIC_CUSTOM_HEADERS. Когда пользовательский заголовок имеет непустое значение, Claude Code отправляет его вместо встроенного заголовка с тем же именем, сопоставляя имена без учета регистра.

Когда ни одно значение заголовка учетных данных не разрешается, Claude Code пропускает обнаружение и записывает строку [gatewayDiscovery] skipped в журнал отладки сеанса claude --debug. Если вы предоставляете учетные данные только через ANTHROPIC_CUSTOM_HEADERS, Claude Code все равно пропускает обнаружение.

Claude Code читает id, опциональный display_name и опциональный description из каждой записи в массиве data ответа:

{
  "data": [
    {
      "id": "claude-sonnet-4-6",
      "display_name": "Claude Sonnet 4.6",
      "description": "Default model for everyday coding tasks"
    },
    { "id": "claude-opus-4-8" }
  ]
}

Claude Code сохраняет запись, когда ее 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, обнаруженный claude-sonnet-5 объединяется в строку sonnet, и обнаруженный claude-sonnet-4-6 все еще получает свою собственную строку. До версии v2.1.197 Claude Code не объединял эти ID во встроенные строки, поэтому claude-sonnet-5 также получал свою собственную строку "From gateway".

Результаты кешируются в ~/.claude/cache/gateway-models.json или %USERPROFILE%\.claude\cache\gateway-models.json на Windows и обновляются при каждом запуске. Если вы установили CLAUDE_CONFIG_DIR, кеш находится в этом каталоге вместо этого. Если запрос не выполняется или gateway не реализует /v1/models, средство выбора возвращается к кешированному списку из предыдущего запуска или к встроенному списку моделей. Если ваш gateway обслуживает модели Claude под псевдонимами, которые не совпадают с фильтром обнаружения, разработчики могут добавить эти псевдонимы вручную с помощью переменных конфигурации модели.

Для остальной документации gateway и базовых справочников API: