什么是 Ato?
Ato 是一种把软件视为**延续(continuation)**的方式:关注的是从某一时刻起仍然可以继续的计算,而不是一个服务端点、一个代码仓库或一份快照。
重点并不在于取代容器、包管理器或虚拟机。这些工具可以准备并运行环境。Ato 提供的那一层,让运行在它们之上的计算可以被记录、保存、分支、转移和延续。
问题所在
大多数软件都以服务访问权的形式交付:一个与别人的服务器和数据库通信的界面。你得到的是屏幕,而不是软件本身。由此产生三个后果。
- 进行中的工作无法迁移。当提供方的环境发生变化、服务关停或你失去访问权限时,会话就不再可用。
- 过去不是一个可以返回的地方。已保存的文档并不等同于产生它的程序状态。
- 环境决定什么能运行。同一个项目可能在某一台机器上可用,而在另一台上失败,因为缺少某个运行时、库或服务。
LLM 辅助开发让这一点更加明显:软件被更快地生产出来,变体也更多,因此能够保存、比较、迁移和恢复一个可工作的计算,比能够保留它最初运行的那台机器更重要。
模型
Computation ──▶ seal ──▶ Capsule ──▶ transfer ──▶ materialize ──▶ Run ──▶ continue
- Computation(计算)是从当前时刻起仍然保留的工作。发生一次交互时,它就会改变。
- Capsule(封装体)是该计算中一个被封存、不可变、可寻址的点。它可以被保存、传递、恢复、组合和分叉。
- Run(运行)是从 Capsule 恢复的实时求值过程。Run 会向前推进;封存一个点会生成另一个 Capsule。
- Record(记录)是观察到一次交互的证据。它说明 Run 如何到达某个点,但其本身并不是那个点。
- Materialization(物化)是实现 Capsule 的一种物理方式:重放(Replay)、工作区重建,或将来的快照机制。
这些区分是模型的核心。核心概念定义了每个术语,并说明它们之间的关系。
目前可以运行的部分
Ato 仍处于实验阶段。仓库包含计算对象、生命周期命令、适配器、可移植包处理和静态验证示例。便携应用配置将 Contract K(可观察条件)与 Derivation D(声明的实现路径)分开,回执记录实际观察结果。该配置的规范仍是实现阶段草案。可运行的路径取决于主机能力和授权。异构主机间的通用恢复、进程内存恢复和 AI 自主 Formation 仍处于研究或开发阶段。关于 Ato · 开发指南。
Ato 不是什么
- 不是取代 Docker、Nix 或虚拟机的通用环境供给工具。
- 不是包管理器或工具链的重新实现。
- 不是 Git 或容器镜像仓库的替代品。
- 不保证每个进程都能确定性地重放。