Claude Code fallback model: как избежать двойного failover в API routing

Claude Code теперь может автоматически переключаться через --fallback-model после model-not-found. Разбираем, как разделить client fallback, gateway fallback, OTEL app.entrypoint и plugin governance для команд с API router.

Опубликовано источник Anthropic / Claude Code GitHub

Архивный материал, подготовленный с помощью ИИ по указанному источнику и опубликованный без индивидуальной проверки. Ответственный редактор: Joe Werner.

Минималистичная редакционная графика: маршрут к основной модели и ветка fallback чётко расходятся, матовый тёмный фон с сдержанными серо-синими акцентами
Машинный перевод с английского оригинала — читать оригинал

В сегодняшнем выпуске Claude Code главное для инфраструктурных команд — не улучшения эргономики CLI, а три изменения, которые переносят надёжность и корпоративный контроль coding agent на уровень API-инфраструктуры: автоматическое переключение --fallback-model, governance через pluginSuggestionMarketplaces и disallowed-tools во frontmatter skill-модулей. В сочетании с новым атрибутом OpenTelemetry app.entrypoint этот выпуск делает Claude Code заметно более наблюдаемым и управляемым на уровне деплоя.

Что изменилось

Релиз опубликован 27 мая в 01:30 UTC в официальном репозитории anthropics/claude-code на GitHub. Изменения, значимые для operators:

--fallback-model теперь активируется автоматически при ошибке «модель не найдена». Раньше, если основная модель сессии возвращала ошибку «not found», все последующие запросы в рамках той же сессии падали с той же ошибкой. Начиная с этого выпуска Claude Code автоматически переключается на сконфигурированный --fallback-model на время оставшейся сессии — без ручного вмешательства, без перезапуска. Переключение фиксируется на весь сеанс: однажды сработав, fallback остаётся активным до конца сессии.

Managed-настройка pluginSuggestionMarketplaces — новая enterprise policy, позволяющая администраторам формировать allowlist маркетплейсов плагинов организации, чьи плагины могут появляться в контекстных подсказках для разработчиков. Без этой настройки Claude Code мог предлагать плагины из любого доступного маркетплейса. С ней IT- и security-команды контролируют, какие интеграции от сторонних поставщиков вообще показываются разработчикам во время активных сессий.

disallowed-tools во frontmatter skill-модулей и slash-команд. Skill-модули — пакеты контекстных знаний, подгружаемые по запросу — теперь могут объявлять список инструментов, недоступных модели, пока этот skill активен. Это механизм изоляции на уровне инструментов: skill для работы с документацией в режиме чтения может запрещать Claude выполнять shell-команды или записывать файлы в течение всей активации skill.

OTEL-атрибут app.entrypoint для метрик. Включается через OTEL_METRICS_INCLUDE_ENTRYPOINT=true; прикрепляет точку входа сессии (CLI, SDK, remote и т.д.) к OpenTelemetry-метрикам. Команды, экспортирующие OTEL-данные в Datadog, Grafana и подобные системы, смогут разбивать использование моделей и расходы по токенам по способу запуска — например, отделяя интерактивные терминальные сессии от запусков в CI-пайплайнах или удалённых агентских задач.

Другие изменения того же выпуска:

  • SessionStart hook теперь может задавать заголовок сессии при старте и возобновлении, а также инициировать повторное сканирование директорий со skill-модулями без перезапуска сессии.
  • MessageDisplay hook: hooks теперь могут трансформировать или скрывать текст ответа ассистента в момент отображения — что открывает возможности для фильтрации вывода, редактирования и аннотирования на уровне сессии.
  • /code-review --fix применяет результаты ревью напрямую в рабочем дереве; /simplify теперь вызывает его.
  • Auto mode больше не требует явного согласия при первом запуске.
  • Исправлено: cache_creation_input_tokens ошибочно возвращал 0 в usage-статистике транскриптов и результатов; теперь значение корректно читается из вложенной cache-разбивки API.

Что это значит для AI-инженерных команд

--fallback-model меняет контракт на отказ сессии. Прежде проблема доступности модели фактически убивала сессию: разработчик должен был заметить сбой, остановить работу, перезапустить сессию — и потенциально потерять накопленный контекст. Новое поведение позволяет Claude Code незаметно переключиться на fallback-модель и продолжить сессию без прерывания рабочего процесса. Именно этот паттерн API routing gateway обеспечивали на уровне инфраструктуры; теперь он встроен непосредственно в клиент.

