La începutul lui octombrie am pornit un proiect intern: un sistem care rulează zilnic, adună informații din multe surse, le verifică și publică rezultatul. L-am construit cu agenți de programare în Visual Studio Code și am folosit agenți AI și în interiorul aplicației.
În șase zile am făcut 192 de commituri și am trecut prin trei arhitecturi. Versiunea finală are cu aproximativ 40% mai puțin cod decât versiunea a doua. În schimb, are un folder cu peste 200 de fișiere text și zero linii de cod. Mai bună înseamnă două lucruri concrete. Când ceva nu merge, vedem în loguri exact pasul unde s-a stricat. Și când vrem să schimbăm o regulă, modificăm un fișier text și gata, fără să recompilăm.
În articolul ăsta analizez cum am ajuns aici și ce spune asta despre felul în care se construiesc aplicațiile acum, în plină evoluție a AI.
Andrej Karpathy a numit „vibe coding” felul de a construi software în care descrii ce vrei, iar AI-ul scrie codul.1 Într-un discurs din 2025 a spus și ce aduce asta: programăm acum calculatoarele în engleză (și nu numai în engleză, n.n.), deci dintr-odată toată lumea e programator.2 Oameni care ieri nu puteau face o aplicație o pot face azi.
Și noi am construit MVP-ul tot așa, foarte repede: 78 de commituri în prima zi. Numai că destul de curând am ajuns la întrebarea la care ajunge oricine are un prototip care funcționează: cum îl faci să ruleze în fiecare zi, corect, fără să stai cu ochii pe el, și cât de repede îl poți modifica și îmbunătăți? Răspunsul nostru s-a limpezit în trei etape, iar fiecare dintre ele ne-a schimbat punctul de vedere.
Agentul produce repede, dar prima lecție a fost că tot ce produce trebuie verificat de ceva care nu e un agent (cunoaștem și teoria conform căreia agenții ar trebui să se verifice singuri, dar, sincer, nu prea credem în ea). Așa că am scris cod obișnuit, determinist, care verifică ieșirile agenților:
Sunt aceleași verificări pe care le facem când verificăm afirmații cu surse pentru clienți sau în FactCompass: fiecare afirmație trebuie să aibă o sursă pe care o poți deschide și citi.
Istoricul arată cât a costat asta. Din cele 192 de commituri, 66 sunt reparații și doar 35 sunt funcții noi; restul sunt refactorizări, documentație și configurare. Fiecare review extern, făcut întâi de alt model și apoi de oameni, a găsit probleme noi. Și așa am învățat că un agent nu e un om: nu își poate verifica singur munca, iar când o face, poate fi subiectiv (sau, mai rău, poate strica ce nu era sarcina lui). Dacă nu-l verifici tu, nu poți avea încredere în el.
Birgitta Böckeler, de la Thoughtworks, numește asta harness engineering, adică ingineria hamului: hamul e tot ce stă în jurul modelului, iar noi, utilizatorii agenților, construim partea lui din afară.3 Ea împarte hamul în două:
Noi am început cu senzorii, pentru că acolo ne-a durut întâi. Iar lecția cu care am rămas e una simplă: în producție, ce scoate agentul e material de verificat, nu adevăr.
În a doua zi am scris în documentație un principiu care a schimbat tot ce a urmat: agenții nu decid ce e necesar și când. Modelele pot grupa, extrage, clasifica și propune, dar decizia o ia o regulă scrisă de om.
Concret, nu mai cerem agentului „alege ce e important”. Agentul face munca grea de sortare, iar alegerea finală o face o regulă cu praguri configurabile, pe care o putem citi, discuta și schimba. Pentru munca în volum folosim un model ieftin. Unul puternic intră doar acolo unde chiar contează. E principiul după care construim și agenții AI pentru firme: AI-ul propune, omul aprobă, sistemul execută.
Pe principiul ăsta am construit versiunea a doua (ura!), pe care am aruncat-o în ziua următoare. Nu pentru că rezultatele erau proaste, ci pentru că nu vedeam ce face. Din eșecul ăsta a rămas o altă regulă pe care o aplicăm de atunci: ce nu se vede în backend nu există. Ce nu poți inspecta la un agent AI sau la o automatizare nu poți nici repara, nici crede.
Versiunea a treia a pornit de la un nucleu simplificat. Codul Go a scăzut de la aproximativ 54.000 la aproximativ 33.000 de linii, testele incluse.
Nimic din ce știa aplicația să facă nu s-a pierdut. S-a mutat. Folderul de configurare are acum 209 fișiere Markdown și 36 de fișiere JSON, dar nicio linie de cod. Acolo stau:
Codul doar le parcurge. Am unificat și structurile de date: unde existau mai multe variante ale aceluiași lucru, a rămas un singur tip, folosit de toți pașii, iar pașii au devenit piese interschimbabile, cu modelul AI ales pe fiecare pas.
Cineva ar putea spune: n-ați șters cod, l-ați mutat în fișiere text, și textul nu se poate testa. Răspunsul nostru are două părți.
Prima: fișierele text sunt tratate ca și codul. Stau în git, iar orice schimbare trece printr-un review, întâi de la alt model AI, apoi de la un om. Nimic nu ajunge în producție fără pasul ăsta.
A doua: e adevărat că o regulă scrisă în Markdown nu are teste unitare. Dar are verificările din primul act. Dacă o instrucțiune greșită face agentul să inventeze un citat sau să spună o cifră fără sursă, verificările deterministe o opresc la următoarea rulare. Logul ne arată ce s-a schimbat, iar fișierul se întoarce la versiunea de dinainte cu un singur revert.
La capătul etapei a treia, aplicația a devenit ca o trusă de unelte, iar know-how-ul s-a mutat în fișiere pe care developerul le citește, le versionează și le aprobă.
Privind înapoi, schimbarea nu e doar la noi. Tot ce am făcut corespunde unor tendințe pe care industria le-a creat deja în 2026.
Nimic din toate astea nu înseamnă că developerul iese din ecuație. Din contra, doar un developer cu experiență și pregătire poate scrie specificații complete. Tot developerul verifică prompturile, documentele pe care le primește agentul, ordinea lor și codul scris.
Simon Willison, care a preluat termenul agentic engineering propus de Karpathy și i-a scris un ghid,11 are o regulă simplă: nu face commit la cod pe care nu l-ar putea explica exact altcuiva.12 Addy Osmani, care a lucrat 14 ani la Google și acum la Anthropic, avertizează din cealaltă direcție: un junior care se sprijină pe AI înainte să-și construiască fundamentele ajunge să livreze cod pe care nu-l înțelege.13
Experiența noastră confirmă asta. Toate cele trei versiuni au depins de cunoștințe care nu vin de la agent:
Agentul nu înlocuiește inginerul. Îl mută la nivelul la care lucrează un arhitect.
Vibe coding e un punct de plecare excelent. Drumul de la prototip la producție nu e un salt, ci câteva straturi puse cu grijă. Cinci întrebări de la care să pornești:
Dacă unele răspunsuri te-au pus pe gânduri, e normal: prin aceleași întrebări am trecut și noi. Iar dacă vrei să le treci mai ușor, exact asta facem în Vibe code → producție: evaluăm aplicația, punem verificările și regulile care lipsesc și o lansăm.
Aplicațiile construite cu agenți AI nu devin mai simple pentru că AI-ul scrie mai mult cod. Devin mai simple când codul face mai puțin: rămâne un set de unelte mici și clare, iar regulile, setările și instrucțiunile se mută în fișiere pe care oricine din echipă le poate citi și schimba. Agentul face munca de volum și găsește tiparele, deciziile se iau după reguli scrise de om, iar verificările automate prind ce scapă. Cine construiește așa are o aplicație pe care o înțelege și o poate repara. Cine sare peste pași are un prototip care merge până în ziua în care nu mai merge.
O mărturisire, la final: am dramatizat puțin. Nu am descoperit stilul ăsta de lucru în cele șase zile ale proiectului. Îl aplicam și înainte, doar că o poveste în trei acte se explică mai ușor decât o listă de principii. Cifrele, în schimb, sunt reale.
La DO IT MAGIC SOFTWARE construim software la comandă și sisteme cu agenți AI în care omul rămâne cel care decide. Dacă ai un prototip făcut cu AI sau vrei un sistem ca cel de mai sus, scrie-ne.
Andrej Karpathy, postare pe X, 2 februarie 2025: „There’s a new kind of coding I call «vibe coding»…”. ↩︎
Andrej Karpathy, „Software Is Changing (Again)”, YC AI Startup School, iunie 2025. În original: „we’re now programming computers in English” și „suddenly everyone is a programmer”. Rezumat: Latent Space. ↩︎
Birgitta Böckeler, „Harness engineering for coding agent users”, martinfowler.com, 2 aprilie 2026. Cele două părți se numesc la ea „guides (feedforward controls)” și „sensors (feedback controls)”. ↩︎
Anthropic, „Writing effective tools for agents — with agents”, 11 septembrie 2025. ↩︎
Engin Diri, „How Building AI Agents Has Changed in 2026”, Pulumi, 14 mai 2026. Articol al unui furnizor; îl folosim doar pentru observația despre unelte și skill-uri. ↩︎
Salesforce, „Introducing Salesforce Headless 360. No Browser Required.”, 15 aprilie 2026. ↩︎
AGENTS.md, format deschis administrat de Agentic AI Foundation (Linux Foundation); Agent Skills, specificația deschisă publicată de Anthropic, și documentația Anthropic pentru SKILL.md. ↩︎
Gloaguen et al., „Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?”, ETH Zurich și LogicStar.ai, arXiv 2602.11988, 2026. ↩︎
GitHub Spec Kit, documentația oficială. Fluxul complet e Specify → Plan → Tasks → Implement → Converge. ↩︎
Thoughtworks Technology Radar, „Context engineering”, Adopt, vol. 34, aprilie 2026; anterior Assess, noiembrie 2025. ↩︎
Simon Willison, „What is agentic engineering?”, februarie 2026. Termenul vine de la Karpathy; Willison o spune în această notă. ↩︎
Simon Willison, „Not all AI-assisted programming is vibe coding (but vibe coding rocks)”, 19 martie 2025. ↩︎
Addy Osmani, „Agentic Engineering”, 4 februarie 2026. ↩︎
Felul de a construi software în care descrii ce vrei, iar AI-ul scrie codul. Termenul vine de la Andrej Karpathy. E foarte bun pentru un prototip; pentru o aplicație care rulează zilnic, fără supraveghere, e nevoie de reguli, verificări și teste în jurul agentului.
Tot ce construiești în jurul unui agent AI ca să-l ții pe drum: reguli și specificații care acționează înainte, teste, linteri și review care acționează după. Termenul e folosit de Birgitta Böckeler, de la Thoughtworks.
Întâi afli ce decizii ia agentul singur și le scrii ca reguli. Apoi pui verificări deterministe pe tot ce produce și muți setările și instrucțiunile în fișiere versionate. Facem exact asta în serviciul „Vibe code → producție”.