深度 · 小互解读

camelAI 把 Agent 从虚拟机里改造成跑在 Cloudflare 边缘节点上

成本按他们自己的说法降了几个数量级,响应更快,便宜模型也能驱动。代码 7 月 24 日全部开源。
一分钟速览
  • 大部分团队跑 AI Agent 都用完整的 Linux 虚拟机,camelAI 一开始也是。算完账他们把这台机器整个拆了。
  • 分三步拆:先搬走 Agent,再把文件搬进数据库,最后连命令行都删掉。用户那边什么都没变。
  • 最激进的是删命令行这一步。不过代码里那个「删掉」,留了一个口子。
⚑ 这篇的材料来自 camelAI 自己的工程博客,性能、成本、模型表现的说法都是团队自评,没有第三方核验。文中凡是标「核对过」的地方,是本站对照他们的开源仓库和 Cloudflare 官方文档逐条查过的。
起点

每个用户一台常驻机器还得挂一块高速磁盘,按他们规划的用户量算不过来

这是 camelAI 的 CTO Miguel Salinas 写的一篇架构重构复盘。他们把原本跑在独立虚拟机里的 AI Agent,完全重构成跑在 Cloudflare Durable Object 上的轻量架构,成本和延迟都大幅下降。改造分三次做完,代码 7 月 24 日全部开源,每一处机制都能对着仓库核。

不认识 camelAI?点开看一眼

camelAI 是一个 AI 编程助手,三个人的团队做的:Illiana Reed 管产品,Miguel Salinas 管技术,Isabella 管运营。

你在对话框里说要做什么,它写代码、装依赖、把项目跑起来,最后部署到一个能打开的网址;它还能接你的数据库和几十种外部服务,跑 Python notebook、做仪表盘。

官网的自我介绍是「一个住在自己电脑里的 AI 软件工程师」。那台「电脑」就是每个用户分到的一台 Linux 虚拟机,也正是这篇要拆掉的东西。

大部分团队跑 AI Agent 都用完整的 Linux 虚拟机或容器沙箱,camelAI 一开始也是。

问题出在成本结构上:给每个用户配一台常驻机器,还要挂上高速磁盘存文件。用户数一涨,扩容就是在扩真实的机器和真实的磁盘。按他们规划的用户量算,这条路走不通。

用户真正在用的时间 机器开着、一直在计费的时间 一天 用户数翻倍,下面这条也跟着翻倍
示意图,来源没有给出具体时长。两条时间的差额就是虚拟机方案要付的钱。

难点在于,AI Agent 天然假设自己跑在 Linux 上,被训练成一遇到问题就去调 bash。而他们最初用的是 Claude Code 那套 harness,它本身就必须要有完整虚拟机才能跑。harness 指的是包在模型外面那层程序,负责跑对话循环、管工具、管状态。

harness 到底管什么
AI 自我进化,先改模型外面的外壳:Lilian Weng 讲透 harness 工程
同样是「模型不动、只改外面那层程序」的思路,那篇把 harness 管哪些事、改它能换来多大差别讲透了。

所以他们没去琢磨虚拟机怎么调度更省,而是按「根本不需要虚拟机」重新设计了一遍。

四个多月前,camelAI 的 CEO Illiana Reed 还发过一篇博客,第一句是「camelAI 的每个用户都有一台持久的电脑,一个真正的 Linux 环境」,并称这是产品的核心承诺。那篇讲他们试了 Modal、Cloudflare Containers、Fly.io 的 Sprites 都不合适,最后花一周自己搭了一套容器服务。这次 Miguel 写:那篇还挂着,但那套基础设施我们一台都不跑了。

那台虚拟机里装着三样东西:Agent 本体、项目文件、命令行。三次重构就是把它们一件件搬走,每搬走一件,就得回答它原来干的活现在归谁。

拆之前 换成了什么 一台 Linux 虚拟机 · 一直开着 Agent 本体 项目文件 bash 命令行 第一步 第二步 第三步 搬去 Cloudflare 边缘节点 存进数据库和对象存储 换成 64 个固定方法 三样都搬完,就不再需要那台机器了
三步拆解的路线图。下面三节各拆一样,逐一看它解决了多少。本站按原文与仓库源码绘制。
第一步

第一步搬走 Agent 本体:响应变快了,但机器还占着

Claude Code 的 harness 和虚拟机分不开,所以第一件事是自己写一个。

底座用的是 pi,Mario Zechner 的开源 Agent 工具包,MIT 许可,GitHub 上 8.1 万 star。pi 是一摞库,不是一个程序。最上面那层是命令行工具,假设脚下有操作系统;下面几层只给 Agent 的原材料,对话循环、状态管理,不关心自己跑在哪。camelAI 一行 pi 的代码都没改,只拿了下面两层。

核对过

camelAI 的 package.json 里只有 @earendil-works/pi-agent-core@earendil-works/pi-ai(都是 0.80.6 版),没有 pi-coding-agent,就是那个假设有操作系统的命令行层。

新的 harness 跑在一个 Durable Object 里。这是 Cloudflare 的一种小型计算实例,自带一块专属存储,会在离用户最近的机房里醒来。camelAI 给每个聊天会话分一个。