Viss ir fails: Dizaina filozofija no Unix līdz AI aģentiem
Viss ir fails: Dizaina filozofija no Unix līdz AI aģentiem
Oriģināls: Ethan 业成


Atbalss, kas šķērso pusgadsimtu
Jau 1970. gadu sākumā Bell Labs Unix tēvi Kens Tompsons (Ken Thompson) un Deniss Ričijs (Dennis Ritchie) pirmo reizi ierosināja drosmīgu, gandrīz fanātisku dizaina principu: Everything is a file – Viss ir fails.
Pēc vairāk nekā piecdesmit gadiem AI aģentu ietvari strauji vairojas. Manus, Claude Code, OpenClaw... Tie nāk no dažādām komandām, dažādiem tehnoloģiju stakiem, dažādiem komerciāliem mērķiem, bet visi vienprātīgi ir izdarījuši vienu un to pašu izvēli: izmantot failu sistēmu kā aģenta kognitīvo skeletu.
Manus nodrošina aģentam virtuālo mašīnu, un uzdevumu rezultāti tiek saglabāti diskā kā faili. Claude Code tieši lasa un raksta lietotāja lokālajā failu sistēmā, izmantojot CLAUDE.md failu, lai glabātu visas instrukcijas un kontekstu. OpenClaw un citi atvērtā pirmkoda ietvari arī organizē uzdevumu sadalīšanu un starpposma stāvokļus, izmantojot direktoriju struktūru.
Kad inženieri, kas atrodas pusgadsimta attālumā, saskaras ar pilnīgi atšķirīgiem tehniskiem jautājumiem, bet neatkarīgi konverģē uz vienu un to pašu risinājumu – tas nav nejaušība, tā ir dizaina filozofijas rezonanse.
Unix lēmums
Lai saprastu šī notikuma nozīmi, vispirms jāatgriežas pie tā, ko Unix izdarīja.
Unix failu sistēmas dizains tiek atzīts par vienu no elegantākajiem dizainiem datorzinātnes vēsturē. Tas atrisināja ārkārtīgi sarežģītu problēmu: kā pārvaldīt dažādus aparatūras un datu resursus ar vienotu, vienkāršu saskarni.
Līdz 1970. gadiem operētājsistēmas darbojās šādi: lai lasītu disku, jāizmanto diska saskarne; lai lasītu magnētisko lenti, jāizmanto magnētiskās lentes saskarne; lai piekļūtu terminālim, jāizmanto termināļa saskarne. Katrai ierīcei ir sava API, un katrai API ir sava semantika. Ja jums ir N ierīču veidi un M darbības, sistēmas sarežģītība ir N × M.
Tompsons un Ričijs izdarīja kaut ko šķietami vienkāršu līdz muļķībai:
Pārvērst visu par failiem. Izmantot četrus darbības vārdus – open, read, write, close – lai darbotos ar visu.
Tā galvenā nozīme ir: visus resursus operētājsistēmā – dokumentus, direktorijas, cietos diskus, modemus, tastatūras, printerus un pat tīkla savienojumus un procesa informāciju – var abstrahēt kā failu plūsmu (Stream of Bytes).
Tas nozīmē, ka jums jāiemācās tikai viena API kopa – open(), read(), write(), close() – lai darbotos ar visiem datora resursiem.
Kopš tā laika sarežģītība ir sabrukusi no N × M līdz 4 × 1. Četri darbības vārdi, viens abstrakcijas slānis.
Šī notikuma ģenialitāte nav vārdā "fails", bet gan dziļākā atziņā:
Jums nav jāzina, kas ir aiz faila deskriptora. Saskarne ir līgums.
Fd (faila deskriptors) ir necaurspīdīgs rokturis. Jūs to read(), un izplūst baiti. Kas attiecas uz to, vai šie baiti nāk no cietā diska sektora, tīkla kartes bufera vai cita procesa standarta izvades – jums tas nerūp, un jums tas nevajadzētu rūpēt.
Tas ir vienotas saskarnes spēks: tas padara neziņu par priekšrocību.

