← Назад в блог

1 сентября 2026 г.10 мин • AI Architecture Team

Переезд с Fable 5 на Fable 5.1: три ломающих изменения и чек-лист проверки кода

Что сломается при переходе на claude-fable-5-1: запрет принудительного вызова инструментов, привязка блоков мышления к модели и запрет редактирования истории диалога. Разбор с чек-листом.

Что вообще меняется

Fable 5.1 наследует поверхность API у Fable 5 почти целиком: та же цена входа и выхода, тот же токенизатор, то же всегда включённое мышление, те же пять уровней усилия, то же требование к сроку хранения данных. Перемерять токены после переезда не нужно — счётчик не изменится.

Но три вещи изменились так, что рабочий код на Fable 5 может начать возвращать 400 или молча вести себя иначе. Все три касаются не параметров запроса как таковых, а того, как устроен ваш агентный цикл — поэтому линтером их не поймать.

ЧтоНа Fable 5На Fable 5.1
tool_choice: any / toolРаботаетОшибка 400
Блоки мышления от другой моделиИгнорируютсяИгнорируются
Редактирование прошлых ходовДопустимоОбесценивает блоки мышления, у новых аккаунтов — 400
Чтение кеша1,00 $/1M0,25 $/1M
ТокенизаторОбщий с Opus 4.8Тот же

Изменение 1. Принудительный вызов инструмента убран

Значения any и tool в поле tool_choice на Fable 5.1 возвращают 400. Это касается не только обычных запросов, но и подсчёта токенов, и пакетного режима — то есть код, который считает стоимость до отправки, упадёт там же.

Чаще всего принудительный вызов используют не ради самого инструмента, а ради гарантированного JSON на выходе: объявляют фиктивный инструмент со схемой и заставляют модель его вызвать. Если у вас так — это решается штатным структурированным выводом, а не инструментом.

Если инструмент настоящий и вызвать его действительно надо, рабочая замена — оставить auto и прямо назвать инструмент в инструкции, а схему аргументов защитить строгим режимом. Строгий режим гарантирует, что аргументы вызова будут валидны по схеме, что и было половиной ценности принудительного вызова.

Значение none продолжает работать. Запрет параллельных вызовов вместе с auto — тоже: получите не более одного вызова за ход.

  • any и tool — 400, в том числе при подсчёте токенов и в батчах.
  • Нужен только JSON — берите структурированный вывод.
  • Нужен реальный вызов — auto плюс инструкция плюс строгая схема.
  • none и запрет параллельных вызовов работают как раньше.

Изменение 2. Блоки мышления привязаны к модели

Блок мышления теперь принадлежит той модели, которая его сгенерировала. Если вы продолжаете диалог на той же модели — возвращайте блоки в историю без изменений, как и раньше. Если переключаете модель — чужие блоки отбрасываются: молча, без ошибки и без тарификации.

На практике это бьёт по каскадам «дешёвая модель для простых ходов, дорогая для сложных» внутри одного диалога. Такой каскад продолжит работать, но модель на следующем шаге не увидит рассуждения предыдущей — и качество будет не тем, на которое вы рассчитывали при проектировании.

Отдельно стоит помнить, что кеш промпта тоже привязан к модели. Переключение модели посреди диалога рвёт кеш целиком, а на Fable 5.1 с её ставкой чтения кеша в 0,25 доллара это дороже, чем кажется. Каскад из моделей часто оказывается дороже одной модели на пониженном уровне усилия — просто потому, что вторая не теряет кеш.

  • На той же модели блоки мышления возвращают без изменений.
  • При смене модели чужие блоки отбрасываются молча.
  • Смена модели рвёт кеш — считайте это в стоимость каскада.

Изменение 3. История дописывается, а не переписывается

Самое неочевидное. Блоки мышления Fable 5.1 сохраняются между ходами, и модель рассчитывает, что предыдущие ходы диалога останутся такими, какими были. Если вы редактируете прошлый ход — переписываете сообщение, вырезаете результат инструмента, подменяете часть истории, — ранее сгенерированные блоки мышления обесцениваются.

Для аккаунтов, созданных начиная с конца августа 2026 года, такой запрос возвращает 400. Для остальных пока проходит, но правило постепенно распространяется на всех, и на более поздних моделях оно действует уже для каждого. Строить на нынешней мягкости смысла нет.

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

Отдельно проверьте место, где вы ужимаете длинный контекст. Если ваша логика сжатия вырезает куски из середины истории — это ровно тот случай, который сломается. Штатное серверное сжатие контекста устроено совместимо с этим правилом, самописное — почти наверняка нет.

  • Не редактируйте и не вырезайте прошлые ходы.
  • Корректировка поведения — новым сообщением, а не правкой старого.
  • Проверьте собственную логику сжатия контекста — она главный кандидат на поломку.
  • У аккаунтов с конца августа 2026 года нарушение сразу даёт 400.

Что можно включить заодно

Раз уж вы всё равно трогаете код, есть три вещи, которые на Fable 5 были недоступны и окупают время на переезд.

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

Вторая — системное сообщение на один ход. Штатный способ повторять напоминание на каждом шаге агента, не накапливая в истории копии и, что важно в свете третьего изменения, не удаляя предыдущие вручную.

Третья — заметки о прогрессе между вызовами инструментов. Ход рассуждения при этом остаётся скрытым, но пользователь в интерфейсе видит, чем модель занята. На длинных прогонах, которые для Fable 5.1 норма, это разница между «работает» и «завис».

  • Усилие меняется по ходу диалога без потери кеша.
  • Напоминания — системным сообщением на один ход.
  • Прогресс агента видно в интерфейсе без раскрытия рассуждения.

Чек-лист переезда

Порядок, который экономит время: сначала вычищаем то, что даст 400, потом чиним агентный цикл, и только затем меняем идентификатор модели на проде.

  • Найти в коде tool_choice со значением any или tool и заменить их.
  • Проверить подсчёт токенов и пакетные запросы — там тот же tool_choice.
  • Убедиться, что фиктивные инструменты ради JSON заменены структурированным выводом.
  • Проверить, что история диалога только дописывается.
  • Проверить собственную логику сжатия контекста на вырезание из середины.
  • Убрать переключение моделей внутри одного диалога или осознанно принять потерю кеша и блоков мышления.
  • Проверить, что причина остановки читается до содержимого ответа.
  • Убедиться, что срок хранения данных в организации допускает Fable 5.1.
  • Поменять идентификатор модели на claude-fable-5-1 и прогнать реальный сценарий целиком.

Что дальше

Если планируете внедрять Claude API в продакшн, начните с понятной структуры тарифа и сразу настройте контроль расхода токенов в личном кабинете.