Semuanya Adalah Fail: Falsafah Reka Bentuk dari Unix ke Agen AI
Semuanya Adalah Fail: Falsafah Reka Bentuk dari Unix ke Agen AI
Asal Ethan 业成


Gema Merentasi Setengah Abad
Seawal tahun 1970-an di Bell Labs, bapa Unix, Ken Thompson dan Dennis Ritchie pertama kali mencadangkan prinsip reka bentuk yang berani sehingga hampir fanatik: Everything is a file——Semuanya adalah fail.
Lebih lima puluh tahun kemudian, rangka kerja Agen AI meletup. Manus, Claude Code, OpenClaw...... Mereka datang dari pasukan yang berbeza, tindanan teknologi yang berbeza, matlamat komersial yang berbeza, tetapi sebulat suara membuat pilihan yang sama: menggunakan sistem fail sebagai rangka kognitif Agen.
Manus memberi Agen mesin maya, dan hasil tugas disimpan sebagai fail. Claude Code membaca dan menulis terus pada sistem fail tempatan pengguna, menggunakan fail CLAUDE.md untuk membawa semua arahan dan konteks. Rangka kerja sumber terbuka seperti OpenClaw juga menyusun penguraian tugas dan keadaan perantaraan dalam struktur direktori.
Apabila jurutera yang dipisahkan oleh setengah abad, menghadapi masalah teknikal yang sama sekali berbeza, tetapi secara bebas menumpu pada penyelesaian yang sama - ini bukan kebetulan, ini adalah resonans falsafah reka bentuk.
Keputusan Unix Itu
Untuk memahami berat perkara ini, kita perlu kembali kepada apa yang dilakukan oleh Unix.
Reka bentuk sistem fail Unix diiktiraf sebagai salah satu reka bentuk yang paling elegan dalam sejarah sains komputer. Ia menyelesaikan masalah yang sangat kompleks: bagaimana menggunakan antara muka yang seragam dan ringkas untuk mengurus sumber perkakasan dan sumber data yang berbeza-beza.
Sebelum tahun 1970-an, sistem pengendalian berfungsi seperti ini: jika anda ingin membaca cakera, anda menyesuaikan antara muka cakera; jika anda ingin membaca pita magnetik, anda menyesuaikan antara muka pita magnetik; jika anda ingin mengakses terminal, anda menyesuaikan antara muka terminal. Setiap peranti mempunyai API sendiri, dan setiap API mempunyai semantik sendiri. Jika anda mempunyai N jenis peranti dan M jenis operasi, kerumitan sistem ialah N × M.
Thompson dan Ritchie melakukan sesuatu yang kelihatan mudah sehingga bodoh:
Jadikan segala-galanya sebagai fail. Gunakan empat kata kerja open, read, write, close untuk mengendalikan segala-galanya.
Maksud terasnya ialah: semua sumber dalam sistem pengendalian - dokumen, direktori, pemacu cakera keras, modem, papan kekunci, pencetak, malah sambungan rangkaian dan maklumat proses - boleh diabstrakkan menjadi aliran fail (Stream of Bytes).
Ini bermakna anda hanya perlu mempelajari satu set API - open(), read(), write(), close() - untuk mengendalikan semua sumber komputer.
Sejak itu, kerumitan runtuh daripada N × M kepada 4 × 1. Empat kata kerja, satu lapisan abstraksi.
Kecemerlangan perkara ini bukan pada kata nama "fail", tetapi pada pandangan yang lebih mendalam:
Anda tidak perlu tahu apa yang ada di sebalik deskriptor fail. Antara muka ialah kontrak.
fd (deskriptor fail) ialah pemegang legap. Anda read() padanya, aliran bait keluar. Mengenai sama ada bait ini datang daripada sektor cakera keras, penimbal kad rangkaian atau output standard proses lain - anda tidak peduli, dan anda tidak sepatutnya peduli.
Inilah kuasa antara muka bersatu: ia menjadikan ketidaktahuan sebagai kelebihan.