Важное следствие для деплоя: команды, использующие routing gateway для автоматического failover, должны учитывать, что Claude Code теперь имеет собственную логику fallback на первом уровне. Отказ, обработанный на уровне gateway, задействует политику fallback gateway; отказ, произошедший до попадания запроса в gateway (неверный идентификатор модели, превышение квоты на уровне конфигурации клиента), теперь может инициировать собственный механизм переключения Claude Code. Понимание того, на каком именно уровне срабатывает fallback, принципиально для корректной атрибуции надёжности и недопущения сценариев двойного fallback.

pluginSuggestionMarketplaces закрывает реальный пробел в корпоративном управлении. По мере того как Claude Code масштабируется внутри организаций, растёт риск появления несанкционированных сторонних плагинов в сессиях разработчиков. Получение в активной сессии предложения установить неаудированный плагин — это риск shadow IT. Новая managed-настройка даёт security- и platform-командам allowlist-контроль на уровне предложений плагинов, а не только на уровне установки.

disallowed-tools реализует принцип минимальных привилегий в дизайне skill-модулей. Skill без права записи не может повредить файлы; skill без доступа к shell-командам не вызовет нежелательных побочных эффектов. Для команд, строящих внутренние библиотеки skill-модулей, это значительное улучшение: авторы могут закодировать предполагаемую область действия каждого skill как свойство безопасности, а не как рекомендацию в документации.

OTEL app.entrypoint устраняет пробел в видимости при мультирежимных деплоях. Команды, запускающие Claude Code в нескольких режимах — настольный терминал, CI-пайплайн, удалённая агентская диспетчеризация, SDK-хостинг — раньше не могли сегментировать OTEL-метрики по способу вызова. Этот атрибут позволяет ответить на вопросы вроде «какую долю расходов по токенам генерируют CI-пайплайны против интерактивных сессий» — что напрямую влияет на распределение затрат и планирование квот.

Угол зрения router/operator

Fallback на уровне клиента и на уровне gateway теперь сосуществуют — границы нужно задать явно. --fallback-model в Claude Code работает на уровне клиента: если сконфигурированная модель не найдена, сессия переключается локально. Fallback в API gateway работает на уровне инфраструктуры: при определённых кодах ошибок или превышении порогов задержки gateway перенаправляет запрос к резервному provider или модели.

Оба механизма могут использоваться одновременно, но их нужно настроить как дополняющие, а не дублирующие. Практическая рекомендация: клиентский fallback обрабатывает ошибки «модель не найдена» (неверный идентификатор модели, отказ в доступе); gateway-fallback — ошибки provider (5xx, rate limit, timeout). Задокументируйте эту границу явно, чтобы одно событие отказа не активировало оба уровня и не затруднило последующий анализ.

Session-наблюдаемость получает измерение entrypoint. Если ваша команда экспортирует OTEL из Claude Code-сессий в центральный observability-бэкенд, атрибут app.entrypoint открывает новую сегментацию: расходы CI-пайплайна vs. интерактивных сессий vs. удалённых агентских задач. Это токен-экономический эквивалент разделения API-трафика по уровням приложения. Командам, управляющим общими API-бюджетами в нескольких режимах использования Claude Code, стоит включить OTEL_METRICS_INCLUDE_ENTRYPOINT=true заблаговременно и добавить entrypoint как измерение группировки в дашборды расходов.

disallowed-tools как примитив политики на уровне skill. Для команд, строящих корпоративные каталоги skill-модулей для масштабных деплоев Claude Code, disallowed-tools во frontmatter теперь является первоклассным механизмом политики. Skill для работы с документацией в режиме чтения может объявить disallowed-tools: [Bash, Edit, Write] — и независимо от основной политики сессии модель не сможет выполнять команды или записывать файлы, пока skill активен. Это дополняет существующие политики managed-settings.json: ограничение на уровне skill является аддитивным.

