Kõik on fail: disainifilosoofia Unixist AI Agentideni
Kõik on fail: disainifilosoofia Unixist AI Agentideni
Originaal Ethan 业成


Kaja üle poole sajandi
Juba 1970. aastate alguses Belli laborites (Bell Labs) pakkusid Unixi isad Ken Thompson ja Dennis Ritchie esmakordselt välja julge ja peaaegu fanaatilise disainipõhimõtte: Everything is a file – kõik on fail.
Üle viiekümne aasta hiljem on AI Agenti raamistikud plahvatuslikult kasvanud. Manus, Claude Code, OpenClaw... Need on pärit erinevatest meeskondadest, erinevatest tehnoloogiapinuudest, erinevatest ärilistest eesmärkidest, kuid on ühel meelel teinud sama valiku: kasutada failisüsteemi Agendi kognitiivse skeletina.
Manus annab Agendile virtuaalmasina, mille ülesande tulemused salvestatakse failidena kettale. Claude Code loeb ja kirjutab otse kasutaja kohalikku failisüsteemi, kasutades CLAUDE.md faili kõigi juhiste ja konteksti jaoks. OpenClaw ja teised avatud lähtekoodiga raamistikud korraldavad ülesannete jaotuse ja vahepealsed olekud samuti kataloogistruktuurina.
Kui poole sajandi kaugusel olevad insenerid seisavad silmitsi täiesti erinevate tehniliste probleemidega, kuid lähenevad iseseisvalt samale lahendusele – see pole juhus, see on disainifilosoofia resonants.
Unixi otsus
Selle kaalu mõistmiseks peame kõigepealt vaatama, mida Unix tegi.
Unixi failisüsteemi disaini peetakse arvutiteaduse ajaloo üheks elegantsemaks disainiks. See lahendas äärmiselt keerulise probleemi: kuidas hallata väga erinevaid riistvara- ja andmeressursse ühtse ja lihtsa liidese abil.
Enne 1970. aastaid töötasid operatsioonisüsteemid järgmiselt: kui soovite lugeda ketast, reguleerige ketta liidest; kui soovite lugeda linti, reguleerige lindi liidest; kui soovite pääseda juurde terminalile, reguleerige terminali liidest. Igal seadmel on oma API ja igal API-l on oma semantika. Kui teil on N seadet ja M toimingut, on süsteemi keerukus N × M.
Thompson ja Ritchie tegid midagi pealtnäha lihtsat ja rumalat:
Muutke kõik failideks. Kasutage nelja verbi open, read, write, close, et teha kõike.
Selle peamine tähendus on see, et kõik operatsioonisüsteemi ressursid – dokumendid, kataloogid, kõvakettad, modemid, klaviatuurid, printerid ja isegi võrguühendused ja protsessiteave – saab abstraheerida failivooguks (Stream of Bytes).
See tähendab, et peate õppima ainult ühe API – open(), read(), write(), close() – et kasutada kõiki arvuti ressursse.
Sellest ajast alates on keerukus kokku kukkunud N × M-lt 4 × 1-le. Neli verbi, üks abstraktsioon.
Selle asja geniaalsus ei seisne nimisõnas "fail", vaid sügavamas arusaamas:
Te ei pea teadma, mis on failikirjeldi taga. Liides on leping.
Fd (failikirjeldaja) on läbipaistmatu käepide. Kui te sellelt read(), siis tuleb välja baitide voog. Mis puutub sellesse, kas need baidid pärinevad kõvaketta sektorist, võrgukaardi puhvrist või mõne muu protsessi standardväljundist – te ei hooli sellest ja te ei tohiks ka hoolida.
See on ühtse liidese jõud: see muudab teadmatuse eeliseks.

