Cloudflare 在 Durable Object 内部嵌入 SQLite 状态,通过 FUSE 将其映射为容器内真实文件系统,支持全 Linux 环境与网络访问,同时提供 Isolate 模式执行 JavaScript/Shell,为 AI Agent 提供统一的可插拔执行平面。
Cloudflare Computer 是一个虚拟文件系统,运行在 Durable Object 内部。Durable Object 将权威状态存储在 SQLite 中,并通过 workspace.runtime 暴露一个可插拔的执行层面。当前有三个后端:
Container 将 SQLite 状态以真实 FUSE 挂载的方式投射到沙箱容器中。沙箱侧的守护进程(computerd)将状态挂载为文件系统,并通过 capnweb RPC 通道同步变更。完整的 Linux 用户态、真实的二进制文件、真实的网络。
Isolate shell 在 Dynamic Worker 中运行 just-bash。它通过 Workers RPC 访问权威 Workspace,因此没有第二层存储或同步往返。
Isolate JavaScript 在一个全新的 Dynamic Worker 中执行 ECMAScript 模块,支持结构化输入/结果、持久的相对导入、配置好的库、Workspace 支持的 node:fs/promises,以及可信的 ws:git 和 ws:artifacts 模块。
一个 Workspace 可以在稳定 ID 下注册多个后端。workspace.runtime.exec(source, { backend }) 是唯一的执行入口;所选后端决定 source 是 shell 命令还是 ECMAScript 模块。后端在首次使用时懒连接。
Workspace 也可以完全不绑定后端,单独向调用方提供文件系统。
PREVIEW ONLY 本包作为预览版本供反馈之用。API 不稳定,设计可能随时变更。
仅适合实验、探索和原型开发。当前不适用于生产环境。
docs/ 下的规格说明是前瞻性的——阅读时注重意图,而非对当前代码的描述。
如果你想基于 Cloudflare Computer 构建,请安装 @cloudflare/computer 并阅读该包的 README——其中包含安装步骤、入口映射以及 fs 和 runtime 表面的完整示例。
如何提交反馈,请参见 CONTRIBUTING.md。已批准的合作者请按照 COLLABORATORS.md 进行设置、构建和测试。
examples/ 目录包含可运行的公共表面消费者。每个都是一个拥有独立 README 的 Worker workspace。
examples/container — 在容器内运行 computerd,挂载一个 workspace,并通过 capnweb 与 Durable Object 通信。提供 write / read / exec HTTP 表面。
examples/worker-shell — 与容器示例相同的 HTTP 表面,但 shell 在通过 env.LOADER 加载的 Dynamic Worker 中运行 just-bash。不使用容器。
examples/worker-javascript — 与 worker-shell 类似,但 exec 在 Dynamic Worker 中执行 ECMAScript 模块,而非运行 shell 命令。
examples/think — 一个 @cloudflare/think 聊天 Agent,使用 workspace 作为其工作目录,可从终端访问。
examples/think-compare-runtimes — 一个 Web UI,以并排对比的方式针对容器和 worker 运行时运行同一个 Agent 任务。
examples/tutorial — 一步步的构建教程:一个端点、一个 Agent,在宿主机上写一张 markdown 食谱卡,然后在容器中运行 pandoc 将其转换为 PDF。
examples/artifacts — 在 workspace 中生成一个 Worker 项目,并将其发布到 Cloudflare Artifacts 作为可克隆的仓库。
examples/assets — 用 Workers AI 将 prompt 转化为图片,写入 workspace,并通过 @cloudflare/computer/assets 返回可分享的链接。
这是一个小型 monorepo。每个包都有自己独立的 README,包含该包的状态说明和使用注意事项。
packages/dofs(@cloudflare/dofs)— Durable Object SQLite 虚拟文件系统、同步协议构建块,以及 Node 的 @platformatic/vfs 提供者。
packages/rpc(@cloudflare/computer-rpc)— capnweb wire 类型,以及 Durable Object 和 computerd 之间共享的服务端/客户端辅助函数。
packages/computerd(@cloudflare/computerd)— computerd 守护进程:FUSE 挂载加 HTTP/WebSocket RPC 服务器,运行在沙箱容器内部。
packages/computer(@cloudflare/computer)— 顶层的 Computer 包,供 Durable Object 消费。工作进行中。
packages/computer-computerd-linux-x64(@cloudflare/computer-computerd-linux-x64)— 面向 linux-x64 的预编译 computerd 二进制文件,用于容器镜像分发。
computerd 的 FUSE 挂载在元数据密集型操作上优于真实磁盘,在大顺序 I/O 上则略逊一筹。详见 docs/19_performance.md 中的完整 fs-bench 数据、与 cloudflare/sandbox-sdk npm install 的对比,以及如何复现这些测试。
docs/ — 设计规格说明。前瞻性内容;作为意图参考。
docs/19_performance.md — 文件系统基准测试。
我们通过 issue 和 discussion 接受 bug 报告、修复提案、功能请求和设计提案。不接受未经邀请的 pull request。公开贡献路径请参见 CONTRIBUTING.md。
已批准的合作者请遵循 COLLABORATORS.md 中的设置、格式化、测试、提交信息和 pull request 规范。
如果你以 Agent 身份在此仓库工作,请先阅读 AGENTS.md 和 .agents/skills/ 下的技能文档。