Tā pati problēma, ar ko saskaras aģents
Tagad atgriezīsimies pie AI aģenta situācijas.
Lai aģents varētu veikt sarežģītus uzdevumus, tas saskaras ar pārsteidzoši līdzīgu dilemmu kā operētājsistēma 1970. gados:
- Pastāvīga atmiņa: LLM konteksta logs ir gaistošs, un domāšanas ķēde izzūd līdz ar sesiju. Līdzīgi kā atmiņa tiek atbrīvota pēc procesa beigām – jums ir nepieciešama vieta, kur saglabāt starpposma stāvokli, pretējā gadījumā katra saruna sāksies no nulles.
- Pakāpenisks konteksts: sarežģītus uzdevumus nevar pabeigt vienā solī. Aģentam pakāpeniski jāuzkrāj konteksts vairākās secinājumu kārtās, tāpat kā Unix process nodod stāvokli starp vairākām izpildēm, lasot un rakstot failus. Failu sistēma dabiski nodrošina šo "raksti mazliet, lasi mazliet, tad raksti vēl mazliet" pakāpenisko darba režīmu.
- Vienota rīku un prasmju plānošana: Aģentam ir jāizsauc heterogēni rīki (Tools/Skills), piemēram, meklēšana, koda izpilde, attēlu ģenerēšana, tāpat kā Unix jāpārvalda heterogēnas ierīces, piemēram, diski, tīkli, printeri. Jums ir nepieciešams vienots abstrakcijas slānis, pretējā gadījumā jums būs jāraksta jauna integrācijas loģika katram jaunam rīkam.
- Datoru lietošanas atļauju robežas: kad aģentam ir iespēja darboties ar datoru, "ko tas var aiztikt un ko nevar" kļūst par dzīvības un nāves jautājumu. Unix failu atļauju sistēma (rwx) nodrošina gatavu smilšu kastes modeli – direktorija ir robeža, atļauja ir līgums.
Četras prasības. Vai tas izklausās pazīstami?
Tieši ar to operētājsistēma saskārās 1970. gados.
Pastāvīga atmiņa – failu sistēma to dabiski atrisina, rakstīšana ir pastāvīga. Pakāpenisks konteksts – direktoriju struktūra pati par sevi tiek veidota pakāpeniski, mkdir, touch, append, konteksts aug līdz ar failu. Vienota rīku plānošana – Unix cauruļvada būtība: viena procesa stdout ir otra procesa stdin, un starpposma vide ir baitstrāde. Arī aģenta rīku ķēde ir tāda pati: iepriekšējā soļa izvades fails ir nākamā soļa ievade. Atļauju robežas – failu sistēmas rwx atļaujas, chroot smilšu kaste dabiski nosaka aģenta "spēju loku".
Tāpēc, kad aģenta ietvara dizaineri saskaras ar jautājumu "kur ievietot aģenta darba stāvokli", atbilde ir gandrīz iepriekš noteikta: failu sistēmā. Jo nav vienkāršāka risinājuma, kas vienlaikus atbilstu šiem četriem ierobežojumiem.
Kad sistēmai ir jā"pārvalda liela daudzuma heterogēnu resursu mijiedarbība", jums ir divi ceļi:
Ceļš A: izstrādāt īpašu saskarni katram resursam. N resursi × M darbības = NM saskarnes. Precīzi, bet sprādzienbīstami.
Ceļš B: atrast pietiekami plānu abstrakcijas slāni, lai visi resursi valkātu vienu un to pašu apģērbu. 4 darbības × 1 abstrakcijas slānis. Rupji, bet kombinējami.
Unix izvēlējās B. Vairāk nekā piecdesmit gadus vēlāk aģenta ietvars atkal izvēlējās B.

Dziļāk: fails ir domāšanas eksternalizācija
Bet, ja mēs apstāsimies tikai pie "tehniskā risinājuma konverģences", mēs palaidīsim garām būtiskāko.
Atcerieties, kā cilvēki paši risina sarežģītus uzdevumus.
Jūs saņemat lielu projektu, un pirmā lieta, ko jūs darāt, nav sākt strādāt, bet gan: izveidot mapes. Projekta saknes direktorija, apakšuzdevumu direktorija, atsauces materiālu direktorija, izvades direktorija. Jūs izmantojat direktoriju struktūru, lai sadalītu haotisku uzdevumu pārvaldāmos vienībās. Jūs izmantojat failu nosaukumus, lai nosauktu katru vienību. Jūs izmantojat failu saturu, lai reģistrētu domāšanas procesu un starpproduktus.
Failu sistēma nav tikai uzglabāšanas risinājums. Tas ir cilvēku eksternalizētās domāšanas sākotnējais rīks.
Šis ieskats izskaidro, kāpēc aģenta ietvars konverģē uz failu sistēmu: LLM "domāšana" ir jāeksternalizē – tās konteksta logs ir ierobežots, un ilgtermiņa secinājumi ir atkarīgi no ārējās atmiņas. Un failu sistēma ir vispārīgākais "ārējās atmiņas" formāts, ko cilvēki ir izgudrojuši.
No šī viedokļa Claude Code CLAUDE.md nav konfigurācijas fails. Tas ir eksternalizēts kognitīvais līgums – cilvēki raksta nodomus failos, un aģents lasa failus kā nodomus. Fails kļūst par saskarnes slāni starp cilvēka prātu un mākslīgo intelektu.
Tas ir pārsteidzoši saskaņā ar Unix cauruļvada filozofiju:
Rakstiet programmas, lai apstrādātu teksta straumes, jo tā ir universāla saskarne.## Atgriešanās pie pirmā principa
Lieliskas abstrakcijas nenoveco, tās tikai atrod jaunus piemērus jaunās jomās.
"Vienots interfeiss atrisina sarežģītību" nav Unix izgudrojums, tas ir mūžīgs sistēmu dizaina likums. Unix gadījās to realizēt ar nosaukumu "fails". AI aģents gadījās to atkal realizēt ar "darba direktorijas" formu.
Arī nākamās paaudzes sistēmas atkal saskarsies ar to pašu izvēli: izveidot specializētus interfeisus katrai lietai vai atrast plānu, vispārīgu, kombinējamu abstrakciju?
Ja vēsture kaut ko māca, tad atbilde jau ir uzrakstīta blakus /dev/null:
Keep it simple. Make it compose. Everything is a file.





