Fly.io 推出的新型云计算实例“Sprites”标志着一个重要转变。它不再是传统的只读临时沙箱,而是一种可以长期使用、支持快照与恢复的持久化虚拟机。这种“可丢弃的电脑”专为需要持续状态和复杂交互的智能代理而设计,解决了当前无状态容器的根本限制,旨在终结临时沙箱的时代。
什么是 Sprites?
Sprites 是一种全新的云计算实例,你可以像拥有一台真实的 Linux 电脑一样使用它。它解决了传统云环境的几个核心痛点:
- 极速启动:创建一个全新的实例仅需约 1 秒钟,几乎和 SSH 连接到一台已存在的服务器一样快。
- 完全持久化:与使用后即销毁的沙箱不同,Sprites 的数据和环境会一直保留,直到你主动删除它。你可以安装软件、修改配置,然后离开几天甚至几个月,回来后一切如初。
- 即时快照与恢复:Sprites 内置了“检查点”功能,可以即时创建和恢复系统快照。这就像是为整个操作系统准备的
git,当你搞砸了环境时(例如,误删了文件),可以在一秒钟内恢复到之前的状态。 - 自动休眠与节约成本:当实例处于非活动状态时,它会自动休眠并停止计费,这使得你可以低成本地拥有数十个实例。
Sprites 就像 BIC 公司生产的一次性用品一样,是可丢弃的云电脑。
尽管它在体验上类似一台 EC2 实例,但 Sprites 拥有 EC2 所不具备的灵活性和成本效益。你可以随意创建数百个实例,而无需为它们配置 Docker 容器。
智能代理需要的是电脑,而非沙箱
多年来,我们一直试图用同一种抽象(无状态容器)来服务两种截然不同的用户,但这种方法行不通。
专业的软件开发者被训练来构建无状态应用,这种模式可以简化部署、灵活扩容。然而,像 Claude 这样的 AI 代理并不是专业开发者,它们更像是“一个效率极高但又喜欢到处乱摸的五岁神童”。
强制 AI 代理在容器里工作,并不能真正帮助它们。它们不想要容器,不想要“沙箱”,它们想要的是电脑。
一台真正的“电脑”至少具备两个基本特征,而这正是当前 AI 沙箱所缺乏的:
- 它不会在完成单个任务后就消失。
- 它拥有持久化的存储空间。
临时沙箱带来的现实问题
因为当前的工具都是为无状态应用设计的,强迫 AI 代理使用它们会带来许多不必要的麻烦:
- 重复重建环境:每次启动一个新任务,代理都必须从头开始重建开发环境(比如重新安装
node_modules),这浪费了大量时间和资源。 - 复杂的外部依赖:为了让数据得以保留,开发者不得不搭建 S3、Redis 甚至 RDS 等外部基础设施,只为了让代理能把文件存放在沙箱之外。
- 严格的时间限制:大多数沙箱都有运行时间上限(例如 15 分钟),这使得代理无法执行需要长时间计算或交互的复杂任务。
- 低效的状态传递:代理被迫通过“计划文件”来传递状态,这本质上是一种笨拙的键值存储,远不如直接在文件系统中读写来得高效。
相比之下,在一个真实的电脑环境中,AI 代理可以观察应用的整个生命周期,例如在用户触发异常时自动分析日志并尝试修复问题。
一个未来的可能性:人人拥有的应用
软件开发的本质正在改变。未来,普通用户可能不再需要专业的开发者来为他们构建和维护应用。
作者分享了他使用 Claude 在一个 Sprite 上为自己构建了一个 MDM(移动设备管理)应用的经历。在这个场景中,开发环境就是生产环境。他可以直接告诉 Claude 修改功能,然后立即生效。
“通过 FTP 编辑 PHP 文件:我们没有错,只是超前了时代!”
大多数应用并不需要服务数百万人。未来,最重要的应用将是为个人解决实际问题的工具,由用户自己拥有,并由 AI 按需修改。当前的沙箱模式限制了这种可能性的发展。
抛弃临时沙箱
临时沙箱的时代已经结束。无论你是否使用 Sprites,都应该思考一个问题:
如果你可以在任何地方运行一个编程代理,你希望它运行在一个只读的 K8s 沙箱里,还是一个可以瞬间召唤出来的、完整的 EC2 实例上?
答案是显而易见的。可丢弃电脑的时代已经到来。