unix 革命植根于一个简洁却深远的理念:一切皆文件。如今,随着 ai 智能体(agents)的蓬勃发展,大语言模型(llms)终于得以触达过去半个世纪沉淀在文件系统中的海量结构化与非结构化知识。其结果是——世界正悄然回归文件这一古老而强大的抽象。

作者:Glauber Costa
原文:turso.tech/blog/nothing-new-under-the-sun
转自:https://www.php.cn/link/b205ed537820cf30fd3012e805c7d9c6)
----------------------------------
我初次接触计算机是在 11 岁。那台老旧的 PC 运行着 MS-DOS 5.2 和 Windows 3.1,主要用途是打游戏。但令人惊讶的是,哪怕只是运行一款 DOS 游戏,也常常需要理解 x86 架构下的内存分段机制——这在今天看来简直不可思议。
那段时光充满趣味,不过真正把我拽进编程世界的,并不是 DOS 或 Windows,而是 Unix。直到高中一年级,我才第一次邂逅 Linux;而进入大学后,兴趣才真正被点燃。很快,我就沉迷于 Unix 的发展史,并抓住一切机会去摆弄材料系机房里那台 SPARC 架构的 Solaris 工作站。
若没有 Unix,今天我们所依赖的技术生态几乎无从谈起。如果你未曾亲历那个年代,可能很难体会它真正的分量。除了催生 C 语言这一“意外副产品”外,Unix 还向世界贡献了两大基石:
- “先发布,再完善(Ship it)”的文化:通过 man 手册如实记录工具的能力边界,而非因追求尽善尽美而无限期推迟交付;
- “一切皆文件”的统一抽象,以及用管道(pipes)将独立工具无缝串联的哲学。
文件的魔力
当我把身边的朋友都“转化”成 Unix 忠粉之后(讲这个故事时我喜欢这么美化——事实上真相是,他们渐渐躲着我,因为我总在滔滔不绝地聊 Unix),有一句话反复在我耳边回响:“sed、awk、cut、grep,有这四个就够了。” 这听起来像一句玩笑话,实则承载着极富远见的设计智慧。半个世纪后的今天,它已显得如此自然(正如所有真正伟大的思想那样),但在诞生之初,它却是彻头彻尾的颠覆。
每个程序都懂文件:能读,也能写。于是,整个操作系统瞬间拥有了一个通用接口。这是一种隐性的契约——所有软件都默认遵循它,从而确保任意程序的输出,都能成为另一程序的输入。
正是这种极致简化的抽象——文件,支撑起了 Unix 的另一信条:“专注一事,务求极致(Do one thing, and do it well)。” 工具无需臃肿庞杂,只需精于单一任务。它们之所以敢如此“偏科”,正是因为彼此之间共享同一套输入/输出语言:文件。
由此引发的组合爆炸式可能性,全部建立在这一文件契约之上:此处写入几字节,彼处读取几字节,再借由管道将其编织成更宏大的流程。
人们通常想到的“文件”,是硬盘上某个 PDF 或 Excel 文档。但文件之所以强大,正在于它的本质极其朴素:一串可读、可写的字节序列。很快,Unix 世界便涌现出大量虚拟文件。最终,连网络连接、进程状态、硬件参数……统统都可以映射为文件。
超越传统 Unix
Linux 将这一理念推向新高度。它引入了 /proc 虚拟文件系统,以文件形式暴露内核运行时信息——你获取这些数据的方式?没错,就是 cat /proc/cpuinfo。
(注:proc 文件系统早在原始 Unix 中就已存在,但最初仅提供有限的进程快照信息)
随后还有 /sys,用于访问设备驱动与底层硬件配置。而你与它的交互方式?仍是标准的文件读写操作。
我们正是站在这个坚实基础上,构建起今日的数字世界。后来虽有 API 等更高层抽象兴起,但文件从未退场——配置靠它,代码靠它,资源靠它,日志靠它,甚至容器镜像和数据库快照也离不开它。
复用,是文明的捷径
时间快进至 AI 时代,一个事实日益清晰:大语言模型(LLM)本身固然聪慧、优雅且富有表现力,但单靠它无法独自完成复杂任务。真正释放 AI 潜力的钥匙,是智能体(Agents)——说得直白些,就是在 LLM 外围加了一层“调用工具的 for 循环”。
有趣的是,LLM 表现出惊人的能力:它极其擅长调用那些已在 Unix 生态中服役了五十年的命令行工具。而这些工具之所以能被轻松集成,正得益于其统一的文件接口。在过去五十年间,人类已为几乎所有常见任务开发出成熟、稳定、可组合的工具链。而智能体的本质,正是文本流的调度者与编排者——它天然适配这套基于文件的协作范式。
当然,我们可以另起炉灶:为智能体打造一套“原生专用工具集”。但这意味着主动抛弃过去几十年积累的全部工程资产,只为换取微乎其微的边际收益。我们不会为了所谓“更先进”的设计,去重造电源插头的标准;SQL 也依然牢牢占据数据查询的王座(尽管每位开发者都自信能写出更好的替代方案)。
面向未来的文件系统
相反,智能体正加速拥抱文件系统。这一趋势已然显现:Claude Code 等前沿工具深度依赖文件抽象,未来只会更加深入。
但这并不等于文件系统将原封不动地延续下去。当前,有两个关键力量正从不同方向重塑它:
其一是 TypeScript 与浏览器环境正成为智能体部署的新主流。浏览器缺乏对本地文件系统的直接、安全访问能力;而基于 TS 的智能体又常运行在临时环境(ephemeral environments)中——在那里,文件系统并非默认存在。这类平台本质上演化为“函数即服务”形态,数据需求多通过网络调用数据库来满足。
其二是沙盒(Sandbox)作为隔离智能体工作负载的首选机制快速普及。沙盒将虚拟化提升到毫秒级启动的新维度:智能体常需动态生成子智能体,以并行探索多种解法路径。若每次都要挂载传统文件系统,其延迟将严重拖慢整体响应速度。
目前已有两个颇具启发性的解决方案值得关注。第一个是 Vercel 推出的 just-bash:它为 TypeScript 编写的智能体提供了一个模拟的类 bash 运行时,让智能体无论身处何地,都能像在真实 Unix shell 中一样使用标准工具:
import { Bash } from "just-bash";
const env = new Bash();
await env.exec('echo "Hello" > greeting.txt');
const result = await env.exec("cat greeting.txt");
console.log(result.stdout); // "Hello\n"
console.log(result.exitCode); // 0
console.log(result.env); // 执行完毕后的最终环境变量状态第二个是我们自主研发的 AgentFS:它将完整的文件系统语义映射至单个 SQLite 数据库文件中。每个智能体拥有逻辑隔离的文件视图,所有修改均被捕获在 SQLite 内,与宿主文件系统完全解耦。
这带来了双重保障:
a) 智能体仅能访问授权范围内的上下文片段;
b) 它可自由编辑、重构、试验各类资产,因为所有变更天然具备非破坏性。
SQLite 文件本身支持快速复制与按需分片,可在毫秒内注入沙盒供智能体即时使用。这不仅支撑了快照(snapshotting)——智能体可随时保存状态、执行一步操作、并在出错时一键回滚;还实现了跨智能体状态共享——多个智能体可基于同一份文件快照协同演进。
结语
历史从不直线前进,而常以螺旋方式回归本源。当外部世界剧烈震荡,唯一不变的,是我们始终站在前人肩膀之上构建;试图推倒重来者,终将付出沉重代价。Unix 革命馈赠给人类的,是一个看似简单却坚不可摧的抽象:文件。过去五十年,我们所有技术演进,皆以此为地基。
对 AI 智能体而言,核心问题已然浮现:
是选择驾驭这五十年积淀下来的、浩如烟海的成熟工具链?
还是执意另辟蹊径,从零再造一个“智能体原生”世界?
答案,正变得前所未有地清晰。










