Екип от 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.

C компилаторът е сравнително „добра“ цел за полуавтономни агенти: спецификацията е отдавна стабилизирана, има богати тестови пакети и съществуват утвърдени референтни компилатори за сравнение.

Ограниченията: производителност, 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, че е рисковано разработчици да внедряват софтуер, който не са верифицирали лично.

Какво означава това

Exit mobile version