Claude API 2026-10-21: что сломается при обновлении SDK

Anthropic выпустила новую версию Claude API — `2026-10-21` — и вместе с ней новые мажорные версии SDK для Python, TypeScript, Go, Java, C#, PHP и Ruby. Предыдущая версия API, `2023-06-01`, жила три года. Новость касается всех, у кого Claude встроен в сайт, CRM, бота или внутренний сервис: обычное `npm update` или `pip install -U` может переключить проект на новую версию и сломать часть запросов.
Что произошло
Версия API в Claude передаётся заголовком `anthropic-version`. Если вы работаете через SDK, его подставляет библиотека: каждая мажорная версия SDK привязана к версии API, актуальной на момент её выхода. Новые SDK отправляют `2026-10-21`.
| Язык или инструмент | Пакет | Первая версия на 2026-10-21 |
|---|---|---|
| Python | anthropic | 2.0.0 |
| TypeScript | @anthropic-ai/sdk | 1.0.0 |
| Go | anthropic-sdk-go/v2 | 2.0.0 |
| Java | com.anthropic:anthropic-java | 3.0.0 |
| C# | Anthropic | 13.0.0 |
| PHP | anthropic-ai/sdk | 1.0.0 |
| Ruby | anthropic | 2.0.0 |
| CLI | ant | 2.0.0 |
Если вы обращаетесь к API напрямую, без SDK, ничего не изменится, пока вы сами не поменяете заголовок.
Что ломается в запросах
Изменения в Messages API, по документации Anthropic:
- temperature, top_p и top_k удалены. Запрос с любым из этих параметров вернёт ошибку 400 — даже если значение совпадает со значением по умолчанию. Без параметров модель работает с temperature 1.0.
- Документы в ответах ассистента. Блок `document` прямо в сообщении с ролью assistant теперь даёт ошибку. Документы нужно передавать в сообщениях user.
- Цитаты в сообщениях пользователя. Текстовый блок с непустым массивом `citations` в сообщении user вызывает ошибку — в том числе внутри `search_result`.
Для моделей Claude 4.7 и новее отказ от temperature почти ничего не меняет: они и раньше принимали только значения по умолчанию. А вот у тех, кто работает с Sonnet 4.6 и ставил низкую температуру «для стабильности», поведение изменится, и замены этой настройке нет.

Что меняется в самих SDK
Это важнее, чем кажется: правки нужны не только в запросах, но и в инфраструктуре.
- Ключ API уходит в заголовке `Authorization: Bearer`, а не в `X-Api-Key`. Если у вас прокси, шлюз или фильтр логов читает `X-Api-Key`, их нужно поправить. Сам API принимает ключ в любом из двух заголовков.
- Text Completions удалён из SDK для TypeScript, Go, Java, Ruby и из CLI. Старый код на этом методе надо переписать на Messages API.
- Go-модуль сменил путь на `.../anthropic-sdk-go/v2`: импорты нужно поправить вручную. Старый путь молча ставит последнюю версию v1.
- Лицензия. Новые версии SDK и CLI распространяются по Apache 2.0, прежние — по MIT. Если вы ведёте реестр лицензий зависимостей, обновите запись.
- Admin API переименовал часть полей: например, у ключей вместо `workspace_id` теперь `scope`.
На Amazon Bedrock версия `2026-10-21` доступна только для моделей Claude 4.7 и новее. Для старых моделей на Bedrock нужно остаться на прежнем SDK.
Кого касается
- проектов с SDK, где зависимости обновляются автоматически (Dependabot, Renovate, `^` в package.json);
- сервисов, которые проксируют запросы к Claude через свой шлюз или логируют заголовки;
- старых интеграций на Text Completions;
- всех, кто задаёт temperature в настройках бота или в конструкторе автоматизаций.
Что делать
- Зафиксируйте текущую мажорную версию SDK, пока не готовы к переходу: в package.json уберите `^` перед версией 0.x или пропишите `<2` для Python.
- Найдите в коде temperature, top_p, top_k, Text Completions и чтение `X-Api-Key`.
- Проверьте тело типичного запроса в инструменте ниже: он покажет несовместимые параметры и устаревшие модели.
- Обновите SDK в отдельной ветке и прогоните тесты на реальных запросах.
- Заодно проверьте модели: `claude-sonnet-4-5-20250929` отключат 30 ноября 2026 года.
Как понять, на какой версии API вы работаете
Проще всего посмотреть версию SDK в файле зависимостей: `package.json`, `requirements.txt`, `composer.json`, `go.mod`. Если там версия ниже указанной в таблице выше, вы на `2023-06-01`.
Если интеграция написана без SDK, найдите в коде заголовок `anthropic-version`. Его значение и есть версия API.
Третий способ — логи прокси или шлюза, если запросы к Claude идут через него. В них виден заголовок каждой отправки.
Отдельно проверьте сторонние продукты: плагины CMS, конструкторы ботов, сервисы автоматизации вроде n8n. Они обновляют SDK сами, и после их обновления ваш сценарий может начать получать ошибки, хотя вы ничего не меняли. Если сценарий задаёт temperature в настройках узла, уберите это поле заранее.
Наше мнение
Сама смена версии — нормальная практика: Anthropic подробно описала изменения и оставила старую версию для тех, кто не готов. Риск в другом: в малом бизнесе зависимости часто обновляет подрядчик «пакетом», и сломанный бот замечают по жалобам клиентов. Что мы советуем: зафиксировать версии библиотек, вести журнал обновлений и проверять интеграции с ИИ так же, как оплату на сайте — на тестовом стенде, до выкладки.
Проверка запроса к Claude на совместимость с API 2026-10-21
Вставьте тело запроса к /v1/messages в формате JSON (без ключа API). Инструмент ищет удалённые параметры, document в сообщениях assistant, citations в сообщениях user и устаревшие модели по документации Anthropic на 23.10.2026. Изменения заголовков SDK по телу запроса не видны. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.
Материалы для проверки
Если нужна реализация
Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.
Вопросы и ответы
Нужно ли срочно переходить на API 2026-10-21?
Нет. Старая версия 2023-06-01 продолжает работать. Переход случится, когда вы обновите SDK до новой мажорной версии или поменяете заголовок anthropic-version.
Почему после обновления библиотеки запросы падают с ошибкой 400?
Чаще всего из-за temperature, top_p или top_k. В новой версии API они удалены, и запрос с ними отклоняется даже при значении по умолчанию.
Как сохранить детерминированные ответы без temperature?
Прямой замены нет. Anthropic советует управлять поведением через инструкции в промпте, а для строгого формата использовать структурированный вывод по схеме.
Затронет ли изменение наш прокси для API?
Если прокси читает ключ из заголовка X-Api-Key — да: новые SDK отправляют ключ в Authorization: Bearer. Поправьте прокси или передавайте ключ в X-Api-Key явно.
Что с Amazon Bedrock?
На Bedrock версия 2026-10-21 работает только для Claude 4.7 и новее. Для более старых моделей нужно остаться на прежней версии SDK.
Нужно ли менять что-то в коде на Go?
Да. Новый SDK для Go — это модуль anthropic-sdk-go/v2, поэтому все импорты нужно переписать на новый путь. Старый путь продолжит ставить последнюю версию v1 без предупреждений.