ato

Docs/什么是 Ato?

更新于 2026-10-28

什么是 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 或容器镜像仓库的替代品。
  • 不保证每个进程都能确定性地重放。