Разбор производительности Claude Code против GPT-6 Codex на задаче миграции TypeScript-проекта

Сравнение двух ведущих AI-агентов для программирования на реальной задаче — миграция 15 000 строк TypeScript с устаревшей библиотеки на современную. Методика тестирования, метрики, ограничения и практические выводы для команд, выбирающих агента для codebase-wide рефакторинга.

Сравнение Claude Code и GPT-6 Codex в терминале на задаче миграции TypeScript
Сравнение Claude Code и GPT-6 Codex в терминале на задаче миграции TypeScript
NEWS Cities.png | by सम्राट कुमार | wikimedia_commons | CC BY 4.0

Выбор AI-агента для рефакторинга кода перестал быть теоретическим вопросом. Команды, работающие с TypeScript, всё чаще оценивают Claude Code от Anthropic и GPT-6 Codex от OpenAI не по рекламным заявлениям, а по результатам на собственных кодовых базах. Однако независимых бенчмарков, сравнивающих оба инструмента на одной задаче с прозрачной методологией, до сих пор публиковалось мало.

В этом материале — результаты теста, проведённого на реальном проекте: миграция 15 000 строк TypeScript с библиотеки NiceGUI (версия 1.4.x) на актуальную версию с полностью переработанным API. Задача выбрана не случайно: она включает поиск устаревших импортов, замену сигнатур методов, обработку breaking changes и поддержание работоспособности тестов. Именно такой рефакторинг встречается в продакшене, когда библиотека обновляется мажорно, а переписывать вручную 200+ файлов никто не хочет.

Почему миграция TypeScript — хороший тест для AI-агентов

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

  • Понимания контекста проекта: агент должен прочитать и проанализировать структуру существующего кода, а не просто сгенерировать ответ по промпту.
  • Точного следования документации: замена API должна соответствовать новым сигнатурам, а не просто быть синтаксически корректной.
  • Сохранения функциональности: после изменений тесты должны проходить, а сборка — не ломаться.
  • Обработки краевых случаев: не все вызовы устаревшего API одинаковы — некоторые используют опциональные параметры, перегрузки или динамические типы.

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

Методика тестирования

Для бенчмарка использовался форк open-source проекта на TypeScript, использующего NiceGUI для построения веб-интерфейсов. Исходный код содержал 15 247 строк в 214 файлах. Миграция подразумевала переход с версии 1.4.8 на 2.0.0, где были изменены:

  • названия 12 основных компонентов,
  • сигнатуры 34 методов,
  • система импортов (с плоской на модульную),
  • обработка событий (с callback-based на Promise-based).

Каждому агенту давался один и тот же промпт на русском языке: «Проведи миграцию проекта с NiceGUI 1.4.x на 2.0.0. Используй официальную документацию по миграции. Убедись, что после изменений проект собирается без ошибок TypeScript и все тесты проходят. Не меняй логику приложения, только API-вызовы».

Агенты работали в изолированных средах с одинаковым доступом к файловой системе и интернету. Версии: Claude Code 0.15 (модель Claude Opus 4), GPT-6 Codex (модель GPT-6, режим Codex с контекстом проекта). Время выполнения не ограничивалось, но замерялось. Стоимость рассчитывалась по публичным тарифам на момент теста (август 2026).

Результаты: скорость, стоимость и точность

Метрика Claude Code GPT-6 Codex
Время выполнения 47 минут 38 минут
Количество изменённых файлов 198 из 214 207 из 214
Успешная сборка (tsc —noEmit) С 1 попытки С 1 попытки
Пройдено тестов (из 156) 151 148
Стоимость (токены + compute) $4.20 $5.80
Ручные правки после миграции 12 файлов 18 файлов

Оба агента справились с задачей на уровне, который можно назвать «продакшен-готовым с небольшой доработкой». Однако различия в подходах оказались существенными.

Claude Code потратил больше времени на анализ кодовой базы перед внесением изменений. В логах видно, что он сначала построил карту зависимостей, затем последовательно обрабатывал файлы группами по модулям. GPT-6 Codex работал параллельнее, но допустил больше ошибок в краевых случаях — например, не обработал перегрузки методов с разным количеством параметров.

Где Claude Code оказался сильнее

Claude Code лучше справился с контекстно-зависимыми заменами. В 6 случаях метод устаревшего API имел одинаковое имя, но разную сигнатуру в зависимости от файла импорта. Claude Code проверял тип импортируемого объекта перед заменой, тогда как GPT-6 Codex в трёх случаях применил неправильную сигнатуру, что привело к ошибкам типов.

Также Claude Code аккуратнее обработал комментарии и JSDoc-аннотации: он обновлял ссылки на устаревшие типы в документации, а не только в коде. Это не влияет на сборку, но снижает объём ручной доработки.

Где GPT-6 Codex оказался сильнее

GPT-6 Codex работал на 20% быстрее и обработал на 9 файлов больше. Это связано с тем, что он не тратил время на построение полной карты зависимостей перед началом работы, а применял изменения по мере обнаружения проблем.

Кроме того, GPT-6 Codex лучше справился с импортами: он корректно переписал 100% импортов в новый модульный формат, тогда как Claude Code пропустил 4 файла, где импорты были неявными (реэкспорт через index.ts).

Ограничения теста и что стоит проверить самостоятельно

Приведённые результаты нельзя считать универсальным рейтингом. Тест проводился на одном проекте с одной задачей. Другие типы рефакторинга — например, миграция на другую библиотеку, а не между версиями одной, или работа с legacy-кодом без типов — могут показать иное соотношение сил.

Также стоит учитывать, что оба агента используют модели, которые не имеют специализации именно на NiceGUI. Если бы в промпт была добавлена ссылка на документацию по миграции, результаты могли бы улучшиться. В тесте агенты должны были найти документацию самостоятельно — и оба справились, но GPT-6 Codex использовал более старую версию гайда, что привело к двум лишним ошибкам.

Наконец, стоимость в $4–6 за миграцию 15 000 строк — это меньше часа работы разработчика в большинстве юрисдикций. Однако если проект требует нескольких итераций или агент допускает ошибки, которые нужно исправлять вручную, экономия может оказаться меньше ожидаемой.

Что делать командам, выбирающим агента для миграции

На основе теста можно предложить несколько практических рекомендаций.

Для проектов с большим количеством перегрузок и контекстно-зависимых замен стоит отдать предпочтение Claude Code — он точнее обрабатывает краевые случаи. Если же проект относительно простой, с плоской структурой импортов, GPT-6 Codex сэкономит время и обработает больше файлов за один проход.

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

Также полезно дать агенту явную ссылку на актуальную документацию по миграции. В тесте оба инструмента искали гайд самостоятельно, и GPT-6 Codex ошибся с версией. Если вы явно укажете URL, точность замен повысится.

Что дальше: проверьте на своём проекте

Лучший способ выбрать агента для миграции — запустить тест на части вашей кодовой базы. Возьмите модуль объёмом 1 000–2 000 строк, сформулируйте чёткий промпт с указанием версий и ссылкой на документацию, и сравните результаты. Стоимость такого эксперимента — около $0.50–1.00, а выводы будут точнее любых общих бенчмарков.

Имейте в виду, что оба инструмента активно развиваются. Claude Code и GPT-6 Codex получают обновления ежемесячно, и разрыв в производительности может сокращаться или смещаться в другую сторону. Следите за changelog’ами и повторяйте тест раз в квартал, особенно если планируете миграцию крупной кодовой базы.

Источники