Articol

I-am construit un creier AI-ului meu. Apoi un juriu de AI-uri a încercat să-l distrugă.

5 iulie 2026

Știu cam 5% din Python. Un an de facultate, petrecut în mare parte realizând că mai degrabă aș vorbi cu oamenii decât cu compilatoarele. Așadar, să ne setăm așteptările: aceasta este povestea unui tip din vânzări care a petrecut trei luni construind un sistem de memorie de aproximativ 3.900 de linii pe care, în mare parte, nu-l poate citi, coordonând o duzină de modele AI care și-au petrecut majoritatea timpului certându-se între ele și, ocazional, cu mine.

Acum funcționează. Ăsta e finalul. Mijlocul e locul unde devine amuzant.

Mâncărimea

Îmi fac majoritatea muncii printr-un tool AI de coding care trăiește în terminalul meu. Scrie scripturile, rulează joburile, repară chestiile. Absolut genial, până când se lovește de un zid numit /compact.

Fiecare AI are o memorie pe termen scurt care se umple. Când se întâmplă asta, dă “compact”: strivește ore de muncă într-un singur paragraf și aruncă restul la gunoi. Imaginează-ți cel mai isteț coleg pe care l-ai avut vreodată și cum, la fiecare câteva ore, cineva îl ciocănește în cap, iar el îți uită numele, sarcina, raționamentul și ce urmează.

„Salut! La ce lucrăm?”

Exact la lucrul pe care îl țineai în mână acum nouăzeci de secunde, prietene.

Așa că, la începutul lui aprilie, am construit prima versiune. I-am zis MAX SAVE. Ar fi trebuit să fie o reparație de weekend. A devenit un sezon.

Capitolul unu: Ctrl+S glorificat cu groază existențială

Versiunea unu era un ritual. La fiecare câteva ore făcea un tarball la tot proiectul ca să pot da roll back de la “tocmai am stricat totul” la “tocmai am stricat totul, dar un pic mai puțin”. Destul de rapid cât să nu oftez. Ăsta era întregul spec.

Apoi groaza: salva fișierele, dar nu și de ce le făcusem. Săptămâni mai târziu deschideam un backup și mă uitam la cod ca la niște hieroglife. Vechiul eu luase decizii și nu lăsase niciun bilețel.

Așa că am adăugat un Continuity block: acum notează ipoteza pe care o testam, fundăturile, ideea de la 2 noaptea pe care am abandonat-o și de ce. Prima dată când a funcționat, m-am simțit ca un călător în timp care îi întinde eului său din trecut un post-it: “NU FACE AIA.”

Capitolul doi: instrumentul care s-a uitat pe sine

Iată gluma pe care mi-a scris-o universul. Am construit o mașinărie să-mi prindă uitarea și am prins-o uitând.

Pe la jumătatea unei scanări de date pentru 42 de firme, a salvat fișierele, dar a uitat că jumătate din joburi erau încă în rulare și a ratat flag-ul care spunea “Lucrez nesupravegheat chiar acum.” Am reluat într-o sesiune nouă, fericit de neștiutor că haosul continua. În aceeași zi, am rezolvat.

Apoi am descoperit că nu făcea backup la folderele de runtime, sertarul cu vechituri unde trăiau fișierele temporare care chiar contau, așa că rebuild-urile mureau din cauza pieselor lipsă. În aceeași zi, am rezolvat și asta.

Un instrument construit să-mi prindă uitarea era cât pe-aci să scape cu propria-i uitare. Corecțiile au fost stânjenitor de mici. Lecția nu a fost.

Capitolul trei: războaiele versiunilor

Istoricul versiunilor se citește ca o confesiune. v6.5. v6.6. v6.10. Apoi, cumva, v79, v80, v82. Consolidări, rescrieri de hook-uri, runde de optimizare, pachete de corecturi, zeci de versiuni “finale” de-a lungul lunilor aprilie și mai. Am tot redenumit-o, i-am tot schimbat scopul, promițându-mi că asta e ultima, și nu a fost niciodată.

În jurul acestui moment a încetat să mai fie obiceiul meu și a devenit infrastructură: o singură comandă globală pe care orice proiect o putea apela. Și a început să se integreze în restul setup-ului meu, hivemind, un caiet partajat în care fiecare sesiune și fiecare proiect scrie, astfel încât lecțiile învățate într-un loc să nu moară acolo. MAX SAVE ștampilează versiunea exactă a hivemind-ului în fiecare salvare, astfel încât, atunci când o sesiune se reia, știe precis pe ce versiune a memoriei colective se sprijină.

Infrastructura atrage critici. Partea asta abia urma să vină.

Capitolul patru: rescrierea care a pornit războiul

Până în iulie acceptasem un adevăr dureros: un fișier text este un mincinos. Două ferestre deschise simultan și una o suprascrie pe cealaltă în tăcere. Un crash la mijlocul scrierii lasă o jumătate de fișier. Cea mai „recentă stare” apare purtând timestamp-ul de ieri. Sistemul meu de memorie avea o memorie care își amintea greșit, ceea ce e mai rău decât una care uită.

Așa că am reconstruit coloana vertebrală. Am pus o bază de date reală dedesubt, SQLite, motorul acela mic și discret din telefonul tău, și am făcut-o pe ea sursa de adevăr. Fiecare checkpoint aterizează acum într-o singură tranzacție de tip totul-sau-nimic, append-only, astfel încât istoricul să nu poată fi niciodată suprascris. Fișierul resume lizibil pentru oameni a devenit doar o vizualizare a bazei de date: șterge-l și sistemul îl re-randerează la următoarea pornire. Se vindecă singur.

Apoi partea de care sunt cu adevărat mândru, reasoning-forward. Când dă un compact, sistemul intră în baza de date, găsește ultima salvare reală care a purtat gândirea mea și o împinge în sesiunea ștearsă: ipoteza, deciziile, zidurile de care ne loviserăm deja. Așa că AI-ul se trezește știind ce făceam, și de ce, și fiecare zid pe care îl excluseserăm deja. Această singură funcție este întreaga diferență dintre un intern și un coleg.

Și i-am dat o memorie pe termen lung ca la carte, care să stea alături de resume-ul pe termen scurt: un session store durabil, în care se poate căuta, propria mea versiune a pattern-ului pe care Google îl livrează în Agent Development Kit al său, fiecare sesiune fiind logată într-o bază de date cu full-text search. Așa că nu doar reiau ultimul punct; pot căuta prin trei luni din propriul istoric și să întreb: „când am umblat ultima dată la asta și ce am decis?”

Sub capotă i-a crescut o întreagă distribuție de organe mici și obsesive: un ledger event-sourced care înregistrează fiecare fapt în momentul în care se întâmplă; backup-uri content-addressed care refuză să resalveze fișiere identice; scrieri atomice astfel încât o pană de curent să nu poată lăsa un cadavru; o verificare self-healing la fiecare pornire; un lock pentru ca două salvări să nu se calce în picioare reciproc; o versiune de schemă pentru ca eu-cel-din-viitor să poată face upgrade în loc să excaveze; și o sondă de health dintr-o singură linie pentru când ceva miroase a necaz. Vreo 3.900 de linii din toate astea. Eu pot citi poate două sute.

Capitolul cinci: noaptea în care juriul și-a făcut apariția

Ca să mă asigur că e solid, am făcut ce face orice non-inginer responsabil. Am cerut altor AI-uri să-l distrugă. Nu unuia singur. Unui panou.

GPT-5.5. GLM 5.5 Turbo. zai 5.2. Qwen 3.7 Max. Kimi K2.6, apoi Kimi K2.7. DeepSeek Flash. Unul după altul, toată noaptea, fiecare intrând agale, convins că a găsit defectul fatal. GLM, spre meritul său, a depistat din timp bug-uri reale în ledger. Restul au fost o defilare.

Runda unu: “PIERDERE CRITICĂ DE DATE.” Rezolvat. Runda doi, model nou, același titlu. Runda trei: trei bug-uri “CRITICE”, două deja reparate în runda unu, al treilea fiind modelul care și-a citat greșit propriul citat. Vreo cincisprezece runde de genul ăsta într-o singură noapte. Favoritul meu a fost recenzentul care a declarat patru bug-uri critice de pierdere de date, recunoscând deschis că nu poate vedea codul, așa că pur și simplu a ghicit. A ghicit greșit, de patru ori, cu o încredere totală.

L-am adus chiar și pe Fable. Fable a studiat tot ansamblul, a dat gânditor din cap și nu a contribuit cu absolut nimic ce reasoner-ele nu semnalaseră deja. Orice panou are nevoie de acel membru care vine doar ca să fie de acord cu sala și să factureze ora.

