Totul este un fișier: O filozofie de design de la Unix la Agenții AI
Totul este un fișier: O filozofie de design de la Unix la Agenții AI
Original de Ethan 业成


Ecoul care traversează o jumătate de secol
Încă de la începutul anilor 1970, la Bell Labs, părinții Unix, Ken Thompson și Dennis Ritchie, au propus pentru prima dată un principiu de design îndrăzneț, aproape fanatic: Everything is a file – Totul este un fișier.
Astăzi, după mai bine de cincizeci de ani, cadrele AI Agent sunt în plină expansiune. Manus, Claude Code, OpenClaw... Ele provin din echipe diferite, stive tehnologice diferite, obiective comerciale diferite, dar au făcut în mod unanim aceeași alegere: utilizarea sistemului de fișiere ca schelet cognitiv al Agentului.
Manus oferă Agentului o mașină virtuală, iar rezultatele sarcinii sunt stocate pe disc ca fișiere. Claude Code citește și scrie direct în sistemul de fișiere local al utilizatorului, folosind un fișier CLAUDE.md pentru a transporta toate instrucțiunile și contextul. Cadrele open-source precum OpenClaw organizează, de asemenea, descompunerea sarcinilor și stările intermediare printr-o structură de directoare.
Când inginerii, separați de o jumătate de secol, se confruntă cu probleme tehnice complet diferite, dar converg independent la aceeași soluție – aceasta nu este o coincidență, ci o rezonanță a filozofiei de design.
Decizia Unix
Pentru a înțelege greutatea acestui lucru, trebuie să ne întoarcem la ceea ce a făcut Unix.
Designul sistemului de fișiere Unix este recunoscut ca fiind unul dintre cele mai elegante designuri din istoria informaticii. Acesta rezolvă o problemă extrem de complexă: cum să gestionezi o varietate de resurse hardware și resurse de date cu o interfață unificată și simplă.
Înainte de anii 1970, sistemele de operare funcționau astfel: dacă doreai să citești de pe disc, apelai interfața discului; dacă doreai să citești de pe bandă magnetică, apelai interfața benzii magnetice; dacă doreai să accesezi terminalul, apelai interfața terminalului. Fiecare dispozitiv avea propriul API, iar fiecare API avea propria sa semantică. Dacă aveai N tipuri de dispozitive și M tipuri de operații, complexitatea sistemului era N × M.
Thompson și Ritchie au făcut un lucru aparent simplu, chiar stupid:
Transformă totul în fișiere. Folosește cele patru verbe open, read, write, close pentru a opera totul.
Semnificația sa principală este: toate resursele din sistemul de operare – documente, directoare, unități de hard disk, modemuri, tastaturi, imprimante, chiar și conexiuni de rețea și informații despre procese – pot fi abstractizate într-un flux de fișiere (Stream of Bytes).
Aceasta înseamnă că trebuie să înveți doar un set de API-uri – open(), read(), write(), close() – pentru a opera toate resursele computerului.
De atunci, complexitatea s-a prăbușit de la N × M la 4 × 1. Patru verbe, un strat de abstractizare.
Genialitatea acestui lucru nu constă în substantivul „fișier”, ci într-o perspectivă mai profundă:
Nu trebuie să știi ce se află în spatele descriptorului de fișier. Interfața este un contract.
Un fd (descriptor de fișier) este un handle opac. Dacă faci read() pe el, iese un flux de octeți. Cât despre faptul că acești octeți provin din sectoarele hard disk-ului, bufferele plăcii de rețea sau ieșirea standard a unui alt proces – nu-ți pasă și nici nu ar trebui să-ți pese.
Aceasta este puterea unei interfețe unificate: face din ignoranță un avantaj.