MessageDisplay hook обеспечивает governance на уровне вывода. Команды, которым необходимо убирать из вывода Claude Code чувствительные данные — IP-адреса, учётные данные, PII-паттерны — теперь могут делать это на уровне отображения через MessageDisplay hook, не затрагивая ответы модели. Это особенно актуально для enterprise-деплоев на конфиденциальных кодовых базах, где IT-политика требует, чтобы определённые паттерны не появлялись в видимом разработчику выводе или в транскриптах сессий.

На что обратить внимание и что попробовать пользователям TheRouter

  • Проверьте конфигурацию fallback-модели на предмет двойного срабатывания. Если вы используете --fallback-model в Claude Code и параллельно в routing-слое есть fallback-политики для тех же моделей — проанализируйте, какие конкретные сбои обрабатывает каждый из уровней. Цель — взаимодополняющее покрытие, а не дублирующие триггеры, которые затруднят расследование инцидентов.

  • Включайте OTEL_METRICS_INCLUDE_ENTRYPOINT=true до масштабирования на CI и remote-режимы. Атрибут ничего не стоит, но его сложно добавить задним числом к уже накопленным данным. Включите его прежде, чем Claude Code начнёт активно использоваться в CI-пайплайнах или для удалённой диспетчеризации агентов.

  • Проведите аудит внутренней библиотеки skill-модулей на предмет кандидатов для disallowed-tools. Любой skill, спроектированный для задач только на чтение — поиск по документации, ревью дизайна, объяснение кода — подходит для явного объявления disallowed-tools. Закодировать ожидаемый диапазон действий как свойство безопасности надёжнее, чем полагаться на документацию, особенно если skill используется в нескольких непредвиденных контекстах.

  • В enterprise-деплоях протестируйте pluginSuggestionMarketplaces до массового развёртывания. Настройка определяет, из каких маркетплейсов плагины могут попадать в подсказки для разработчиков. Если в организации есть внутренний маркетплейс плагинов — добавьте его в allowlist и проверьте поведение до того, как Claude Code попадёт к командам, активно устанавливающим плагины.

TheRouter маршрутизирует OpenAI-compatible запросы и фиксирует использование токенов на уровне сессии. Для рабочих процессов Claude Code изменение в --fallback-model делает собственную fallback-логику клиента более заметной — командам, использующим TheRouter совместно с Claude Code, следует убедиться, что fallback-политики gateway и настройка --fallback-model в Claude Code покрывают разные поверхности отказов, а не одну и ту же. Экспорт OTEL-метрик с идентификатором сессии и атрибутом entrypoint остаётся наиболее надёжным способом получить полную видимость расходов на уровне сессии по всему стеку.

Диаграмма улучшений надёжности Claude Code 2.1.274 для операторов gateway: стабильность MCP-соединений и восстановление транскриптов

Claude Code 2.1.274: масштабное исправление MCP, конфигурация Postgres в gateway и самовосстановление транскриптов

Claude Code 2.1.274 устраняет шесть причин тихих сбоев MCP в production, добавляет store.connect_timeout_seconds и CLAUDE_CODE_GATEWAY_DRAIN_TIMEOUT_MS в Claude apps gateway, а также переводит повреждённые транскрипты на режим самовосстановления вместо бесконечного цикла.

источник Anthropic
Изменения Claude Code 2.1.273: hint-заголовки gateway и смена классификатора auto-режима, представленные как панель наблюдаемости прокси с сигналами классификации запросов

Claude Code 2.1.273: пять новых hint-заголовков для gateway и смена классификатора на Bedrock, Vertex и Foundry

Claude Code 2.1.273 добавляет opt-in hint-заголовки, передающие LLM-прокси класс запроса, тип агента и состояние компакции. Одновременно на Bedrock, Vertex AI и Foundry по умолчанию включается локальный классификатор auto-режима — откатить можно только это изменение.

источник Anthropic
Абстрактная диаграмма маршрутизации с границей containment вокруг облачных credential-путей, стиль редакционного ньюсрума

Claude Fable 5.1: Containment Escape блокирует получение облачных credentials по умолчанию

Claude Code 2.1.257 выпускает Fable 5.1 с 1M контекстом и жёсткой блокировкой запросов к облачным metadata-сервисам в auto-режиме — вот что нужно проверить операторам production-пайплайнов.

источник Anthropic Claude Code
Помощь и контакты