Opus 5.5 подешевел, но ломает агентов ошибкой 400

Если ваш агент выключал рассуждение на простых шагах через thinking: disabled, то после перехода на Opus 5.5 такой запрос вернёт ошибку 400. Гайд Anthropic по миграции, который разбирает The New Stack, насчитывает четыре таких ломающих изменения. При этом модель стала дешевле: 4 доллара вместо 5 за миллион входных токенов и 20 вместо 25 за миллион выходных.
Коротко
- Opus 5.5 вышел во вторник с тем же контекстом в 1 миллион токенов и лимитом вывода 128 000 токенов, но запросы, собранные под Opus 5, на нём могут падать с ошибкой 400.
- Ломаются четыре вещи: отключение рассуждения, принудительный вызов инструмента через tool_choice, повтор блоков рассуждений после правки истории у новых аккаунтов и старый инструмент computer_20251124 на Claude API и Google Cloud.
- Самое незаметное изменение ошибок не даёт: пояснения агента между вызовами инструментов приходят пустыми блоками рассуждений, а новые классификаторы могут вернуть отказ, который серверный фолбэк не всегда перезапустит.
Если вы не следили: часть этих перемен тянется ещё с Opus 5. В той миграции рассуждение включили по умолчанию, и вслед за этим поменялась форма ответа. Поэтому командам на Opus 4.8 Anthropic советует сначала пройти миграцию на Opus 5 и только потом браться за Opus 5.5. У тех, кто сидит на моделях старше Opus 4.7, список длиннее: отклонённые параметры сэмплирования, запрет ручного extended thinking, удалённый prefill и новый токенизатор.
Opus 5.5 отвечает ошибкой 400 на thinking: disabled и снижает effort по умолчанию до medium
Запрос, где thinking выставлен в disabled или в enabled с параметром budget_tokens, на Opus 5.5 возвращает 400. Управлять глубиной рассуждения можно только через effort. Агентам, которые раньше отключали рассуждение на простых шагах ради скорости и экономии токенов, придётся назначать этим шагам низкий уровень effort.
Раз рассуждение идёт всегда, ответ начинается с блоков thinking, и код, который считает первый блок контента текстом, тоже придётся править. Вдобавок effort по умолчанию снизился с high на Opus 5 до medium на Opus 5.5, так что запросы без этого параметра молча работают на более низкой настройке. Anthropic советует выставлять effort явно и заново прогнать оценки, потому что подходящий уровень для каждого шага мог сдвинуться вместе со стоимостью и задержкой.
tool_choice со значениями any и tool даёт 400 даже на подсчёте токенов
Принудительный вызов инструмента тоже сломан. Если tool_choice стоит в any или tool, запрос получает 400, в том числе на эндпоинте подсчёта токенов. Значит, вместе с самими запросами упадут и построенные на таких настройках оценки стоимости. Многие циклы агентов заставляют модель вызвать инструмент, когда шагу нужно сходить в базу данных, запустить код или обратиться к другому сервису.
Anthropic предлагает взамен режим auto вместе со strict tool use или structured outputs, а в промпте прямо писать, когда инструмент нужен. Четвёртое ломающее изменение касается агентов computer use на Claude API и Google Cloud. Opus 5.5 отклоняет инструмент computer_20251124 и принимает computer use только через набор computer_toolset_20260801.
Сам запрос становится проще: бета-заголовок уходит, а в записи набора не нужны ни имя, ни размеры экрана. Зато цикл агента придётся переписать. Каждое действие приходит отдельным блоком tool_use и опознаётся по имени блока, а не по input.action; за один ход таких блоков может быть несколько, и каждый результат должен возвращать toolset_name. На Amazon Bedrock старый инструмент работает, а для прочих платформ Anthropic отсылает к документации по совместимости.
Пояснения агента между вызовами инструментов приходят пустыми блоками
Изменение, которое проще всего пропустить, ошибок не выдаёт вовсе. На Opus 5 текст, который Claude пишет между вызовами инструментов, приходил блоками text. На Opus 5.5 те же пояснения идут блоками рассуждения типа progress update, и при значении thinking.display по умолчанию, omitted, они пустые. Интерфейс, который показывает такие пояснения пользователю, просто замолчит между вызовами.
Лечится выставлением display в updates, бета-режим, который отдаёт обновления прогресса и прячет само рассуждение, или в summarized, который отдаёт и то и другое. После этого каждый непустой блок thinking нужно отрисовывать перед вызовом инструмента, которому он предшествует.
Ещё у Opus 5.5 шире защитные классификаторы. Модель может вернуть stop_reason со значением refusal, а в stop_details к категории cyber добавились bio и reasoning_extraction. Отказы по reasoning_extraction серверный фолбэк Anthropic не перезапускает и возвращает приложению. Агент, который не обрабатывает отказы, остановится посреди задачи; похожая проблема у разработчиков уже была, когда система безопасности OpenAI обрывала ответы API.
Блоки рассуждений Opus 5.5 на Claude API читают только Fable 5.1 и Mythos 5.1
Блоки рассуждений привязаны к модели и диалогу, в которых они появились. Роутер или фолбэк, который передаст диалог любой другой модели, ошибки не получит: эти ходы просто пройдут без прежних рассуждений. В обратную сторону Opus 5.5 читает блоки Opus 5 и более ранних Opus, Sonnet и Haiku, но не Fable и не Mythos.
Чтобы блоки оставались валидными, диалог нужно только дописывать. Обрезка старых сообщений, смена определений инструментов, сжатие контекста на клиенте или правка системного промпта посреди разговора делают блоки недействительными. Представьте опечатанный конверт с черновиком: стоит переложить листы в папке, к которой он приложен, и печать уже ничего не гарантирует.
Для аккаунтов, созданных 31 августа 2026 года в полночь по UTC или позже, повтор такого блока после правки по умолчанию даёт 400. Старые аккаунты ошибки не получают, но недействительные блоки всё равно уходят в модель. Интеграциям, которые не трогают прошлые ходы, код менять не нужно; по словам Anthropic, так уже работают Claude Code, claude.ai, Claude Managed Agents и Claude Agent SDK. Агентам с собственным сжатием контекста компания советует документацию по preserved thinking.
Гайд перечисляет, что сломается, но не говорит, насколько меняется качество на medium по сравнению с high и сколько токенов рассуждения добавится на шагах, где раньше thinking выключали. Вероятно, часть снижения цены уйдёт именно туда, так что считать экономию по прайсу рано. На наш взгляд, спорнее всего устроены старые аккаунты: недействительные блоки доходят до модели без всякой ошибки, и сломанную историю там заметить труднее, чем у новых.
Когда проверку истории получат все
Anthropic пишет, что будущие модели будут проверять блоки рассуждений для всех аккаунтов, но дату не называет. Пока в Claude Code есть команда /claude-api migrate: она меняет ID модели и параметры, заменяет prefill и калибрует effort по всей кодовой базе, а потом выдаёт список пунктов для ручной проверки. Пользователям Claude Managed Agents достаточно сменить имя модели. Переводить продакшен Anthropic советует только после теста в среде разработки.
Читайте также
- Сброс лимитов Claude можно придержать до 22 октября
- Anthropic советует удалить из промптов «думай внимательно»
- Opus 5.5 на уровне Fable 5.1, но на 40% дешевле Opus 5
- Просмотрщик сессий в ant CLI и режим auto у агентов Claude
- Торговые агенты на Claude: код открыт под Apache 2.0
- ant apply синхронизирует агентов Claude с репозиторием
Комментарии
Пока никто не написал. Будьте первым.
Присоединяйтесь к разговору
Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.
