В двадцать сорок я переставила коробку с распечатками из-под стола к двери. Не выбрасываю: у двери у меня лежит то, что должно выйти из дома в ближайшие дни, — привычка с переезда. В коробке прогоны за неделю: лист на кадр, дата, кто смотрел и что сказал. Приставной стул я не убрала, на нём свитер.
Страницу с датами открыла после, и первая же строка была «завтра».
Платформу Evals OpenAI объявила уходящей 3 июня 2026 года. Дальше две даты в разделе Deprecations: 31 октября существующие прогоны становятся только для чтения, 30 ноября панель и API выключаются. В том же абзаце сказано, что оценщики, описанные под задачи оценки, — часть этого перехода, а путь миграции страница показывает один: переезд в Promptfoo.
Это не «устарело» с оттенком «но работает». С тридцать первого числа прогон в чужой панели перестаёт быть живым и становится архивом, а с тридцатого ноября у архива не остаётся даже входа.
Тридцатое ноября на той же странице — не дата, а день трёх смертей. В этот день выключаются сохранённые промпты: API `v1/prompts` и объекты промптов, и совет к ним предельно прямой — перенести текст промпта в код приложения. В этот же день выключается Agent Builder, ChatKit остаётся.
Дальше по календарю: gpt-image-1.5, mini и chatgpt-image-latest уходят 1 декабря с заменой на gpt-image-2.5-sunburst и flare; линейка GPT-4 — 4o, 4o mini, 4.1 и 4.1 mini — 14 января 2027 года с заменой на gpt-6-luna; gpt-5.3-codex, gpt-5.1 и gpt-5.4-nano — 1 апреля 2027.
Полезнее дат — правило, по которому они выдаются. Общедоступные модели: не меньше шести месяцев предупреждения. Специализированные варианты, к которым отнесены chat, codex и deep research: три месяца. Preview-модели, те, у которых «preview» в имени: две недели — и там же честно написано, что для боевой нагрузки они не годятся, если вы не умеете переезжать за две недели.
И есть способ не читать это глазами. У эндпоинта со списком моделей есть поле `shutdown_date`: дата в виде «год-месяц-день» или null, если её ещё нет. Одна строка в проверке — и вопрос «что у нас умрёт в следующем месяце» перестаёт быть разговором по памяти.
У Anthropic другой счёт: не меньше шестидесяти дней до отзыва модели, отдельной строкой в разделе уведомлений. В таблице статусов вместо даты стоит обещание: у claude-fable-5-1 и claude-mythos-5-1 — «не раньше 1 сентября 2027», у claude-opus-4-5-20251101 — «не раньше 24 ноября 2026». Одна модель висит в статусе deprecated без даты вообще: claude-mythos-preview объявлена 9 июня 2026, дата отзыва — «будет объявлена». claude-opus-4-1-20250805 отозвана 5 августа 2026 года.
Шестьдесят дней — это не срок, чтобы переписать продукт. Это срок, чтобы обнаружить, что модель, на которую вы рассчитывали, уже полтора месяца как deprecated.
А теперь то, ради чего этот обзор написан. Ниже таблиц на той же странице есть таблица параметров. temperature, top_p и top_k для Claude 4.7 и новее помечены как deprecated: при значении, отличном от дефолтного, запрос возвращает 400. В Python SDK начиная с версии 1.0 эти параметры убраны из типов, поэтому передача даёт TypeError ещё до сети. Рекомендованная замена — не передавать их вовсе и управлять поведением через промпт.
Убирают ровно ту ручку, которой прогон делался повторяемым. Пока она была, запись «та же модель, тот же промпт, temperature 0.2» означала, что через месяц получится примерно то же самое. Теперь один и тот же промпт в одну и ту же модель зависит от даты вызова: до какого-то числа параметр принимали, после — отвечают 400. Имя модели в записи об этом не говорит ничего.
Пока площадки закрываются, те, кто остаётся, идут в противоположную сторону — фиксируют план. У OpenObserve (документация обновлена 15 октября 2026) эксперимент определён как неизменяемый план: снимок набора данных, задача, набор оценщиков и число прогонов. Правки в элемент набора только дописываются, каждое изменение создаёт версию, а эксперимент прибит к конкретной версии снимка — поздняя правка не меняет уже идущий прогон.
У MLflow в статье от 10 сентября 2026 года тот же аргумент с другой стороны: смысл стенда в том, что одна и та же задача, один и тот же шаблон промпта и один и тот же оценщик дают сравнимые числа сегодня и через полгода.
Оба утверждения про одно: чтобы сравнивать, план не должен двигаться. И оба молчат о том, что не двигаться не обещал никто, кроме нас самих.
Теперь про мою коробку. На каждый принятый кадр у меня есть строка: дата, нода, id прогона, формат и цена. Чего в ней нет — версии модели на момент вызова. «Nano Banana 2.1» — это имя, а не версия, и вчерашний день показал, как мало оно значит: кадр 4K 3:2 стоил 10 ⚡, а 4K 4:5 на том же имени — 5 ⚡. Одна модель, один вечер, разница вдвое, и ни одно поле не записало это как свойство модели на дату.
Формулировка, которую забираю в привычку: дата должна стоять у вызова, а не только у модели. Тогда через месяц видно не «какая была модель», а «что у неё просили в тот день, когда приняли этот кадр».
Цена ошибки считается просто. Пока запись живёт на чужой площадке, её срок жизни равен сроку жизни площадки: тридцать дней предупреждения — и панель закрыта. Если не вынести прогон к себе до тридцатого ноября, от приёмки останется лист в коробке и слово «принято» в тексте, а проверить это слово будет нечем.

В двадцать три десять коробка стоит у двери, сверху лежит лист за тридцатое октября: две модели, одна пятница, пять сроков. Завтра прогоны в Evals станут только для чтения — то есть ровно тем, чем прогон должен быть с самого начала.
