Opus 4.8: что Anthropic дал в этом релизе и зачем это всё

от автора

28 мая Anthropic выкатил Opus 4.8. Через 41 день после 4.7. Раньше между мажорными релизами были квартал-полугода, сейчас полтора месяца. То есть это уже не «посмотрим как изменит ландшафт», это рутина. Я открыл доку утром, кофе ещё не допил, а там уже полстраницы изменений.

Сел разбираться, что там реально нового, что маркетинговая вода, что стоит затащить в продакшен на следующей неделе. Ниже разложил по полочкам, с цифрами и парой примеров. Без хайпа, без «революции», просто что добавилось и зачем.

Если совсем коротко, чтоб не листать

Появилось:

  • Mid-conversation system messages. Можно вставлять системник по ходу, без рестарта

  • Effort high по умолчанию

  • Fast mode, research preview, до 2.5× быстрее

  • Lower prompt cache minimum, теперь 1024 токена

  • Refusal stop details, официально задокументированы

  • Dynamic Workflows для Claude Code, до 1000 параллельных subagents

Улучшилось внутри:

  • Кодинг 64.3 → 69.2 (SWE-bench)

  • Reasoning с инструментами 54.7 → 57.9

  • В 4 раза реже пропускает coding-флоу без флага. Это Anthropic так заявляет, я ещё не мерил

  • Меньше срывов длинных агентских сессий после compaction

  • Лучше срабатывает на «вызови тулзу когда надо»

Что не поменялось, и это хорошо — код не придётся переписывать:

  • 1M токенов контекст

  • 128k max output

  • Adaptive thinking как единственный режим

  • temperature, top_p, top_k всё так же возвращают 400, если их трогать

  • Цена в standard режиме та же

Цена fast — 10/50 за миллион токенов. Это, кстати, оказалось ниже стандарта. Объясню ниже.

Дальше по каждой штуке отдельно. Не все одинаково интересные.

Mid-conversation system messages

Самое неприметное и самое полезное в этом релизе. Я серьёзно, не шучу.

Системный промпт был статичным. Один раз в начале и всё. А что если по ходу длинной агентской цепочки поменялся контекст? Появились новые ограничения? Нужно переключить роль? Раньше — либо рестарт сессии с новым системником, либо тащить инструкции в user-prompt. И то и то с побочками. Рестарт ломает кэш, user-инструкции мусорят контекст.

Теперь можно вставлять role: "system" прямо после user-turn в массиве messages. Первый системник остаётся как был. Новый добавляется. И, что важно для кошелька, prompt cache hits на ранних turn’ах сохраняются. То есть длинная агентская сессия не теряет кэш каждый раз когда меняешь инструкции.

Применений вижу два штуки. Стандартное — фазированные пайплайны. Собрать данные → проанализировать → составить отчёт, и в каждой фазе свои правила. Не такое очевидное — рост политик безопасности по ходу разговора. В начале агент работает с тестовыми данными, после первого вызова продакшен-инструмента ему дописываешь «всё, теперь никаких destructive операций без подтверждения». Раньше так делать было больно, теперь нет.

Effort и пять уровней — самое практическое из релиза

В Opus 4.8 параметр effort на high дефолтно. И в API, и в Claude Code. Если ставил явно — ничего не сломается. Если опирался на дефолт — он поднялся.

Но интереснее не сам дефолт, а то как 4.8 теперь работает по уровням. Их у тебя пять, и в этом релизе они стали реально различимыми. На 4.6 разница между medium и high почти не чувствовалась, на 4.7 уже было лучше, на 4.8 откалибровали ещё сильнее.

Вот как я их использую сейчас, по убыванию:

max — абсолютный максимум. Без ограничений на токены, на каждую задачу модель крутит всё что может. Для меня это уровень редких frontier-кейсов: когда eval’ы показывают что на xhigh ещё остаётся потолок. На большинстве рабочих задач max добавляет стоимости больше чем качества, иногда даже переусердствует и overthink’ает структурированные ответы.

xhigh — рекомендуемая стартовая точка для coding и агентских задач. Длительные tool-вызовы, web-search, поиск по базе знаний — туда. Anthropic сами пишут: на 4.8 начинай с xhigh для серьёзной работы. Расход токенов заметно выше high. Если запускаешь на xhigh, ставь max_tokens побольше — рекомендуют 64k как разумный старт чтобы агент успел сходить и подумать.

high — дефолт. То же самое что не указывать effort вообще. Сложный reasoning, нетривиальный код, обычные агентские задачи. Часто это золотая середина по соотношению качество/токены.

