Anthropic je 16. jula objavio detaljan tehnički prikaz načina na koji njegovi inženjeri koriste Claude Code za velike migracije koda, uključujući i prebacivanje JavaScript izvršnog okruženja Bun sa programskog jezika Zig na Rust. Prema navodima kompanije, taj posao obuhvatio je oko milion linija koda i završen je za manje od dve nedelje, a potrošnja tokena po API ceni iznosila je približno 165.000 dolara.
Tekst je značajan jer izlazi izvan uobičajenih demonstracija asistenata za kod. Umesto pojedinačnih funkcija i ispravki, reč je o poslu koji se u industriji tradicionalno meri godinama i milionima dolara, a kompanija po prvi put iznosi konkretne brojke, korišćene modele i mesta na kojima je proces pucao.
Dva primera sa različitim ishodima
Prvi slučaj je Bun, alat koji se koristi kao brža zamena za Node.js. Migraciju je vodio Džared Samner, suosnivač Buna i član tehničkog tima Anthropica. Prema objavljenim podacima, ceo postojeći test paket Buna prolazio je u sistemu za neprekidnu integraciju pre nego što je kod spojen u glavnu granu. Kompanija ipak navodi da je posle spajanja pronađeno devetnaest regresija, koje su naknadno rešene. Utrošeno je 5,9 milijardi ulaznih i 690 miliona izlaznih tokena.
Drugi primer je manji po obimu ali metodološki razrađeniji. Majk Kriger, koji vodi Anthropic Labs, preveo je tokom jednog vikenda Python kod u oko 165.000 linija TypeScripta. Taj proces je, kako se navodi, uključivao stotine agenata, osam faznih kapija, tri kruga suparničke provere i završno poređenje ponašanja u kojem je izlaz svake komande upoređivan sa originalom. Rezultat je bio pad vremena izgradnje sa osam minuta na dve sekunde i oko šest puta brže pokretanje.
Popravlja se postupak, ne pojedinačni fajl
Centralna tvrdnja teksta je metodološka i sažeta je u rečenici da se ne ispravlja kod, već postupak koji je taj kod proizveo. U praksi to znači da se greška uočena u jednom fajlu ne krpi ručno, nego se menja pravilo koje se zatim primenjuje na celu grupu fajlova.
Anthropic opisuje šest koraka. Prvi je izrada pravilnika o prevođenju i popis mesta koja pre migracije treba preurediti. Drugi je provera tih pravila na malom uzorku fajlova, kako bi se sistemski problemi uhvatili pre nego što se pokrene ceo posao. Sledi prevođenje celog koda, zatim prevođenje u mašinski kod uz agente koji rešavaju greške u serijama, pa izvršavanje test paketa i na kraju poređenje ponašanja starog i novog koda.
Suparnička provera i mehaničke provere
Posebno mesto u opisu zauzima suparnička provera. Kod se ne šalje jednom agentu na ocenu, već dvojici koji rade nezavisno, a ako se ne slože, spor se prosleđuje trećem agentu. Uz to, kompanija naglašava oslanjanje na mehaničke provere, dakle na prevodilac i test paket, umesto na procenu modela o tome da li kod izgleda ispravno. Redovi poslova se grade iz stvarnog stanja na disku, a ne iz onoga što model pamti o projektu.
Raspodela modela je takođe deo recepta. Za orkestraciju je korišćen Claude Fable 5, Claude Opus 4.8 u savetodavnoj ulozi, dok su masovni poslovi prevođenja išli na Sonnet. Logika je da jeftiniji model radi obimni deo posla, a skuplji ostaje za nadzor i procenu.
Ono što u tekstu nije prećutano
Objava sadrži i ograničenja, što je razlikuje od uobičajenih korporativnih demonstracija. Anthropic navodi da oko četiri odsto Rust koda u Bunu i dalje stoji unutar blokova označenih kao nesigurni, dakle na mestima gde jezik ne garantuje bezbedan pristup memoriji. Prelazak sa Ziga na Rust otvorio je i sistemske probleme sa cikličnim uvozima koje je prethodni jezik tolerisao, dok je prelazak sa Pythona na TypeScript naterao tim da prećutne ugovore među komponentama napiše izričito.
Kompanija takođe upozorava da niža cena ne znači da svaka migracija ima smisla. U tekstu se navodi da poslovno opravdanje i dalje mora da postoji, te da su prihvatljivi razlozi hronična uska grla u performansama, osipanje ekosistema oko nekog jezika ili nagomilani trošak održavanja. Migracije radi ukusa ili mode ne spadaju u tu grupu. Uz to se dodaje da metod najbolje radi kada nova verzija zadržava strukturu stare. Ako se sistem istovremeno i prepisuje i redizajnira, poređenje ponašanja kao merilo ispravnosti prestaje da važi, pa je potrebna drugačija provera.
Šta se menja u računici
Poređenje koje Anthropic nudi jeste da migracija od milion linija ranije nije bila stvar od tri do četiri miliona dolara raspoređenih na višegodišnji projekat. Nova cifra se meri desetinama do stotinama hiljada dolara. Reč je o smanjenju troška, ne o njegovom nestanku, i o pomeranju ograničenja sa broja raspoloživih inženjera na sposobnost tima da postavi i nadgleda proces.
Za manje razvojne timove, uključujući i one u regionu, taj pomak je zanimljiv iz praktičnog razloga. Zastareo sistem napisan u jeziku za koji je sve teže naći ljude do sada je često ostajao netaknut jer se prepisivanje nije isplatilo. Ako se trošak zaista spušta na red veličine koji kompanija navodi, kalkulacija se menja. Ostaje, međutim, uslov koji se u tekstu ponavlja: bez ozbiljnog test paketa i bez načina da se ponašanje starog i novog koda mehanički uporedi, ceo postupak gubi oslonac. Timovi koji nemaju testove ne dobijaju prečicu, nego prvo dobijaju domaći zadatak.
Brojke koje je Anthropic objavio potiču od same kompanije i nisu nezavisno provereni podaci. Kod Buna je reč o projektu otvorenog koda, pa je rezultat bar delimično proverljiv uvidom u repozitorijum, dok interna migracija Anthropic Labsa ostaje na nivou tvrdnje kompanije o sopstvenom radu.
Često postavljana pitanja
Koliko je zaista koštala migracija Buna?
Anthropic navodi približno 165.000 dolara po API ceni, za 5,9 milijardi ulaznih i 690 miliona izlaznih tokena. Ta cifra pokriva potrošnju modela i ne obuhvata rad inženjera koji su proces vodili i nadgledali.
Da li je kod bio ispravan posle migracije?
Prema kompaniji, ceo postojeći test paket Buna prolazio je pre spajanja koda, ali je posle toga pronađeno devetnaest regresija koje su naknadno rešene. Oko četiri odsto Rust koda i dalje se nalazi u blokovima označenim kao nesigurni.
Koji su modeli korišćeni?
Claude Fable 5 za vođenje procesa, Claude Opus 4.8 u savetodavnoj ulozi i Sonnet za masovno prevođenje fajlova. Podela je napravljena tako da jeftiniji model radi obimni deo posla, a skuplji ostaje za proveru.
Za koje projekte ovaj pristup nije prikladan?
Anthropic navodi da metod počiva na poređenju ponašanja starog i novog koda, pa slabije radi kada se sistem istovremeno prepisuje i redizajnira. Takođe upozorava da niža cena sama po sebi nije razlog za migraciju bez poslovnog opravdanja.
