Mid-Conversation System Messages в Claude API получили статус GA: контрольный список для операторов gateway и прокси

15 июля Anthropic убрала требование beta-заголовка для mid-conversation system messages на API, Bedrock и Vertex AI. Если ваш gateway фильтрует role:system в массиве messages при проксировании Claude, agentic-сессии уже молча сломаны.

Опубликовано источник Anthropic

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

Абстрактная схема маршрутизации с инъекцией system message в середину диалога
Машинный перевод с английского оригинала — читать оригинал

15 июля 2026 года Anthropic убрала требование beta-заголовка для mid-conversation system messages — на Claude API, Amazon Bedrock и Google Cloud Vertex AI. На первый взгляд это малозаметная запись в release notes; на деле — важное операционное изменение. Впервые операторы могут инъектировать инструкции уровня system в середину сессии без аннулирования prompt-кэша. При этом любой gateway или прокси, который фильтрует или изменяет объекты role: system в массиве messages, будет молча ломать agentic-рабочие процессы — без каких-либо ошибок в ответе.

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

Mid-conversation system messages позволяют добавить {"role": "system"} в любое место массива messages, а не только в верхнеуровневое поле system. Инструкция сохраняет полный приоритет уровня оператора — она перекрывает конфликтующие пользовательские директивы — но, в отличие от правки верхнего system-поля, не сдвигает cache-breakpoint. Закэшированный префикс остаётся нетронутым; новым вводом считается только добавленное сообщение.

Функция доступна без beta-заголовка, в режиме GA, на:

  • Claude Fable 5
  • Claude Mythos 5
  • Claude Opus 4.8

На всех трёх платформах: Claude API, Bedrock и Vertex AI.

Важное исключение: Claude Sonnet 5 эту функцию не поддерживает. Если ваше приложение маршрутизирует запросы на Sonnet 5 и отправляет role: system в середину массива messages, Anthropic рекомендует использовать верхнеуровневое поле system.

Почему это важно для AI-инженерных команд

Практические сценарии применения выходят далеко за рамки оптимизации кэша. Mid-conversation system messages решают реальную проблему agentic-сессий, которую раньше обходили неудобными workaround'ами:

Изменения состояния, требующие авторитета оператора. В длинных agentic-сессиях накапливается контекст: доступные инструменты меняются, остаток token-бюджета сокращается, пользователь переключает режим автоодобрения. Инъекция этих фактов через user-сообщения работает, но Claude интерпретирует их как менее приоритетные по сравнению с system-инструкциями. Mid-conversation role: system позволяет сохранить приоритет оператора без сброса кэша.

Пошаговые policy governance. Режимы уровня сессии — «автоодобрять все bash-команды», «переключиться в read-only режим рассуждений» — теперь можно включать и выключать в середине сессии с operator-приоритетом; каждое переключение тарифицируется только за новое сообщение, а не за всю историю.

Экономика prompt-кэша. Для сессий со сотнями закэшированных turns правка верхнего поля system фактически равнозначна сбросу кэша. Сессия на 200 turns с 50k-токенным контекстом при каждом изменении system prompt заново обрабатывает всю историю. Mid-conversation-паттерн устраняет этот компромисс.

Исправление prompt-кэша в Claude Code 2.1.212. В свежем выпуске Claude Code 2.1.212 есть связанный фикс: «mid-conversation system block теперь работает за LLM-gateway и кастомными base URL (Bedrock, Vertex, 1P)». Это указывает на то, что до 15 июля функция нестабильно работала в сессиях, проксируемых через gateway. Операторы, тестировавшие её ранее, могли получать непоследовательные результаты.

Угол зрения оператора routing-gateway

Здесь кроется основная зона тихих отказов, которую нужно проверить:

Фильтрация role при нормализации сообщений. Многие gateway — включая OpenAI-совместимые reverse-прокси — нормализуют массив messages, отсеивая роли, отличные от user и assistant. Этот распространённый паттерн молча удаляет mid-conversation system messages. Приложение считает, что governance-инструкция доставлена; модель её никогда не получает. Ошибки не возвращается.