Agent seisab silmitsi sama küsimusega
Nüüd vaatame AI Agendi olukorda.
Selleks, et Agent saaks täita keerulisi ülesandeid, seisab ta silmitsi 1970. aastate operatsioonisüsteemiga üllatavalt sarnase raskusega:
- Püsiv mälu: LLM-i kontekstiaken on muutlik ja mõttekäik kaob seansiga. See on nagu mälu, mis vabastatakse pärast protsessi lõpetamist – vajad kohta, kuhu vahepealne olek salvestada, muidu algab iga vestlus nullist.
- Järk-järguline kontekst: Keerulisi ülesandeid ei saa ühe sammuga lõpule viia. Agent peab mitme järelduse vooru jooksul järk-järgult konteksti koguma, nagu Unixi protsess, mis edastab olekut mitme täitmise vahel failide lugemise ja kirjutamise kaudu. Failisüsteem pakub loomulikult sellist "kirjuta natuke, loe natuke, kirjuta veel natuke" järk-järgulist töörežiimi.
- Tööriistade ja oskuste ühtne ajakava: Agent peab kutsuma esile heterogeenseid tööriistu (Tools/Skills), nagu otsing, koodi täitmine, piltide genereerimine, nagu Unix peab haldama heterogeenseid seadmeid, nagu kettad, võrgud, printerid. Vajad ühtset abstraktsiooni, muidu pead iga uue tööriista jaoks kirjutama uue integratsiooniloogika.
- Arvuti kasutamise õiguste piirid: Kui Agendil on võime arvutit kasutada, muutub küsimus "mida ta saab puudutada ja mida mitte" eluliselt tähtsaks. Unixi failiõiguste süsteem (rwx) pakub just valmis liivakasti mudeli – kataloog on piir ja õigused on leping.
Neli nõuet. Kas kõlab tuttavalt?
See on täpselt see probleem, millega operatsioonisüsteemid 1970. aastatel silmitsi seisid.
Püsiv mälu – failisüsteem lahendab loomulikult, kirjutamine on püsiv. Järk-järguline kontekst – kataloogistruktuur ise on inkrementaalselt ehitatud, mkdir, touch, append, kontekst kasvab koos failidega. Tööriistade ühtne ajakava – Unixi torujuhtme olemus: ühe protsessi stdout on teise protsessi stdin, vahepealne keskkond on baitide voog. Agendi tööriistakett on sama: eelmise sammu väljundfail on järgmise sammu sisend. Õiguste piirid – failisüsteemi rwx-õigused, chroot-liivakast, määravad loomulikult Agendi "võimekuse ringi".
Seega, kui Agendi raamistiku disainer seisab silmitsi küsimusega "kuhu Agendi tööolek panna", on vastus peaaegu ette määratud: failisüsteemi. Sest pole lihtsamat lahendust, mis suudaks neid nelja piirangut korraga täita.
Kui süsteem peab "haldama suure hulga heterogeensete ressursside interaktsiooni", on sul kaks teed:
Teekond A: Kujunda iga ressursi jaoks spetsiaalne liides. N ressurssi × M toimingut = NM liidest. Täpne, aga plahvatusohtlik.
Teekond B: Leia piisavalt õhuke abstraktsioonikiht, et kõik ressursid kannaksid sama riietust. 4 toimingut × 1 abstraktsioonikiht. Jäme, aga kombineeritav.
Unix valis B. Üle viiekümne aasta hiljem valib Agendi raamistik taas B.

Sügavam kiht: Fail on mõtte väljendus
Kui me aga peatume ainult "tehniliste lahenduste lähenemisel", jätame me ilma olulisemast.
Tuleta meelde, kuidas inimesed ise keeruliste ülesannetega hakkama saavad.
Sa saad suure projekti, esimene asi, mida sa teed, ei ole tööga alustamine, vaid: kaustade loomine. Projekti juurkataloog, alamülesannete kataloog, viitematerjalide kataloog, väljundkataloog. Sa kasutad kataloogistruktuuri, et jagada kaootiline ülesanne hallatavateks üksusteks. Sa nimetad iga üksuse failinimega. Sa kasutad faili sisu, et salvestada mõtteprotsessi ja vaheprodukte.
Failisüsteem ei ole ainult salvestuslahendus. See on inimeste mõtete väljendamise algne tööriist.
See arusaam selgitab, miks Agendi raamistik läheneb failisüsteemile: LLM-i "mõtlemine" peab olema väljendatud – selle kontekstiaken on piiratud ja pikaajaline järeldamine peab tuginema välisele mälule. Ja failisüsteem on just kõige universaalsem "väline mälu" formaat, mille inimesed on leiutanud.
Sellest vaatenurgast ei ole Claude Code'i CLAUDE.md konfiguratsioonifail. See on väljendatud kognitiivne leping – inimesed kirjutavad kavatsuse faili ja Agent loeb faili kavatsuseks. Failist on saanud liidesekiht inimese mõistuse ja tehisintellekti vahel.
See on Unixi torujuhtme filosoofiaga hämmastavalt kooskõlas:
Kirjuta programme tekstivoogude käsitlemiseks, sest see on universaalne liides.Kui asendada "programs" sõnaga "agents" ja "text streams" sõnaga "files", siis see lause kehtib ka 2026. aastal.
Tagasi esimeste printsiipide juurde
Suurepärased abstraktsioonid ei aegu, need leiavad lihtsalt uusi näiteid uutes valdkondades.
"Ühtne liides lahendab keerukuse" ei ole Unixi leiutis, see on süsteemidisaini igavene seadus. Unix juhtus seda realiseerima nimega "fail". AI Agent juhtus seda uuesti realiseerima "töökataloogi" kujul.
Järgmine põlvkond süsteeme seisab taas sama valiku ees: kas kujundada igale asjale spetsiaalne liides või leida õhuke, üldine ja kombineeritav abstraktsioon?
Kui ajaloost on midagi õppida, siis on vastus juba kirjas /dev/null kõrval:
Keep it simple. Make it compose. Everything is a file.





