Екип от 16 AI агента Claude създаде нов C компилатор

Anthropic демонстрира експеримент с „агентни екипи“, при който 16 инстанции на Claude Opus 4.6 работят паралелно по общ код, за да изградят C компилатор от нулата. Резултатът е работещ Rust-базиран компилатор, но с редица ограничения и със значима човешка инженерна работа зад кулисите.
Проектът е описан от Nicholas Carlini от екипа Safeguards на Anthropic, който преди това е работил в Google Brain и DeepMind.
Как е организирана мултиагентната разработка
Carlini използва функцията „agent teams“ в Claude Opus 4.6. Вместо централен „оркестратор“, всяка инстанция на Claude работи самостоятелно в отделен Docker контейнер: клонира общ Git репозиторий, „заявява“ задача чрез lock файл и връща завършени промени обратно към основния клон.
Агентите сами избират какво да правят по-нататък, а при merge конфликти се опитват да ги разрешават автономно. Това превръща Git в механизъм за координация между паралелни модели без постоянна човешка намеса.
Резултатът: Rust компилатор, който компилира Linux kernel
Според описанието, за около две седмици и близо 2 000 сесии през Claude Code (с приблизително 20 000 долара разходи за API такси) агентите са произвели компилатор от около 100 000 реда код на Rust.
Компилаторът е способен да изгради bootable Linux 6.9 kernel за x86, ARM и RISC-V. Публикуван е и в GitHub.
Освен това е успял да компилира редица популярни open source проекти, сред които PostgreSQL, SQLite, Redis, FFmpeg и QEMU. По тестовете GCC torture test suite се съобщава за 99% успеваемост. Като допълнителна демонстрация Carlini посочва, че компилаторът компилира и стартира Doom.
Ограниченията: производителност, backends и устойчивост на промени
Carlini подчертава, че проектът има конкретни технически лимити. Например липсва 16-bit x86 backend, необходим за boot на Linux от real mode, поради което тази стъпка се делегира на GCC. Собственият assembler и linker остават нестабилни. Дори при включени оптимизации генерираният код е по-неефективен от GCC, стартиран без оптимизации.
Качеството на Rust кода е описано като функционално, но далеч от нивото на експертен Rust разработчик. Авторът отбелязва и типичен проблем при разрастване на кодова база: към края добавянето на функции и поправките „често чупят“ вече работещо поведение.
От практическа гледна точка това подсказва и вероятен таван за автономно „агентно“ програмиране при текущите модели: около 100 000 реда код координацията и консистентността започват да се разпадат по-често.
Колко „автономен“ е експериментът на практика
Anthropic описва компилатора като „clean-room implementation“, тъй като агентите са работили без интернет достъп. Carlini обаче уточнява контекста: самият модел е обучаван върху огромни обеми публичен код и е вероятно да е „виждал“ GCC, Clang и други компилатори. В класическия смисъл „clean room“ означава разработчиците да не са имали достъп до оригиналния код, което тук не е гарантирано по същия начин.
Отделно, посочената сума от около 20 000 долара покрива API разходи, но не включва цената на обучението на модела, както и значителния човешки труд по изграждане на средата, тестовите системи и методите за обратна връзка.
Съществена част от „истинската“ работа е именно инфраструктурата около агентите: Carlini изгражда test harness-и, continuous integration, и механизми за обратна връзка, съобразени с типичните провали на езиковите модели. Пример за това е намаляване на шума от тестовете: подробният изход „замърсява“ контекста на модела, затова тестовете са преработени да показват само кратки обобщения, а детайлите да се записват в отделни логове.
Друг проблем е липсата на „усет за време“: моделът може да върти тестове с часове без напредък, затова е въведен бърз режим, който пробва само 1%–10% от тестовете. Когато всички 16 агента блокират върху един и същ kernel проблем, Carlini използва GCC като „oracle“: голяма част от файловете се компилират с GCC, а само подмножество — с новия компилатор, така че агентите да разпределят различни дефекти по различни файлове.
Според Carlini, критично е проверката на задачите (verifier) да е почти безгрешна, иначе агентът може да „реши“ грешния проблем. Той също изразява притеснение, базирано на опита си в penetration testing, че е рисковано разработчици да внедряват софтуер, който не са верифицирали лично.
Какво означава това
- Паралелните агенти с Git координация показват работещ модел за разделяне на задачи без централен контролер, но изискват внимателна инфраструктура.
- Тестовете и референтните реализации са ключови: там, където има ясна спецификация и богати тестове, агентите могат да стигнат далеч по-бързо.
- „Автономност“ не означава „без човешки труд“: голяма част от успеха идва от дизайн на среда, CI, ограничаване на контекста и правилно измерване на напредъка.
- Има видим таван на устойчивостта при по-големи кодови бази — честото „чупене“ на функционалност при промени остава сериозен проблем.
- Рисковете при внедряване на код, който не е прегледан и разбран от хора, остават — дори когато резултатът „минава тестове“.