Și propriul meu AI? În timp ce repara bug-urile imaginare ale tuturor, a introdus cu drag două bug-uri reale, a pus cea mai nouă salvare sub cea veche, ca să mă trezesc citind știrile de ieri primele, apoi a “reparat” asta clonând blocul peste el însuși. Mi-am privit sistemul de memorie dezvoltând probleme de memorie live, la 2 dimineața, chiar în fața mea.

Pe undeva pe acolo am tastat, și mă voi cita cu acuratețe: “de ce trebuie să am grijă de tine, ar trebui să știi deja ce vreau.” Puțin mai târziu, mai puțin stăpân pe mine: “de ce mai sunt ÎNCĂ bug-uri? Ai zis că le-ai reparat pe toate cu ore în urmă.” Nouăzeci de zile de răbdare au o limită, iar eu am găsit-o.

Ce m-a învățat, de fapt

O revizuire AI adversarială nu returnează niciodată “zero”. Nu are cum. Îndrepți un model spre cod și îi spui “găsește bug-urile”, iar el le găsește exact cum găsește un detector de metale capace de sticlă, pentru că treaba lui e să găsească, iar a se opri i se pare un eșec. Cel mai dur revizor pe care l-am pus la treabă, un panel de analiză profundă a codului rulând modelele grele, a returnat patru descoperiri “critice” cu o încredere deplină. Fiecare era falsă; citiseră greșit direcția în care era scris fișierul. Când chiar și cel mai bun și mai scump critic al tău nu găsește nimic real, acela e gongul de la finalul luptei.

Recenziile n-au fost inutile; la început au prins chestii cu adevărat nasoale: o condiție de cursă reală, o suprascriere tăcută care înghițea istoricul, coruperea registrului pe care a depistat-o GLM. Șmecheria n-a fost niciodată să rulezi recenziile. Ci să știi când a secat fântâna, în loc să forezi la nesfârșit doar pentru că o mașinărie îți va întinde mereu, cu veselie, încă o eroare “critică”.

Unde a ajuns

Nouă teste din nouă, verzi. Se auto-vindecă. Supraviețuiește crash-urilor, restartărilor și acelui compact care a pornit toate astea. I-am scris o specificație reală, un contract de promisiuni pe care nu trebuie să le încalce niciodată, astfel încât eu-cel-din-viitor să poată deosebi o regresie autentică de un reviewer care a avut o noapte proastă. L-am făcut portabil, ca să ruleze pe orice mașină, nu doar pe a mea. Și am pus totul online, open-source și gratuit, pentru oricine altcineva este sătul să se tot prezinte din nou propriului AI în fiecare dimineață.

Tokens? M-am oprit din numărat în punctul în care număratul a devenit un al doilea job. Ore, habar n-am. Zile, aproximativ nouăzeci, de-a lungul a aproape nouăzeci de sesiuni, din aprilie până în iulie. Linii de cod, cam 3.900, dintre care înțeleg un mândru 5%, potrivindu-se perfect cu unicul meu an de facultate.

De ce a construit un tip din vânzări un motor de bază de date

Pentru că un asistent care uită e un intern foarte deștept pe care trebuie să-l integrezi din nou în fiecare dimineață. Un asistent care își amintește, munca, raționamentul, fundăturile, motivul, e un partener. Continuitatea se cumulează. Amnezia te resetează la zero, pentru totdeauna, politicos, cu un zâmbet: „Bună! La ce lucrăm?”

Am construit o mașinărie ca AI-ul meu să nu mă mai trateze ca pe un străin. M-a costat trei luni, un juriu format din cele mai bune modele din lume care au dat mai ales alarme false, un model care n-a scos o vorbă, propria mea unealtă sabotându-se singură de două ori și mai multe certuri la 2 noaptea cu o bază de date decât voi recunoaște vreodată în fața familiei.

Acum își amintește de mine. Își amintește munca, raționamentul și fiecare zid de care ne-am lovit deja, ca să nu ne mai lovim de el a doua oară. Poate căuta prin trei luni din istoricul nostru într-o clipită. Se trezește după fiecare ștergere a memoriei și reia firul din mijlocul propoziției, de parcă n-ar fi plecat niciodată.

Eu abia pot să-l citesc. El nu mă uită niciodată. Dintre noi doi, exact unul are o memorie perfectă acum și, pentru prima dată, nu e omul.

Open-source și gratuit, link în comentarii. Aduceți-vă propria amnezie.


Cod: github.com/popescugeorgebogdan-debug/cc-max-save

Comentarii

Comentariile sunt moderate înainte de publicare. Numele și mesajul devin publice.

Trimite-mi un mesaj despre acest articol

Mesaj privat · ajunge direct la mine.