Soalan Sama yang Dihadapi oleh Agen
Sekarang lihat kembali keadaan Agen AI.
Untuk menyelesaikan tugas yang kompleks, Agen menghadapi dilema yang sangat serupa dengan sistem pengendalian tahun 1970-an:
- Memori kekal**: Tetingkap konteks LLM adalah tidak kekal, dan rantaian pemikiran hilang bersama sesi. Sama seperti memori yang dikitar semula selepas proses keluar—anda memerlukan tempat untuk mengekalkan keadaan pertengahan, jika tidak, setiap perbualan bermula dari awal.
- Konteks berperingkat: Tugas kompleks tidak boleh diselesaikan dalam satu langkah. Ejen perlu mengumpul konteks secara beransur-ansur dalam pelbagai pusingan penaakulan, sama seperti proses Unix menghantar keadaan antara pelaksanaan berbilang dengan membaca dan menulis fail. Sistem fail secara semula jadi menyediakan mod kerja berperingkat "tulis sedikit, baca sedikit, kemudian tulis sedikit lagi" ini.
- Penjadualan bersatu alat dan kemahiran: Ejen perlu memanggil alat heterogen (Alat/Kemahiran) seperti carian, pelaksanaan kod dan penjanaan imej, sama seperti Unix perlu mengurus peranti heterogen seperti cakera, rangkaian dan pencetak. Anda memerlukan lapisan abstraksi bersatu, jika tidak, anda perlu menulis set logik integrasi baharu untuk setiap alat baharu yang anda sambungkan.
- Sempadan kebenaran Penggunaan Komputer: Apabila Ejen mempunyai keupayaan untuk mengendalikan komputer, "apa yang boleh disentuhnya dan apa yang tidak boleh disentuhnya" menjadi isu hidup dan mati. Sistem kebenaran fail Unix (rwx) menyediakan model kotak pasir sedia ada—direktori sebagai sempadan, kebenaran sebagai kontrak.
Empat keperluan. Bunyi biasa?
Ini adalah masalah yang dihadapi oleh sistem pengendalian pada tahun 1970-an.
Memori kekal—sistem fail menyelesaikannya secara semula jadi, menulis bermakna kekal. Konteks berperingkat—struktur direktori itu sendiri dibina secara tambahan, mkdir, sentuh, tambah, konteks berkembang dengan fail. Penjadualan bersatu alat—intipati saluran paip Unix: stdout satu proses ialah stdin proses lain, dan medium perantaraan ialah aliran bait. Rantaian alat Ejen juga sama: fail output langkah sebelumnya ialah input langkah seterusnya. Sempadan kebenaran—kebenaran rwx sistem fail, kotak pasir chroot, secara semula jadi mentakrifkan "lingkaran keupayaan" untuk Ejen.
Jadi apabila pereka bentuk rangka kerja Ejen menghadapi soalan "di mana keadaan kerja Ejen diletakkan", jawapannya hampir ditakdirkan: letakkan dalam sistem fail. Kerana tiada penyelesaian yang lebih mudah yang boleh memenuhi keempat-empat kekangan ini pada masa yang sama.
Apabila sistem perlu "mengurus interaksi sejumlah besar sumber heterogen", anda mempunyai dua cara:
Laluan A: Reka bentuk antara muka khusus untuk setiap sumber. N jenis sumber × M jenis operasi = NM jenis antara muka. Tepat tetapi meletup.
Laluan B: Cari lapisan abstraksi yang cukup nipis untuk membolehkan semua sumber memakai pakaian yang sama. 4 jenis operasi × 1 lapisan abstraksi. Kasar tetapi boleh digabungkan.
Unix memilih B. Lebih lima puluh tahun kemudian, rangka kerja Ejen memilih B sekali lagi.

Lapisan yang lebih dalam: Fail ialah penzahiran pemikiran
Tetapi jika kita hanya berhenti pada "penumpuan penyelesaian teknikal", kita akan terlepas perkara yang lebih penting.
Fikirkan tentang bagaimana manusia sendiri mengendalikan tugas yang kompleks.
Anda menerima projek besar, perkara pertama yang anda lakukan bukanlah mula bekerja, tetapi: bina folder. Direktori akar projek, direktori sub-tugas, direktori bahan rujukan, direktori output. Anda menggunakan struktur direktori untuk menguraikan tugas huru-hara kepada unit yang boleh diurus. Anda menggunakan nama fail untuk menamakan setiap unit. Anda menggunakan kandungan fail untuk merekodkan proses pemikiran dan produk pertengahan.
Sistem fail bukan sekadar penyelesaian storan. Ia adalah alat primitif untuk penzahiran pemikiran manusia.
Wawasan ini menjelaskan mengapa rangka kerja Ejen menumpu pada sistem fail: "pemikiran" LLM perlu dizahirkan—tetingkap konteksnya terhad, dan penaakulan jarak jauh mesti bergantung pada memori luaran. Dan sistem fail adalah format "memori luaran" yang paling universal yang pernah dicipta oleh manusia.
Dari sudut pandangan ini, CLAUDE.md Claude Code bukanlah fail konfigurasi. Ia adalah kontrak kognitif yang dizahirkan—manusia menulis niat ke dalam fail, dan Ejen membaca fail ke dalam niat. Fail menjadi lapisan antara muka antara minda manusia dan kecerdasan buatan.
Ini sangat konsisten dengan falsafah saluran paip Unix:
Tulis program untuk mengendalikan aliran teks, kerana itu adalah antara muka universal.Menukar "programs" kepada "agents", menukar "text streams" kepada "files", ayat ini masih sah pada tahun 2026.
Kembali ke Prinsip Pertama
Abstraksi yang hebat tidak akan lapuk, ia hanya akan menemui contoh baharu dalam bidang baharu.
"Antara muka seragam menghapuskan kerumitan" bukanlah ciptaan Unix, ia adalah hukum reka bentuk sistem yang abadi. Unix secara kebetulan melaksanakannya dengan nama "file". AI Agent secara kebetulan melaksanakannya sekali lagi dalam bentuk "working directory".
Sistem generasi seterusnya juga akan menghadapi pilihan yang sama sekali lagi: mereka bentuk antara muka khusus untuk setiap perkara, atau mencari lapisan abstraksi yang nipis, umum dan boleh digabungkan?
Jika sejarah mengajar kita apa-apa, jawapannya sudah tertulis di sebelah /dev/null:
Keep it simple. Make it compose. Everything is a file. (Pastikan ia ringkas. Jadikan ia boleh digabungkan. Semuanya adalah fail.)