Aceeași problemă cu care se confruntă Agentul
Acum, să ne uităm înapoi la situația AI Agent.
Un Agent trebuie să finalizeze sarcini complexe și se confruntă cu o dilemă uimitor de similară cu cea a sistemului de operare din anii 1970:
- Memorie persistentă: Fereastra de context a LLM-ului este volatilă, iar lanțul de gândire dispare odată cu sesiunea. La fel cum memoria este recuperată după ce un proces se încheie - ai nevoie de un loc pentru a persista stările intermediare, altfel fiecare conversație începe de la zero.
- Context incremental: Sarcinile complexe nu pot fi finalizate într-un singur pas. Agentul trebuie să acumuleze treptat context în mai multe runde de inferență, la fel cum un proces Unix transmite starea între execuții multiple prin citirea și scrierea fișierelor. Sistemul de fișiere oferă în mod natural acest mod de lucru incremental "scrie puțin, citește puțin, apoi scrie puțin".
- Programarea unificată a instrumentelor și abilităților: Agentul trebuie să apeleze instrumente eterogene (Tools/Skills) precum căutarea, execuția de cod, generarea de imagini, la fel cum Unix trebuie să gestioneze dispozitive eterogene precum discuri, rețele, imprimante. Ai nevoie de un strat de abstractizare unificat, altfel va trebui să scrii un nou set de logică de integrare pentru fiecare instrument nou pe care îl adaugi.
- Limitele de permisiune pentru Computer Use: Când un Agent are capacitatea de a opera un computer, "ce poate atinge și ce nu poate atinge" devine o chestiune de viață și de moarte. Sistemul de permisiuni de fișiere Unix (rwx) oferă exact modelul sandbox existent - directorul este limita, permisiunea este contractul.
Patru cerințe. Sună familiar?
Aceasta este exact problema cu care s-a confruntat sistemul de operare în anii 1970.
Memorie persistentă - sistemul de fișiere rezolvă în mod natural, scrierea este persistență. Context incremental - structura directorului în sine este construită incremental, mkdir, touch, append, contextul crește odată cu fișierul. Programarea unificată a instrumentelor - esența conductelor Unix: stdout-ul unui proces este stdin-ul altui proces, mediul intermediar este fluxul de octeți. Lanțul de instrumente al Agentului este același: fișierul de ieșire al pasului anterior este fișierul de intrare al pasului următor. Limite de permisiune - permisiunile rwx ale sistemului de fișiere, sandbox-ul chroot, definesc în mod natural "cercul de capacitate" al Agentului.
Așadar, atunci când proiectanții cadrului Agent se confruntă cu întrebarea "unde să punem starea de lucru a Agentului", răspunsul este aproape predeterminat: în sistemul de fișiere. Pentru că nu există o soluție mai simplă care să poată satisface simultan aceste patru constrângeri.
Când sistemul trebuie să "gestioneze interacțiunea unui număr mare de resurse eterogene", ai două căi:
Traseul A: Proiectează interfețe dedicate pentru fiecare resursă. N tipuri de resurse × M tipuri de operații = NM tipuri de interfețe. Precis, dar exploziv.
Traseul B: Găsește un strat de abstractizare suficient de subțire pentru a face toate resursele să poarte aceeași haină. 4 tipuri de operații × 1 strat de abstractizare. Brut, dar combinabil.
Unix a ales B. Peste cincizeci de ani mai târziu, cadrul Agent a ales din nou B.
Un strat mai adânc: Fișierele sunt exteriorizarea gândirii
Dar dacă ne oprim doar la "convergența soluțiilor tehnice", vom pierde ceva mai esențial.
Amintește-ți cum gestionează oamenii înșiși sarcinile complexe.
Primești un proiect mare, primul lucru pe care îl faci nu este să începi să lucrezi, ci: să creezi foldere. Directorul rădăcină al proiectului, directorul sub-sarcinilor, directorul materialelor de referință, directorul de ieșire. Folosești structura directorului pentru a descompune sarcina haotică în unități gestionabile. Folosești numele fișierului pentru a numi fiecare unitate. Folosești conținutul fișierului pentru a înregistra procesul de gândire și produsele intermediare.
Sistemul de fișiere nu este doar o soluție de stocare. Este instrumentul original pentru exteriorizarea gândirii umane.
Această perspectivă explică de ce cadrul Agent converge către sistemul de fișiere: "gândirea" LLM-ului trebuie exteriorizată - fereastra sa de context este limitată, iar inferența pe termen lung trebuie să se bazeze pe memoria externă. Iar sistemul de fișiere este exact cel mai universal format de "memorie externă" inventat de oameni.
Din acest punct de vedere, CLAUDE.md al lui Claude Code nu este un fișier de configurare. Este un contract cognitiv exteriorizat - oamenii scriu intenția într-un fișier, iar Agentul citește fișierul ca intenție. Fișierul devine stratul de interfață dintre mintea umană și inteligența artificială.
Aceasta este uimitor de consistentă cu filozofia conductelor Unix:
Scrieți programe pentru a gestiona fluxuri de text, deoarece aceasta este o interfață universală.## Înapoi la primele principii
Abstracțiile mărețe nu se demodează, ele doar găsesc noi instanțe în domenii noi.
"Interfețele unificate rezolvă complexitatea" nu este o invenție Unix, este o lege eternă a designului de sistem. Unix s-a întâmplat să o implementeze cu numele de "fișier". AI Agent s-a întâmplat să o implementeze din nou sub forma unui "director de lucru".
Următoarea generație de sisteme se va confrunta din nou cu aceeași alegere: să proiecteze interfețe dedicate pentru fiecare lucru sau să găsească un strat subțire, universal și compozabil de abstracție?
Dacă istoria ne învață ceva, răspunsul este deja scris lângă /dev/null:
Keep it simple. Make it compose. Everything is a file. (Păstrează-l simplu. Fă-l să se compună. Totul este un fișier.)





