Шестнадцать AI-агентов Claude, работая вместе, создали новый компилятор C

ии компилятор агенты Anthropic Claude разработка arstechnica.com

Эксперимент стоимостью 20 000 долларов США позволил скомпилировать ядро Linux, но потребовал глубокого человеческого управления. Шестнадцать агентов Claude Opus 4.6 создали C-компилятор, но столкнулись с ограничениями. — arstechnica.com

На фоне стремления к созданию ИИ-агентов, поскольку и Anthropic, и OpenAI на этой неделе выпустили инструменты для работы с несколькими агентами, Anthropic более чем готов продемонстрировать некоторые из своих самых смелых экспериментов по написанию кода с помощью ИИ. Но, как обычно в случаях заявлений о достижениях, связанных с ИИ, впереди вас ждут некоторые важные оговорки.

В четверг исследователь Anthropic Николас Карлини опубликовал сообщение в блоге, в котором описал, как он предоставил 16 экземплярам модели ИИ Claude Opus 4.6 компании доступ к общей кодовой базе с минимальным надзором, поставив им задачу создать C-компилятор с нуля.

За две недели и почти 2000 сессий Claude Code, обошедшихся примерно в 20 000 долларов США в виде API-сборов, агенты модели ИИ, по сообщениям, произвели компилятор на основе Rust объемом 100 000 строк, способный собирать загружаемый Linux 6.9 kernel на архитектурах x86, ARM и RISC-V.

Карлини, научный сотрудник команды Safeguards от Anthropic, ранее семь лет проработавший в Google Brain и DeepMind, использовал новую функцию, выпущенную вместе с Claude Opus 4.6, под названием «agent teams». На практике каждый экземпляр Claude работал в своем собственном Docker-контейнере, клонируя общую Git-репозиторий, захватывая задачи путем записи файлов блокировки, а затем отправляя завершенный код обратно. Оркестрирующий агент трафик не направлял. Каждый экземпляр самостоятельно определял, какую проблему удобнее всего решать следующей, и начинал ее решать. Когда возникали конфликты слияния, экземпляры модели ИИ разрешали их самостоятельно.

Полученный компилятор, который Anthropic выпустил на GitHub, может компилировать ряд крупных open source проектов, включая PostgreSQL, SQLite, Redis, FFmpeg и QEMU. Он достиг 99-процентного показателя успешных прохождений в наборе тестов GCC torture test suite и, как назвал Карлини «высшим тестом на подлинность для разработчика», скомпилировал и запустил Doom.

Стоит отметить, что C-компилятор — это почти идеальная задача для полуавтономного кодирования с помощью ИИ: спецификация существует десятилетиями и четко определена, существуют комплексные тестовые наборы, и есть известный эталонный компилятор для проверки. Большинство реальных программных проектов не имеют ни одного из этих преимуществ. Самая сложная часть разработки — не написание кода, который проходит тесты; а определение того, какими должны быть сами тесты.

,

Компилятор также имеет явные ограничения, о которых Карлини открыто заявил. В нем отсутствует 16-битный бэкенд x86, необходимый для загрузки Linux из реального режима, поэтому для этого шага он обращается к GCC. Его собственный ассемблер и компоновщик остаются с ошибками. Даже при включении всех оптимизаций он генерирует менее эффективный код, чем GCC, работающий с отключенными оптимизациями. И качество кода на Rust, хотя и функциональное, не приближается к тому, что произвел бы эксперт по Rust. «Полученный компилятор почти достиг пределов возможностей Opus», — написал Карлини. «Я (усердно!) пытался устранить несколько из вышеперечисленных ограничений, но не добился полного успеха. Новые функции и исправления ошибок часто нарушали существующую функциональность».

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

И это ограничение становится еще более распространенным при работе с ИИ-агентами для кодирования, которые теряют согласованность со временем. Модель достигла этой стены примерно на 100 000 строк, что указывает на практический предел для автономного кодирования агентами, по крайней мере, с текущими моделями.

Человеческая работа за автоматизацией

Anthropic описывает компилятор как «чистое» (clean-room) внедрение, поскольку агенты не имели доступа к Интернету во время разработки. Но такая формулировка несколько вводит в заблуждение. Базовая модель была обучена на огромных объемах общедоступного исходного кода, почти наверняка включая GCC, Clang и множество более мелких C-компиляторов. В традиционной разработке программного обеспечения «чистая комната» конкретно означает, что разработчики никогда не видели оригинальный код. По этому стандарту, это не так.

На Hacker News это различие вызвало острые дебаты, отражая противоречивую реакцию разработчиков на новость. «Это была скорее попытка грубой силы распаковать нечетко хранимые знания, содержащиеся в сети», — написал один из комментаторов.

Цифра в 20 000 долларов также заслуживает контекста. Эта сумма покрывает только затраты на API-токены и не включает миллиарды, потраченные на обучение модели, человеческий труд, вложенный Карлини в создание инфраструктуры, и десятилетия работы инженеров-компиляторов, которые создали тестовые наборы и эталонные реализации, сделавшие проект возможным.

,

И эта инфраструктура была нетривиальной, что делает любое заявление об «автономной» работе ИИ-агентов над C-компилятором сомнительным. Хотя основной результат — это компилятор, написанный без человеческого парного программирования, большая часть реальной работы, обеспечившей функционирование проекта, заключалась в проектировании среды вокруг ИИ-агентов, а не в непосредственном написании кода компилятора. Карлини приложил значительные усилия для создания тестовых оболочек, конвейеров непрерывной интеграции и систем обратной связи, настроенных на специфические ошибки языковых моделей.

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

Он также обнаружил, что у Claude нет чувства времени, и он будет часами запускать тесты без прогресса, поэтому он создал быстрый режим, который отбирает только от 1% до 10% тестовых случаев. Когда все 16 агентов застряли, пытаясь одновременно исправить одну и ту же ошибку в ядре Linux, он использовал GCC в качестве эталонного оракула, случайным образом компилируя большинство файлов ядра с помощью GCC и только подмножество с компилятором Claude, чтобы каждый агент мог работать над различными ошибками в разных файлах.

«Claude будет работать автономно, решая любую проблему, которую я ему поставлю», — написал Карлини. «Поэтому важно, чтобы верификатор задач был почти идеальным, иначе Claude решит не ту проблему».

Ничто из этого не должно затмевать то, что на самом деле демонстрирует проект. Год назад ни одна языковая модель не смогла бы создать даже отдаленно функциональный мультиархитектурный компилятор, даже с таким «присмотром» и неограниченным бюджетом. Методология параллельных агентов, координирующих работу через Git с минимальным человеческим надзором, является новой, а инженерные хитрости, разработанные Карлини для поддержания продуктивности агентов (контекстно-зависимый вывод тестов, ограничение по времени, GCC-оракул для параллелизации), потенциально могут стать полезным вкладом в более широкое использование инструментов разработки программного обеспечения на основе агентов.

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

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Похожие новости: