По сравнению с Claude Opus 5, Claude Opus 5.5 создала меньше критических ошибок, уязвимостей и «запахов кода», при этом написав значительно меньше строк кода и использовав меньше выходных токенов. Это одна из самых чистых и эффективных моделей Anthropic.
пишет на 27,5% меньше кода, чем Opus 5 для тех же задач, сохраняя при этом тот же уровень успешного прохождения тестов. Мы прогнали новейшую флагманскую модель Anthropic через тот же Java-бенчмарк и ту же систему оценки Sonar LLM, которую используем для каждой модели.
Opus 5 написала в 2,3 раза больше кода, чем предыдущая модель, и суть той оценки сводилась в основном к тому, во сколько обходится этот дополнительный объем в процессе проверки. Opus 5.5 движется в противоположном направлении: меньше кода для чтения и меньше результатов для сортировки.
Это лаконичный релиз. Меньше кода, меньше общих замечаний, ниже плотность «запахов кода» и уязвимостей, а также меньше наиболее серьезных замечаний во всех трех категориях. Плотность ошибок на строку и замечания по параллелизму изменились в другую сторону, а комментирование стало гораздо менее интенсивным, чем в Opus 5.
Какие бенчмарки и методологию мы использовали для оценки Claude Opus 5.5?
Модель: Claude Opus 5.5 High
Базовая модель: Claude Opus 5 Thinking
Язык: Java
Бенчмарк: тот же Java-бенчмарк, который мы используем для каждой модели в нашем рейтинге LLM, охватывающий HumanEval, MBPP и ComplexCodeEval. Прогон Opus 5.5 включает 4444 задачи. Показатель успешности охватывает 544 задачи HumanEval и MBPP с исполняемыми тестами. ComplexCodeEval вносит вклад в анализ кода, но не в показатель успешности.
Анализатор: алгоритмический анализ кода SonarQube. Метрики плотности указаны на 1000 строк кода (kLOC); разбивка по категориям — на миллион строк (mLOC).
Два термина, которые стоит определить в первую очередь:
- Цикломатическая сложность: подсчитывает количество независимых путей через функцию.
- Когнитивная сложность: метрика SonarQube, которая придает больший вес вложенной и сильно разветвленной логике, отражая то, насколько сложно человеку читать код.
Ни одна из них не говорит о том, работает ли код. Обе помогают определить, какой объем логики придется проанализировать рецензентам и тестировщикам.
Таблицы серьезности ниже перечисляют каждый уровень, о котором сообщает анализатор, поэтому каждый набор уровней суммируется до общей плотности. Строки категорий округлены до ближайшего целого числа на миллион строк, поэтому столбец может отличаться на пару пунктов от своей плотности.
Сопоставление правил, лежащее в основе таблиц категорий, идентично для обеих моделей в отношении уязвимостей и «запахов кода».
Как Claude Opus 5.5 соотносится с Opus 5 по ключевым метрикам?
Метрика
Opus 5 Thinking
Opus 5.5
Строк кода (всего)
916 813
664 890
Процент строк с комментариями
10,5%
3,1%
Цикломатическая сложность на kLOC
237,82
237,70
Когнитивная сложность на kLOC
132,29
138,05
Плотность ошибок на mLOC
576
644
Плотность уязвимостей на mLOC
251
229
Плотность «запахов кода» на kLOC
19,69
15,58
Общая плотность проблем на kLOC
20,52
16,46
Функциональные навыки (процент успешности)
88,6%
87,68%
Отсутствующие завершения
0,83%
0,68%
Каков функциональный показатель успешности Claude Opus 5.5?
87,68% по 544 задачам с тестами против 88,6% у Opus 5. Это на 0,92 процентных пункта ниже, поэтому оба релиза находятся в пределах одного процентного пункта друг от друга.
Для контекста, четыре релиза Opus до этого показали результаты 82,72%, 83,66%, 82,9% и 88,6%. Opus 5 стал качественным скачком. Opus 5.5 удерживает этот уровень, а не расширяет его, и делает это, записывая значительно меньше кода, что является наиболее интересной частью этой оценки.
Количество отсутствующих завершений улучшилось с 0,83% до 0,68%. Это 30 задач, по которым не был получен парсируемый код, против 37 ранее.
Примерно одно из восьми решений в подмножестве с тестами по-прежнему не проходит их. Это примерно тот же уровень, на котором находилась Opus 5, и это все еще соотношение, требующее последующей проверки.
Генерирует ли Claude Opus 5.5 меньше кода, чем Opus 5?
Да, и это изменение определяет остальную часть оценки.
Opus 5.5 сгенерировала 664 890 строк кода в рамках бенчмарка. Opus 5 сгенерировала 916 813. Это на 27,5% меньше кода для того же бенчмарка.
Для этого она использовала 89 466 функций, что меньше 122 650 (сокращение на 27,1%). Это меньше функций и меньше кода в целом при примерно той же гранулярности.
Строк с комментариями стало меньше, чем самого кода. Плотность строк с комментариями составляет 3,1% против 10,5%, что в абсолютных цифрах составляет 21 058 строк комментариев против 107 517. Opus 5 была необычно сильно аннотирована для этого бенчмарка.
Для любого, кто будет поддерживать этот код позже, встроенного контекста меньше, чем предоставляла Opus 5, при меньшей кодовой базе.
Насколько сложен код, сгенерированный Claude Opus 5.5?
Цикломатическая сложность составляет 237,70 на kLOC против 237,82 у Opus 5. Стабильно.
Когнитивная сложность составляет 138,05 на kLOC против 132,29, что является увеличением на 4%.
Таким образом, каждая тысяча строк ветвится примерно так же, как у Opus 5, и имеет немного более глубокую вложенность. Учитывая, что общее количество строк сократилось на 27,5%, рост когнитивной плотности на 4% означает, что абсолютный объем вложенной логики в выводе существенно снизился, даже несмотря на то, что показатель на строку немного вырос.
Плотность сложности практически не изменилась по обоим показателям. Значимое изменение сложности в этом релизе заключается в объеме, по которому она распределена.
Плотность и серьезность ошибок в Claude Opus 5.5
Плотность ошибок составляет 644 на mLOC против 576. Увеличение на 11,8%.
Серьезность влияния на надежность на mLOC
Opus 5
Opus 5.5
BLOCKER
HIGH
MEDIUM
241
263
LOW
265
323
Количество замечаний по надежности уровня BLOCKER снизилось на 41%, с 41 до 24 на mLOC. BLOCKER — это уровень, который с наибольшей вероятностью может нанести вред в продакшене, и именно этот уровень здесь улучшился больше всего.
Остальные три уровня выросли. HIGH — с 28 до 33, MEDIUM — с 241 до 263, а LOW — с 265 до 323. Большая часть увеличения плотности приходится на LOW, на который приходится половина от общего числа.
В абсолютных цифрах картина иная, поскольку кода стало на 27,5% меньше. Opus 5.5 создала 428 ошибок в рамках бенчмарка против 528 у Opus 5, то есть на 19% меньше ошибок в целом, несмотря на более высокий показатель на строку.
Разбивка по категориям показывает, где произошли изменения:
Категория ошибки
Opus 5
Opus 5.5
Параллелизм / многопоточность
205
295
Null / значение данных
Производительность / структура
Утечки ресурсов / потоков
Обработка исключений
Безопасность типов / приведения
Нарушение контракта API
Шаблон / регулярные выражения
Ошибка потока управления
Структура данных
Без категории
Пять категорий улучшились. Нарушения контрактов API сократились примерно вдвое, с 57 до 29 на mLOC. Ошибки потока управления снизились на 57%. Безопасность типов снизилась на 24%, утечки ресурсов — на 14%, а замечания по шаблонам и регулярным выражениям — на 25%.
Параллелизм и многопоточность выросли на 44%, с 205 до 295 на mLOC, и это остается крупнейшей категорией ошибок с большим отрывом. Замечания по производительности и структуре выросли на 87%, с 38 до 71. Обработка исключений выросла на 28%.
Параллелизм лидировал в профиле ошибок в Opus 5, и причины этого присущи самой категории. Ошибки многопоточности трудно воспроизвести, они зависят от среды, в которой работают, и проявляются как периодические сбои, а не как чистые ошибки. Их легко пропустить при проверке кода, что делает тестирование и анализ правильным местом для их обнаружения.
Какие уязвимости безопасности содержит код, сгенерированный Claude Opus 5.5?
Плотность уязвимостей составляет 229 на mLOC против 251. Снижение на 9%.
Серьезность влияния на безопасность на mLOC
Opus 5
Opus 5.5
BLOCKER
HIGH
195
170
MEDIUM
LOW
Количество критических (BLOCKER) уязвимостей снизилось на 53%: с 19 до 9 на млн строк кода (mLOC). Количество серьезных (HIGH) уязвимостей сократилось на 13%: со 195 до 170. Это две категории, которые вносят наибольший вклад, и обе они показали снижение.
Количество средних (MEDIUM) уязвимостей выросло с 5 до 15, а низких (LOW) — с 32 до 35, при этом база для сравнения стала значительно меньше. Категория HIGH остается доминирующей, составляя 74% плотности уязвимостей по сравнению с 78% у Opus 5.
В абсолютных цифрах Opus 5.5 выдал 152 уязвимости по всему бенчмарку против 230 у Opus 5. Это на 34% меньше.
Распределение по категориям:
Категория уязвимости
Opus 5
Opus 5.5
Ошибки конфигурации криптографии
103
104
Небезопасная обработка системных ресурсов
Неадекватная обработка ошибок (I/O)
Инъекционные атаки
Жестко закодированные учетные данные
Ошибки конфигурации безопасности Web API
Обход пути / инъекции
Внешние XML-сущности (XXE)
Пропуски при проверке сертификатов
Без категории
Общая плотность
251
231
Столбцы с результатами отражают фактическое количество для каждого показателя, и они суммируются точно. Значения на млн строк кода (mLOC) округлены до целых чисел, поэтому их сумма может немного превышать итоговое значение: Opus 5.5 сгенерировал 664 890 строк, что означает, что одна находка соответствует 1,5 на млн строк кода, поэтому категория с одной находкой отображается как 2, а сумма по столбцу составляет 231, а не 229. Opus 5 написал больше кода, поэтому его показатель на находку меньше, и сумма по столбцу в точности равна 251.
Количество ошибок конфигурации криптографии практически не изменилось (104 против 103 на млн строк кода) и остается крупнейшей категорией безопасности. Она охватывает слабые алгоритмы, небезопасные размеры ключей и генераторы случайных чисел, используемые небезопасным образом. Алгоритмический анализ SonarQube надежно выявляет все это, что делает данную категорию первым местом для проверки в конвейере разработки.
Небезопасная обработка системных ресурсов, вторая по величине категория, сократилась на 20% — с 82 до 66. Количество жестко закодированных учетных данных снизилось с 14 до 2. Находки, связанные с проверкой сертификатов, в результатах Opus 5.5 отсутствуют вовсе.
Количество инъекционных атак выросло с 7 до 17 на млн строк кода, а находки, связанные с обходом пути, появились в количестве 5, тогда как у Opus 5 их не было. Обе категории малы в абсолютном выражении, и обе хорошо покрываются анализом потока данных.
Насколько поддерживаемым является код, сгенерированный Claude Opus 5.5?
Плотность «запахов кода» (code smells) составляет 15,58 на тыс. строк кода (kLOC) по сравнению с 19,69. Это снижение на 21%, что является самым значительным показателем среди четырех основных метрик плотности.
Серьезность влияния уязвимости на поддерживаемость на млн строк кода
Opus 5
Opus 5.5
BLOCKER
HIGH
2 332
1 793
MEDIUM
6 170
7 991
LOW
10 629
5 249
INFO
488
490
Количество находок BLOCKER по поддерживаемости снизилось на 20%, а HIGH — на 23%. Количество LOW сократилось вдвое: с 10 629 до 5 249 на млн строк кода, и именно здесь кроется основная часть снижения плотности.
Категория запахов кода
Opus 5
Opus 5.5
Тип параметров коллекций / дженериков
8 901
6 004
Regex / шаблоны / форматирование строк
3 270
2 767
Дизайн / лучшие практики фреймворков
2 195
1 952
Именование / стиль / документация
1 601
1 265
Когнитивная вычислительная сложность
790
1 065
Присваивание / поля / видимость области действия
834
806
Мертвый / неиспользуемый / избыточный код
994
719
Управление / условная логика
507
520
Устаревшие API
321
337
Структура / архитектура
Без категории
264
141
Семь из десяти названных категорий показали снижение. Тип параметров коллекций и дженериков снизился на 33% — с 8 901 до 6 004 на млн строк кода, и эта единственная категория обеспечивает большую часть общего снижения запахов кода. Мертвый код сократился на 28%, именование и документация — на 21%, регулярные выражения и форматирование строк — на 15%, дизайн и фреймворки — на 11%, а присваивание и видимость области действия — на 3%.
Коллекции и дженерики по-прежнему остаются крупнейшей категорией запахов кода с большим отрывом. Это сырые типы там, где должны быть параметризованные дженерики, и работа с коллекциями, которая обходит проверку типов. В Java они несут реальные издержки: подавляют предупреждения компилятора, затрудняют рефакторинг и могут скрывать ошибки, которые правильно типизированная реализация выявила бы на этапе компиляции. Снижение на 33% в доминирующей категории — самый полезный результат для поддерживаемости в этом релизе.
Запах когнитивной вычислительной сложности вырос на 35% — с 790 до 1 065 на млн строк кода, что согласуется с ростом метрики когнитивной сложности на 4%. Использование условной логики и устаревших API также немного выросло.
Как объем кода Claude Opus 5.5 влияет на общее количество находок?
Opus 5 был моделью, где плотность и абсолютные показатели рассказывали противоположные истории. Opus 5.5 — более понятный случай, поскольку объем и большинство показателей плотности изменились в одном направлении.
Общее количество находок
Opus 5
Opus 5.5
Ошибки (Bugs)
528
428
Уязвимости
230
152
Запахи кода
18 056
10 361
Все проблемы
18 814
10 941
Общее количество находок снизилось на 42%. Количество ошибок упало на 19%, уязвимостей — на 34%, запахов кода — на 43%.
Три из четырех показателей плотности изменились в одном направлении: плотность запахов кода снизилась на 21%, общая плотность проблем — на 20%, плотность уязвимостей — на 9%. Только плотность ошибок выросла на 12%.
Таким образом, для команды, оценивающей объем работы по проверке, Opus 5.5 создает меньше нагрузки, чем Opus 5, по всем пунктам. Кода для чтения стало на 27,5% меньше, а находок для сортировки — на 42% меньше. Уровень ошибок на строку выше, что важно при сравнении того, насколько тщательно нужно проверять каждую строку, но это не приводит к увеличению количества ошибок, которые нужно исправлять, поскольку строк, их порождающих, стало меньше.
Это различие стоит четко понимать. Плотность отвечает на вопрос, насколько чист код на единицу написанного. Абсолютные показатели отвечают на вопрос, сколько работы существует. В этом релизе оба показателя указывают в одном направлении по трем из четырех критериев, что необычно и делает результат более простым для практического применения, чем цифры Opus 5.
Сколько выходных токенов использует Claude Opus 5.5 по сравнению с Opus 5?
Входные токены были практически идентичны в обоих запусках — около 2,07 миллиона, что и следовало ожидать от одного и того же бенчмарка.
Выходные токены сократились на 40%: с 21,71 миллиона для Opus 5 до 12,96 миллиона для Opus 5.5. Учитывая, что кода стало на 27,5% меньше, это означает, что Opus 5.5 тратил меньше токенов на строку вывода, а также генерировал меньше строк.
Одно предостережение относительно итогов. Opus 5.5 сообщает о 3,23 миллиона токенов рассуждения, а в запуске Opus 5 их не было зафиксировано, что почти наверняка означает, что поле не было захвачено, а не то, что рассуждений не было. Поэтому сравнение выходных токенов является корректным, а общие показатели по двум запускам напрямую несравнимы.
Что это означает для команд, использующих Opus 5.5?
Opus 5.5 сохраняет уровень прохождения тестов Opus 5, производя при этом значительно меньше всего остального. На 27,5% меньше кода, на 40% меньше выходных токенов, на 42% меньше общих находок и более низкая плотность запахов кода, уязвимостей и общих проблем. Меньше находок BLOCKER во всех трех категориях. Для команд, где ограничением является пропускная способность проверки, это сочетание является самым полезным результатом, который мы измерили в этом семействе моделей.
Три направления для усилий по верификации.
Параллелизм (Concurrency) стоит на первом месте, и это тот же ответ, что и для нескольких последних моделей, которые мы оценивали. С показателем 295 на млн строк кода это крупнейшая категория ошибок, и она выросла на 44% по сравнению с Opus 5.
Полезно знать, что именно помечает эта категория, поскольку она уже, чем понятие параллелизма в целом. Отложенная инициализация, реализованная как double-checked locking. Блокировка, которая была захвачена, но не освобождена на всех путях выхода из метода, что обычно означает отсутствие блока finally. Синхронизация по полю, которое впоследствии переназначается, из-за чего два потока в итоге удерживают разные блокировки. Инкремент счетчика в volatile-поле, где чтение и запись являются двумя отдельными операциями. Вызовы wait или notify, выполненные без удержания блокировки объекта. Вызов Thread.sleep при удерживаемой блокировке.
Такие паттерны встречаются в обычном коде: настройка синглтонов и кэшей, пулы соединений и воркеров, общие счетчики и метрики, очереди производителей и потребителей, а также циклы повторных попыток или опроса. Если вы создаете что-то подобное, отдавайте приоритет тестированию и анализу проблем многопоточности наряду с проверкой кода, поскольку эти ошибки с наименьшей вероятностью будут обнаружены при простом чтении.
На втором месте — конфигурация криптографии. С показателем 104 на миллион строк кода (mLOC) она лидирует в профиле безопасности и не изменилась по сравнению с Opus 5. Вместе с небезопасной обработкой системных ресурсов она составляет 170 из 229 на mLOC, поэтому примерно три четверти поверхности безопасности приходится на две категории, которые хорошо покрываются автоматизированным анализом.
На третьем месте — частота ошибок на строку кода. Плотность ошибок выросла на 12%, в то время как общее количество ошибок сократилось на 19%. Оба утверждения верны, но они отвечают на разные вопросы. Если ваш фильтр настроен на количество находок на тысячу строк, а не на общие показатели, этот релиз будет выглядеть как регрессия по данному критерию, и стоит заранее решить, какой подход использует ваш процесс.
Меньший объем комментариев — еще одно изменение, к которому стоит подготовиться. Плотность строк комментариев снизилась с 10,5% до 3,1%. Opus 5 был необычно хорошо аннотирован, поэтому это скорее возвращение к нормальному диапазону, чем отклонение от него, но если ваша команда привыкла полагаться на этот встроенный контекст, здесь его будет меньше.
Три основных вывода:
- Это лаконичный релиз. На 27,5% меньше кода и на 40% меньше выходных токенов для тех же задач при уровне успешности, отличающемся от Opus 5 менее чем на один процентный пункт. Общее количество находок сократилось на 42%.
- Количество наиболее серьезных находок снизилось во всех трех категориях. Блокирующие проблемы надежности сократились на 41%, безопасности — на 53%, а сопровождаемости — на 20%. Плотность запахов кода снизилась на 21%, а плотность уязвимостей — на 9%.
- Стоит обратить внимание на плотность ошибок на строку и параллелизм. Плотность ошибок выросла на 12% до 644 на mLOC, а количество находок, связанных с параллелизмом, увеличилось на 44% до 295, даже несмотря на то, что абсолютное число ошибок сократилось на 19%.
Opus 5.5 обращает вспять увеличение объема, характерное для Opus 5, и делает это, не теряя достигнутого уровня корректности. Это не отменяет необходимости проверки кода. Это делает проверку менее затратной, поскольку кода стало меньше, находок тоже, а оставшиеся сосредоточены в небольшом количестве категорий, с которыми хорошо справляется автоматизированный анализ.
Эти цифры получены на основе предрелизной сборки, которую мы тестировали перед запуском. Мы обновим их в таблице лидеров Sonar LLM, как только Opus 5.5 станет общедоступным, наряду со всеми другими моделями, которые мы измеряли.









