Claude Code или Codex: как выбрать на своей задаче
Сравниваем Claude Code и Codex по рабочему процессу, инструкциям и проверке кода. Одинаковое Python-задание, десять тестов и протокол сравнения.
Выбирать между Claude Code и Codex полезнее на небольшой задаче из своей работы. Оба инструмента могут читать проект, менять код и запускать проверки. Для тебя важен итог: сколько времени и вмешательств нужно, чтобы получить изменение, которое можно принять.
В этой статье — сравнение подходов и готовый стенд для собственного теста. Мы не проводили парный запуск агентов и не назначаем победителя по скорости или качеству. Проверены само учебное задание и его тесты на эталонной реализации. Такой комплект позволяет измерить результат на доступных тебе моделях и настройках.
Что сравнивать
Claude Code и Codex — названия продуктов, а конкретная модель и режим работы являются частью конфигурации. Поэтому утверждение «один пишет лучше» без указания задачи, модели и даты почти невозможно воспроизвести.
| Критерий | Claude Code | Codex | Что проверять у себя |
|---|---|---|---|
| Изменение проекта | Читает файлы, редактирует, выполняет команды | Работает с проектом и выполняет задачи через инструменты | Видит ли нужные файлы и запускает ли проверки |
| Инструкции проекта | Обычно CLAUDE.md |
Обычно AGENTS.md |
Получили ли оба одинаковые требования |
| Проверка результата | Нужны тесты и просмотр изменений | Нужны тесты и просмотр изменений | Совпадает ли заявленный результат с фактическим |
| Расход | Зависит от способа доступа и настроек | Зависит от способа доступа и настроек | Счётчик сервиса до и после, без смешения единиц |
Устройство Claude Code описано в официальном обзоре, а механизм инструкций Codex — в документации AGENTS.md. Эта таблица помогает организовать проверку, но не заменяет запуск на твоём репозитории.
1. Уравняй условия
Скачай стенд. Внутри starter/ лежат summary.py, TASK.md и test_summary.py. Скопируй starter/ в две отдельные папки. Ни одна из них не должна содержать результат другого агента.
Нужен Python 3.10 или новее; внешних библиотек нет. Начальная функция намеренно содержит NotImplementedError. До работы агента команда python3 -m unittest -v должна завершиться ошибками — это исходная точка упражнения, а не поломка архива.
Запиши дату, версию приложения, выбранную модель, режим рассуждений и доступные инструменты. Не включай одному агенту дополнительный MCP-сервер со справкой по проекту, если у второго такой справки нет. Проверь глобальные инструкции: они тоже способны влиять на результат.
Если хочешь использовать постоянные инструкции, положи одинаковый текст в CLAUDE.md для первой копии и AGENTS.md для второй. Для первого теста достаточно короткого требования: читать TASK.md, не менять тесты, показывать реально выполненные команды. Не переноси в упражнение сотни строк правил большого рабочего проекта.
2. Дай одинаковое задание
Обоим агентам отправь:
Прочитай TASK.md. Реализуй summarize(rows) в summary.py.
Сохрани контракт, исходные тесты и структуру проекта.
Запусти python3 -m unittest -v и исправь найденные ошибки.
Не добавляй зависимости. В финале перечисли изменения,
выполненные проверки и оставшиеся ограничения.
Функция должна принимать заказы, удалять полные дубли и считать только оплаченные записи с известной суммой. При конфликте данных одного заказа требуется ValueError. Сумма ноль считается известной и входит в число заказов. Пустая выборка возвращает нулевые число и сумму, а средний чек — None.
Вход заранее ограничен контрактом: суммы — целые неотрицательные рубли либо None, ключи присутствуют. Отдельная очистка произвольных строк из CSV здесь не входит в задание. Это позволяет сравнить выполнение одинаковой задачи, не добавляя одному агенту дополнительных требований по ходу работы.
Дай обоим одинаковый предел вмешательств, например два уточнения. Если первый агент задал вопрос о трактовке задачи, сохрани вопрос и ответ. При сопоставимом вопросе второго дай то же объяснение. Не направляй одну систему к решению, которое уже увидел у другой.
3. Проверь решение
После завершения сам запусти тесты в каждой папке:
python3 -m unittest -v
На Windows можно использовать py -m unittest -v. В комплекте десять проверок: обычная сумма, точный дубль, два вида конфликта ID, пропуск, ноль, неоплаченный заказ, пустая выборка, неизменность входа и дробный средний чек.
Для обычных заказов на 100 и 200 рублей ожидаем count=2, total_rub=300, average_rub=150. Для сумм 1, 0 и 0 ожидаем три заказа и среднее 1/3. Так видно, не потерял ли агент нулевые значения и не округлил ли промежуточный расчёт.
Затем просмотри изменения. Не были ли ослаблены тесты? Не появилась ли лишняя библиотека? Не возвращает ли функция заранее записанные ответы для известных примеров? Пройденные тесты дают ограниченное доказательство: полезно добавить ещё один свой случай, одинаковый для обоих решений.
4. Запиши результат
В архиве есть пустой scorecard.md. Заполняй его наблюдениями, а не впечатлением от уверенного финального сообщения:
- Время от отправки задания до результата, который прошёл проверку.
- Число пройденных тестов с первой попытки и после правок.
- Число подсказок человека и смысл каждой подсказки.
- Файлы, которые агент изменил, и замечания к читаемости.
- Расход по счётчику сервиса в его собственных единицах.
Проценты разных подписок нельзя считать равными денежными суммами. У API можно сопоставлять фактическую стоимость запусков, у подписок — долю доступного бюджета и удобство работы. Для общего счётчика аккаунта исключи параллельные задачи на время замера.
Как принять решение
Если у тебя уже настроен один инструмент, начни тест с него: так получишь базовый результат без дополнительной настройки. Второй имеет смысл проверять тем же заданием, когда хочешь сократить ручные исправления, изменить рабочий процесс или снизить расход.
Одно упражнение не определяет качество продукта во всех задачах. После него повтори проверку на исправлении бага и небольшом изменении в своём проекте. При близких результатах выбирай инструмент, который проще встроить в ежедневную работу и проверять. Если результаты сильно различаются, сохрани настройки и повтори запуск: единичная удачная попытка ещё не показывает устойчивость.
Для следующего шага пригодятся инструкции по настройке проекта в Claude Code и навыкам Codex. Сначала измерь базовый процесс, затем добавляй автоматизацию там, где уже видишь повторяющуюся работу.
Собери своего ИИ-агента и проверь результат
«AI Agents: от vibe coding к AI-команде»: desktop agents, MCP, skills, evals и harness. Отдельные воркшопы — от подключения инструментов до контроля качества.
7 практических воркшопов · записи · вопросы автору в чате
Посмотреть программу курса ↗