Anthropic выключает старые модели по графику и предупреждает заранее, как правило за пару месяцев. Сроки редко подводят. Подводит другое: имя модели прописано в десятке мест, и про половину из них вспоминают уже после падения.
Ниже порядок работы по шагам.
Шаг 1. Найдите все упоминания модели
Начните с grep по всему репозиторию, вместе с конфигами и инфраструктурой:
grep -rn "claude-" . \
--include="*.ts" --include="*.tsx" --include="*.py" \
--include="*.go" --include="*.yml" --include="*.yaml" \
--include="*.json" --include="*.env*" --include="*.tf"
Одним кодом дело не ограничивается. Модель часто сидит в конфиге раннера или в файле Terraform.
Шаг 2. Проверьте места, до которых grep не доберётся
Вот что забывают чаще всего:
- переменные окружения в панели хостинга, на каждом стенде отдельно
- секреты в CI
- дашборды и алерты, где имя модели стоит в фильтре
- планировщики и фоновые задачи, которые стартуют раз в неделю или раз в месяц
- документация и README, откуда новый разработчик скопирует мёртвый ID
- шаблоны и сиды тестовых данных
Шаг 3. Выберите, куда мигрировать
Чаще всего замена сводится к смене строки. Anthropic называет рекомендуемую замену прямо в уведомлении, и поведение модели при этом почти не меняется.
Если вы переезжаете сразу на новейшую модель, а не на ближайшую замену, оставьте время на проверку промптов. У свежих версий бывают другие привычки в длине ответа и в форматировании.
Шаг 4. Вынесите имя модели в одну константу
Это закрывает проблему насовсем: одна переменная окружения или одна константа в коде вместо литералов, разбросанных по проекту.
export const MODEL = process.env.LLM_MODEL ?? 'claude-opus-4-8'
Следующая миграция сведётся к правке одной строки в одном месте.
Шаг 5. Проверьте на настоящем API, а не юнит-тестами
Юнит-тесты обычно подменяют провайдера заглушкой, так что смену модели они не заметят. Нужен хотя бы один интеграционный прогон, который действительно ходит в API.
Шаг 6. Поставьте напоминание
Следите за страницей с датами отключений и заведите напоминание за месяц до каждой даты. Это дешевле, чем разбирать упавший прод.
Если вы работаете через шлюз
codexkey отдаёт стабильные ID моделей через свой эндпоинт, поэтому смена версии на стороне поставщика ваш код не ломает. Актуальный список моделей всегда лежит на странице цен.
Формат запросов при этом прежний: Anthropic Messages и OpenAI-совместимый. Так что уйти от codexkey так же просто, как прийти.