Șaisprezece agenți AI Claude au creat împreună un nou compilator C
Într-un experiment de 20.000 de dolari, șaisprezece agenți AI Claude au reușit să compileze un nucleu Linux, necesitând însă o gestionare umană profundă. Potrivit arstechnica.com, cercetătorul Nicholas Carlini de la Anthropic a detaliat cum a lansat cele 16 instanțe ale modelului AI Claude Opus 4.6 pentru a construi un compilator C de la zero, într-o perioadă de două săptămâni.
👉 Detalii despre funcționarea și rezultate
Pe parcursul celor două săptămâni și a aproape 2.000 de sesiuni Claude Code, care au costat aproximativ 20.000 de dolari în taxe API, agenții modelului AI au produs un compilator bazat pe Rust de 100.000 de linii, capabil să construiască un nucleu Linux 6.9 bootabil pe arhitecturi x86, ARM și RISC-V. Carlini, un om de știință în cercetare din cadrul echipei Safeguards de la Anthropic, a folosit o nouă caracteristică lansată odată cu Claude Opus 4.6, numită „echipe de agenți”. În practică, fiecare instanță a lui Claude a rulat într-un container Docker propriu, clonând un repository Git comun, revendicând sarcini prin scrierea de fișiere de blocare și apoi împingând codul finalizat în sus.
Nicio agent de orchestrare nu a direcționat traficul. Fiecare instanță a identificat independent problema cea mai evidentă de rezolvat și a început să o abordeze. Atunci când apăreau conflicte de îmbinare, instanțele modelului AI le rezolvau de una singură. Compilatorul rezultat, pe care Anthropic l-a lansat pe GitHub, poate compila o gamă de proiecte open source importante, inclusiv PostgreSQL, SQLite, Redis, FFmpeg și QEMU. A obținut un procent de 99% de rate de trecere la testul de tortură GCC și, în ceea ce Carlini a numit „testul suprem al dezvoltatorului”, a compilat și a rulat Doom.
👉 Limitele și provocările dezvoltării compilatorului
Este demn de menționat că un compilator C este o sarcină aproape ideală pentru modelul AI semi-autonom, deoarece specificația sa este bine definită și există suite de teste cuprinzătoare. Majoritatea proiectelor software din lumea reală nu beneficiază de aceste avantaje. Partea dificilă a dezvoltării nu este scrierea codului care trece testele, ci stabilirea a ceea ce ar trebui să fie testele inițial.
Cu toate acestea, compilatorul are limitări clare pe care Carlini le-a subliniat. De exemplu, îi lipsește un backend x86 de 16 biți necesar pentru a porni Linux din modul real, apelând astfel la GCC pentru acest pas. Asamblatorul și linkerul său proprii rămân cu erori. Chiar și cu toate optimizările activate, generează cod mai puțin eficient decât GCC cu optimizările dezactivate. Iar calitatea codului Rust, deși funcțională, nu se apropie de cea a unui programator expert în Rust. „Compilatorul rezultat a atins aproape limitele abilităților lui Opus,” a scris Carlini.
Acelorași limite li se adaugă și dificultatea constantă de a menține funcționalitatea pe măsură ce proiectul progresează. Carlini a raportat că, spre finalul proiectului, corectarea erorilor și adăugarea de noi funcții „de multe ori au afectat funcționalitatea existentă”, un tipar familiar pentru oricine a observat cum o bază de cod crește peste punctul în care vreun contributor o înțelege complet. Acest tip de limitare devine și mai comun atunci când se lucrează cu agenți de codare AI, care își pierd coerența în timp.
Modelul a întâmpinat această barieră în jurul a 100.000 de linii, sugerând astfel un plafon practic pentru codarea agentică autonomă, cel puțin cu modelele curente. Anthropic descrie compilatorul ca o „implementare în cameră curată”, deoarece agenții nu au avut acces la internet în timpul dezvoltării. Totuși, această descriere este oarecum înșelătoare; modelul de bază a fost instruit pe cantități uriașe de cod sursă disponibile public, includând cu siguranță GCC, Clang și numeroase compilatoare C mai mici.
Pe Hacker News, distincția a generat dezbateri intense, reflectând o reacție controversată printre dezvoltatori. „A fost o tentativă destul de brută de a decomprima cunoștințele stocate difuz în rețea,” a scris un comentator. De asemenea, cifra de 20.000 de dolari necesită un context suplimentar, aceasta acoperind doar costurile tokenurilor API și excluzând miliardele cheltuite pe antrenarea modelului, munca umană investită de Carlini în construirea suportului și decadelor de muncă a inginerilor de compilatoare.
Această muncă de suport nu a fost trivială, ceea ce face orice afirmație de muncă „autonomă” asupra compilatorului C între agenții AI să fie discutabilă. Deși rezultatul principal este un compilator scris fără programare în pereche de către oameni, o mare parte din munca reală care a făcut posibil proiectul a implicat proiectarea mediului din jurul agenților modelului AI, mai degrabă decât scrierea codului de compilator.
Carlini a alocat mult efort construirii unor sisteme de testare, pipeline-uri de integrare continuă și sisteme de feedback adaptate modului specific în care modelele de limbaj eșuează. De exemplu, a descoperit că ieșirea de testare excesivă poluează fereastra de context a modelului, făcându-l să piardă urma a ceea ce făcea. Pentru a aborda această problemă, Carlini a proiectat rulatoare de teste care imprimau doar câteva linii rezumat și înregistrau detaliile în fișiere separate. A descoperit, de asemenea, că Claude nu are noțiunea de timp și va petrece ore întregi rulând teste fără a face progrese, astfel că a construit un mod rapid care evaluează doar 1% până la 10% din cazurile de testare.
Atunci când toți cei 16 agenți s-au blocat încercând să repare simultan aceeași eroare a nucleului Linux, el a folosit GCC ca un oracle de referință, compilând aleator majoritatea fișierelor nucleului cu GCC și doar un subset cu compilatorul lui Claude, astfel încât fiecare agent să poată lucra pe erori diferite în fișiere diferite.
„Claude va lucra autonom pentru a rezolva orice problemă îi ofer,” a scris Carlini. „Așa că este important ca verificatorul de sarcini să fie aproape perfect, în caz contrar, Claude va rezolva problema greșită.” Niciuna dintre acestea nu ar trebui să eclipseze ceea ce demonstrează efectiv proiectul. Acum un an, niciun model de limbaj nu ar fi putut produce ceva apropiat de un compilator funcțional multi-arhitectură, chiar și cu un astfel de sprijin și un buget nelimitat.
Metodologia agenților paralele care coordonează prin Git cu o supervizare umană minimă este inovatoare, iar trucurile inginerești dezvoltate de Carlini pentru a menține agenții productivi (ieșire de testare conștientă de context, limitarea timpului, oracle-ul GCC pentru paralelizare) ar putea reprezenta contribuții utile la utilizarea mai largă a uneltelor de dezvoltare software agentică. Carlini însuși a recunoscut că se simte în conflict cu privire la propriile rezultate. „Construirea acestui compilator a fost unele dintre cele mai plăcute momente recente, dar nu m-am așteptat să fie în vreun fel posibil atât de devreme în 2026,” a scris el. De asemenea, a ridicat preocupări legate de cariera sa anterioară în testarea penetrării, observând că „gândul că programatorii desfășoară software pe care nu l-au verificat personal este o adevărată problemă.”