Разрыв в OpenAI-совместимой маршрутизации. Схема OpenAI /v1/chat/completions не поддерживает role: system в середине массива messages (только в начале). Если ваш gateway транслирует Anthropic API-вызовы в OpenAI-совместимые вызовы, эта функция полностью теряется при конвертации. Для сохранения mid-conversation system messages обязателен нативный Anthropic API-путь.

Контрольный список для операторов, проксирующих Claude:

  1. Проверьте, передаёт ли ваш gateway объекты role: system в массиве messages в Anthropic API без изменений.
  2. Убедитесь, что allowlist ролей включает system внутри массива messages, а не только в верхнеуровневом поле.
  3. Проведите тест с короткой agentic-сессией, инъецируйте mid-conversation system message и убедитесь, что инструкция вступает в силу на следующем turn модели.
  4. Если вы маршрутизируете как на Fable/Mythos/Opus 4.8, так и на Sonnet 5, убедитесь, что ваша routing-политика учитывает отсутствие поддержки этой функции в Sonnet 5 — и корректно деградирует до верхнеуровневого system-поля.
  5. Если вы предоставляете Anthropic API как OpenAI-совместимый endpoint, задокументируйте для пользователей: mid-conversation system messages на этом пути молча игнорируются.

Влияние на prompt-cache маршрутизацию. Если вы проксируете оптимизированные под кэш запросы — с cache_control на поле system для снижения затрат — mid-conversation system messages теперь позволяют клиентам динамически добавлять operator-инструкции без cache-miss. Это меняет ожидаемый паттерн попаданий в кэш для длинных сессий: если клиенты перейдут на этот подход, число событий полной переобработки контекста должно снизиться.

На что обратить внимание дальше

  • Поддержка в Sonnet 5. Сроки появления mid-conversation system messages в Claude Sonnet 5 не объявлены. Если ваше приложение использует Sonnet 5 из соображений стоимости и Fable/Mythos/Opus 4.8 для governance-интенсивных задач, вам нужны отдельные code-пути.
  • Переключение memory API 22 июля. 22 июля заголовок managed-agents-2026-04-01 унаследует поведение agent-memory-2026-07-22 при листинге memories: изменятся порядок сортировки и параметры пагинации. Это отдельная задача для аудита, не связанная с изменением system messages.
  • Требования к версии SDK. Mid-conversation system messages не требуют обновления SDK — это изменение на уровне схемы сообщений — но убедитесь, что ваш слой сериализации не удаляет роль до отправки запроса.

Для проверки текущей конфигурации маршрутизации Anthropic API-запросов обратитесь к документации TheRouter.

Абстрактная диаграмма: цепочка принятия роли IAM от Claude apps gateway к Bedrock-апстриму в отдельном аккаунте AWS, с уровнем принудительного применения guardrail

Claude Code 2.1.281: Bedrock-апстримы получили кросс-аккаунтный IAM и принудительный Guardrail

2.1.281 добавляет assume_role и guardrail в Bedrock-апстримы Claude apps gateway. assume_role обменивает IAM-учётные данные на per-developer STS-токены. guardrail применяет Bedrock guardrail к каждому запросу. Оба смещают границу доверия в мультиаккаунтных AWS-деплоях.

источник Anthropic
Абстрактная архитектурная диаграмма, показывающая трансформацию формы API-запросов при прохождении через шлюз, иллюстрирующая четыре ломающих изменения Claude Opus 5.5

Claude Opus 5.5: четыре ломающих изменения API и их влияние на маршрутизацию

Claude Opus 5.5: четыре ломающих изменения — thinking нельзя отключить, tool_choice типы any/tool возвращают 400, thinking-блоки не читаются не-Fable/Mythos моделями, computer_20251124 удалён. Конкретные исправления и влияние на резервную маршрутизацию.

источник Anthropic
Claude API компакция по требованию и режим auto для разрешений: диаграмма пайплайна с фоновой суммаризацией и серверной оценкой доверия

Claude API: компакция по требованию и режим `auto` для разрешений меняют архитектуру агентных циклов

Два новых бета-обновления Claude API: `compact-2026-09-04` выносит суммаризацию в фоновый вызов, а режим `auto` передаёт оценку доверия к инструментам на сторону сервера. Оба меняют проектирование агентных циклов.

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