Два ИИ писали один скрипт, соревнуясь друг с другом: что из этого вышло
Два ИИ писали один скрипт, соревнуясь друг с другом: что из этого вышло Автор поста, Юрий Панчул, проверил на практике приём: дать одну и ту же задачу двум ИИ-агентам — Claude и Codex — в двух отдельных копиях одного репозитория (репозиторий — хранилище кода проекта), заставить каждого разобрать работу конкурента и исправить свои ошибки. Пост сгенерирован ИИ целиком, кроме картинки (её рисовал автор сам); промпт он приводит открыто. Экономии в деньгах он не называет, но описывает выигрыш во времени: ему не пришлось самому писать сложный код — достаточно было судить, чей вариант лучше. Задача была реальной: починить скрипт, который настраивает окружение для работы с Vivado — инструментом AMD для проектирования микросхем на ПЛИС (перепрограммируемых чипах). С версии 2024.2 AMD поменяла раскладку каталогов, скрипт перестал находить установку, а в одном случае молча выбирал не ту папку — студент видел ошибку далеко от настоящей причины. Скрипт нужен проекту basics-graphics-music — коллекции учебных примеров для 54 плат и пяти наборов инструментов (112 конфигураций). Его используют на семинарах в университетах разных стран и в Школе синтеза цифровых схем, которая работает в 25 университетах России и Белоруссии. Цель скриптов — чтобы студент запускал лабораторную двумя командами независимо от платы. Механика эксперимента: автор несколько раз повторял три шага — просил каждого агента улучшить поиск установки, затем прочитать чужой клон и написать сравнительный отчёт, затем доработать свой код по итогам. Агенты не знали о существовании друг друга. Результаты оказались разными. Codex предусмотрел случай, когда под Windows-подобными оболочками вместо нужной утилиты сортировки вызывается виндовая sort.exe, — и проверял её подделкой двух номеров версий. Claude на таком тесте выбрал версию 2026.9 вместо 2026.10 и лишь напечатал предупреждение. Зато Claude нашёл, что скрипты оставляют в пользовательской сессии мусорные переменные: у исходного скрипта их было семь, у первой попытки Claude — одиннадцать, у Codex — ноль; после этого Claude исправил свой код. Также Claude настоял на понятных сообщениях, когда каталог пропускается, — у Codex этого до сих пор нет. Через пару раундов агенты переняли удачные идеи друг друга и сошлись: обе реализации на тестовом стенде из одиннадцати поддельных сценариев установки выбирали один и тот же каталог. По решению автора поддержку установок без каталога версии отбросили как ненужный случай. Финальная версия находит Vivado в старой и новой раскладках и осмысленно сообщает, когда ничего не находит. Версия Codex короче (284 строки против 403), версия Claude — единственная, которая объясняет студенту, почему его установку проигнорировали; автор называет это инженерным компромиссом, который готов принять сам. Побочный результат — шесть отчётов о сравнении реализаций, сохранённых в репозитории: такой документации у проекта раньше не было. Выводы автора: соревнование вскрывает слепые зоны, которые не видит обычная проверка кода одним агентом; самое ценное — заставлять агентов тестировать, а не только писать; а навык «судить, чей вариант лучше», проще, чем навык писать код самому. Источник: https://habr.com/ru/articles/1091320/