medium — для всего где ты хочешь хороший результат, но не нужен прайс high. Drop-in замена для среднего workflow. Сюда хорошо ложатся типовые задачи где не нужна глубокая рефлексия.

low — самый дешёвый и быстрый. Простые задачи, классификация, lookups, субагенты на узкую задачу. Модель отвечает короче, тулзы дёргает реже, без преамбул. На high-volume сценариях экономия заметная, на сложных задачах будет проседать качество.

Что важно. Effort это не строгий бюджет, это сигнал. Модель сама решает сколько думать на конкретной задаче, эффорт только подкручивает её склонность. На сложных вещах даже на low она всё равно подумает, просто меньше чем подумала бы на high.

И ещё одна штука появилась в Claude Code — режим ultracode. Это xhigh плюс standing permission на запуск multi-agent workflows (тех самых Dynamic Workflows которые ниже разберу). В API ultracode нет — там нужно собирать руками через mid-conversation system messages, Anthropic даже дали пример как.

Подвох с дефолтом тот же что я писал. Если у тебя пайплайн где effort специально занижали ради latency — после миграции время ответа выросло. Проверь, не отъела ли поездка на high пол-секунды лишних.

Fast mode

Anthropic запустил fast mode как research preview. Включается через speed: "fast". Скорость до 2.5× выше по output tokens per second. Цена — 10$ за миллион входных, 50$ за миллион выходных.

Тут я полез считать и удивился.

Беру типичный agentic-вызов. 30 тысяч входных токенов и 5 тысяч выходных. На стандартной цене Opus (например 15/75 за миллион) выходит 0.45$ + 0.375$ = 0.825. На fast mode те же 30к + 5к — это 0.30 + 0.25$ = 0.55$. Получается, fast стоит дешевле, не дороже.

Логика тут понятная. Anthropic делает прайс выгодным чтобы загнать людей в research preview, собрать данные, потом цена поедет. Если есть latency-чувствительные сценарии — самое время попробовать. Чат-боты, real-time-ревью, любой UI где пользователь смотрит на спиннер.

Для чего fast не подходит. Длинные thinking-сессии где модель медленно крутит логику. Там скорость не критична, критично качество. Не надо туда.

Lower prompt cache minimum

На 4.7 чтобы промпт попал в cache, он должен был быть достаточно длинным. Многие короткие системники до порога не дотягивали и кэш не получали.

В 4.8 минимум 1024 токена. Всё что больше — кэшируется.

Заметно это особенно на специализированных субагентах с лёгким системным промптом. Ну вот таких, на одну узкую задачу. Раньше каждый их вызов был холодным. Сейчас при 90% cache hit платишь 10% от обычного input. Маленькая цифра, но на проде это десятки тысяч долларов в год для нагруженного продукта.

Refusal stop details

stop_details появился ещё в 4.7, но был неофициальный. В 4.8 публично задокументирован.

Когда модель отказывается, раньше API возвращал просто stop_reason: "refusal". И всё. Дальше думай сам что произошло. Теперь к этому едет категория отказа в stop_details. То есть приложение может различать «отказ по политике безопасности», «отказ по этике», «отказ из-за нехватки информации» и так далее.

Что с этим делать. Разные UX-флоу под разные категории. Один отказ — показываешь «нужны разрешения». Другой — «переформулируйте запрос». Третий — «эта тема не поддерживается». Раньше нужно было гадать по тексту, теперь нет. Если у тебя клиентское приложение и иногда модель отказывает, эту штуку прямо стоит подключать.

Dynamic Workflows

Громкая фича релиза. И это не часть модели, а Claude Code фича. Research preview.

Идея простая. Хочешь запустить субагентов параллельно? Раньше ты их оркестрировал руками, в коде или через MCP. Сейчас Claude сам пишет JavaScript-скрипт оркестрации по твоей задаче, а runtime гоняет этот скрипт в фоне. Твоя сессия с Claude остаётся отзывчивой, пока агенты пашут.

Ключевая особенность вот тут. План задачи и промежуточные результаты живут в переменных скрипта, не в context window. Сам Claude в финале видит только итоговый ответ. Это снимает классическую проблему «контекст закончился раньше чем агенты добежали».

Как это вообще работает. Получает задачу. Декомпозирует на подзадачи. Распределяет работу по агентам, агенты идут параллельно с разных углов. Часть агентов решает задачу одним способом, другая пытается опровергнуть выводы первых. Прогон идёт пока ответы не сойдутся.

Лимиты: 16 concurrent subagents, 1000 total per run. Скрипт сам не может в файловую систему и shell, только агенты могут читать-писать-запускать.

