📌 项目地址cloudflare/computer | ⭐ 2,363 颗星 | 🔧 TypeScript | 📜 未标注

它解决的是什么问题

AI Agent 需要读写文件、执行命令、保存中间状态。传统做法是给 Agent 一个沙箱环境,但沙箱和主应用之间往往存在状态同步、存储一致性、权限隔离的割裂。Cloudflare Computer 提出了一种不同思路:用 Cloudflare Durable Object 作为权威状态层,把 SQLite 里的数据抽象成一个虚拟文件系统,然后在这个文件系统上挂接不同的执行后端。这样,无论 Agent 的代码跑在容器里还是 Worker 里,它看到的文件系统都是同一个、由数据库直接支撑的视图,不需要额外的同步通道。

项目定位是预览版,官方明确说“仅用于反馈,API 不稳定,不适合生产”。但它展示的架构方向很有参考价值:将文件和进程的执行抽象成可插拔后端,正是当前 AI Agent 基础设施里一个值得关注的设计。

架构拆解:一个 Workspace,三种执行后端

核心概念是 Workspace。它内部持有 SQLite 状态,并通过 workspace.runtime.exec(source, { backend }) 作为唯一执行入口。source 可以是 shell 命令,也可以是 ECMAScript 模块,取决于你选择的 backend。

官方一共提供三个后端:

  1. Container:把 SQLite 状态通过 FUSE 挂载成一个真实文件系统,沙箱内运行一个守护进程 computerd,通过 capnweb RPC 通道把变更同步回去。这意味着容器里可以跑真正的 Linux 用户态程序、真实二进制、真实网络。

  2. Isolate shell:在 Dynamic Worker 里运行 just-bash,通过 Workers RPC 直接访问权威 Workspace。没有第二份存储,也没有同步往返。

  3. Isolate JavaScript:在一个全新的 Dynamic Worker 里执行 ECMAScript 模块,支持结构化输入/结果、可持久化的相对导入、配置化的 libraries、Workspace 支持的 node:fs/promises,以及受信任的 ws:gitws:artifacts 模块。

一个 Workspace 可以在稳定 ID 下注册多个后端,后端在首次使用时才懒连接。如果不需要执行能力,也可以只构造一个纯文件系统 Workspace。

实际用法:目前能做什么

README 明确指出:如果你想构建在 Cloudflare Computer 之上,需要安装 @cloudflare/computer,并阅读该包自身的 README——里面有安装步骤、入口点映射、以及 fsruntime 的完整示例。也就是说,根仓库的 README 并没有给出可直接复制的安装命令,具体 API 以包 README 为准。

仓库里提供了三个可运行的示例,每个都是独立的 Worker workspace,各有 README:

  • examples/container:在容器里跑 computerd,挂载 Workspace,通过 capnweb 与 Durable Object 通信,暴露一个 write / read / exec HTTP 接口。
  • examples/worker-shell:相同 HTTP 接口,但 shell 改为在 Dynamic Worker 中跑 just-bash,通过 env.LOADER 加载,不需要容器。
  • examples/worker-javascript:与 worker-shell 镜像,但 exec 改为在 Dynamic Worker 中执行 ECMAScript 模块,而不是 shell 命令。

对比这三个示例,可以看出同一个 Workspace 抽象下,切换执行后端的成本被降得很低。如果你对 Agent 的文件操作和命令执行有跨环境一致性的需求,这套设计值得抄作业。

与同类工具的区别

目前市面上常见的 Agent 文件系统方案,要么是给 Agent 一个本地目录(如 ChatGPT Code Interpreter 的沙箱),要么是通过 API 操作远程存储(如各种云文件服务)。Cloudflare Computer 的独特之处在于:

  • 权威状态在 SQLite,而不是在文件系统。文件系统只是 SQLite 状态的一种投影。这让多后端共享同一状态变得自然,也避免了“沙箱里的文件改了,但主应用不知道”的经典问题。
  • 执行后端是可插拔的。同一套文件系统,可以接容器,也可以接轻量 Worker。你不需要因为换一个执行环境而重写文件操作逻辑。
  • 运行在 Cloudflare 边缘基础设施上。Durable Object 提供全局状态,Dynamic Worker 提供就近计算,这让“给 Agent 一台电脑”这件事更像是在边缘网络上组装,而不是租一台传统 VM。

重要注意事项

  • 这是预览版,API 不稳定,设计会变。官方文档 docs/ 下的规范是“前瞻性的”,要按意图去读,不能把它当作当前代码的描述。
  • 不适合生产环境。适合实验、探索和原型验证。
  • 如果你要参与反馈,先看 CONTRIBUTING.md;获准的协作者按 COLLABORATORS.md 进行环境搭建、构建和测试。
  • 根 README 没有给出完整命令,安装和具体用法必须去看 packages/computer/README.md,本文不臆造命令。

如果你正在为 AI Agent 设计执行沙箱,或者在调研边缘计算上的文件系统抽象,Cloudflare Computer 的架构思路是一份值得研读的参考材料。它未必是你最终的生产选择,但它指向了一个更干净的状态管理方向:让 Agent 的“电脑”不再是孤立容器,而是分布式数据库上的一个透明视图。

这篇文章对你有帮助吗?

发表回复