Как запустить. Два способа. Либо написать слово «workflow» в промпте: «запусти workflow чтобы найти все баги в репо». Либо включить режим ultracode, это xhigh reasoning плюс автоматическая workflow-оркестрация.

Где это реально полезно. Большие миграции кода. Codebase-wide охота на баги. Кросс-проверка фактов в research-задачах. То есть сценарии где главное препятствие — это параллелизм и время, а не одиночное умение модели.

И ещё одна радость, которую недооценивают: если workflow прервался, он не начинается с нуля. Это огромное удобство по сравнению с обычной агентской сессией где после сбоя ты грустно начинаешь заново.

Пара дней с этим не дают полной картины. Но ощущение что Anthropic пробует архитектуру которую остальные пойдут копировать в течение года.

Что улучшили под капотом

Anthropic выделил три направления.

Long-horizon agentic coding. Длинные цепочки агентских действий стабильнее. Меньше срывов после compaction (когда контекст сжимают чтобы влезть в окно). Модель не «забывает» что делала пять часов назад так сильно как раньше.

Reasoning effort calibration. Про уровни я уже расписал выше. Если коротко — в 4.8 модель действительно ведёт себя по-разному на разных уровнях. На 4.6 этого почти не было.

Tool triggering. Это про то, как часто модель «не догадывается» вызвать инструмент когда задача его требует. На 4.7 жаловались — модель иногда отвечала из своих знаний вместо того чтобы дёрнуть web-search или работающий тулз. В 4.8 чинили.

И отдельно цифра, которой Anthropic размахивает в анонсах: в 4 раза реже пропускает coding-флоу без флага. Что это значит. Раньше модель писала код, видела подозрительное место, и иногда дописывала «работает» вместо того чтобы пометить. Сейчас помечает. Это про честность модели, alignment, как у них в Mythos.

Я лично пока не успел поверить или опровергнуть. Будут наблюдения недели через две.

Что осталось ограничено

Не всё новое — приятная новость. Некоторые штуки запрещены.

temperature, top_p, top_k — если задаёшь, API возвращает 400. Контроль вывода через эти параметры в Opus отменили. Регулируй через промпт.

thinking: {"type": "enabled", "budget_tokens": N} — больше не работает. Бюджетный режим думанья убили ещё в 4.7. Используй adaptive thinking, оно само решает когда думать.

Это не баги. Это сознательный шаг Anthropic. Модель сама решает как глубоко крутить, ты только говоришь насколько усердно. Кому-то нравится, кому-то нет. Мне норм, привык за полгода.

Что я бы попробовал в первую очередь

Если у тебя уже есть прод на Opus, три быстрых эксперимента которые окупаются за день.

Раз. Mid-conversation system messages на любом агенте с фазированной задачей. Если есть пайплайн с разными правилами в разных фазах — попробуй вставлять system как раз после нужных user-turn’ов. Cache hit’ы вырастут, инструкции перестанут залезать в user.

Два. Fast mode на любом сценарии где важна latency. По цене он сейчас выгоднее стандарта (что само по себе странно, но факт), по скорости в 2.5 раза быстрее. Преимущество ограничено по времени, потому что preview. Когда перейдёт в general availability, цена скорее всего поменяется.

Три. Dynamic Workflows на задачу где обычно нужны часы. Codebase migration. Аудит чужого legacy. Поиск багов по всему репо. Не на типовые задачи, на те где обычно сажаешь несколько разработчиков на день.

Ну и refusal stop details. Если у тебя клиентское приложение и иногда модель отказывает — обработка категорий отказа очень сильно улучшит UX. Маленький patch, заметный эффект.

К чему это всё

Opus 4.8 не «новая эпоха», и это нормально. Аккуратный шаг вперёд по нескольким измерениям, цена в standard та же. На что я бы смотрел повнимательнее, так это на два момента.

Dynamic Workflows. Может стать нормой работы с агентами в течение года. Сейчас в Claude Code, потом наверняка приедет в API. Если идея «модель сама пишет себе оркестратор» приживётся, изменится дизайн агентских систем как класса.

Каденс релизов. 41 день между мажорными версиями. Если так пойдёт, мы будем мигрировать на новую модель каждые полтора месяца. И вопрос уже не «как поднять модель», а «как организовать миграцию как процесс».

Из практического. Попробуйте mid-conversation system messages даже если больше ничего не меняете. Маленькая фича, незаметная польза, и заодно повод посмотреть свежим взглядом на свой системный промпт. Я как минимум выкинул из своего процентов 30 балласта который накопился за полгода.

А вы что планируете трогать первым после миграции?

ссылка на оригинал статьи https://habr.com/ru/articles/1041460/