cloudflare/computer

Give your agent a computer 👾

Cloudflare Computer – 它是什么

Cloudflare Computer 是一个库,为您提供由 Cloudflare Durable Object 支持的虚拟文件系统。Durable Object 将文件数据存储在 SQLite 中,该库允许您通过三个可互换的“后端”运行读写该文件系统的代码:

后端 工作原理 您获得的功能
容器 SQLite 状态通过 FUSE 挂载投影到沙盒 Linux 容器中。守护进程(computerd)在容器内运行,通过 Cap'n-Proto-over-WebSocket RPC 通道暴露文件系统。 完整的 Linux 用户空间、真实二进制文件、网络访问 – 当您需要运行任意工具(例如 pandoc、git)时非常理想。
隔离 Shell 在 Cloudflare Dynamic Worker 中执行轻量级 just-bash shell。直接通过 Workers RPC 调用 Durable Object,因此无需额外的存储同步。 非常快速的 shell 命令,无容器开销,但仅支持 shell 兼容工具。
隔离 JavaScript 启动一个全新的 Dynamic Worker,运行 ECMAScript 模块。该模块看到由 Workspace 支持的 node:fs/promises 类似 API,以及特殊的主机模块(ws:git、ws:artifacts、ws:container)。 运行可读写虚拟文件系统并调用 Cloudflare 提供的服务的 JavaScript 代码。

所有三个后端都通过单一入口点访问:

await workspace.runtime.exec(source, { backend: "container" })

source 可以是 shell 命令(对于 shell 后端)或 ES 模块(对于 JavaScript 后端)。Workspace 也可以不使用任何后端创建,仅暴露文件系统 API。


为什么对 AI / 代理很重要

许多 AI 代理架构需要一个持久、可变的 workspace,以便它们可以:

  • 存储中间文件(例如下载的图像、生成的代码)。
  • 运行外部工具(编译器、图像处理器、git)来转换这些文件。
  • 在多次调用或 worker 之间共享相同状态。

Cloudflare Computer 正好提供了这一点,但托管在 Cloudflare 的边缘平台上,因此 workspace 靠近 AI 模型推理 worker,并且可以从任何支持 Durable Object 的服务访问。


主要特性

  • Durable-Object 支持的持久性 – Durable Object 中的 SQLite 保证强一致性和自动复制。
  • 可插拔执行后端 – 在完整的 Linux 容器、轻量级 Bash shell 或 JavaScript 模块之间选择,全部使用相同的文件系统表面。
  • FUSE 风格挂载 – 容器后端将虚拟文件系统呈现为真实挂载,让任何 Linux 二进制文件都可以操作它。
  • 结构化 RPC – Durable Object 和容器守护进程之间的通信使用 Cap'n-Proto-over-WebSocket 协议(@cloudflare/computer-rpc)。
  • 对 AI 代理示例的一流支持 – 该仓库附带许多可运行的演示(例如一次性 pi 代理、TanStack AI 聊天循环、PDF 生成教程),展示典型的代理工作流程。
  • 经过性能测试 – 基准测试显示 FUSE 挂载在元数据密集型工作负载上优于真实磁盘。

典型用例

  1. 代理工具执行 – LLM 驱动的代理可以要求 workspace 运行 git clone、编译代码或调用 pandoc 将 markdown 转换为 PDF,全部通过容器后端。
  2. RAG 风格数据管道 – 存储获取的网页内容,运行文本处理脚本,并将清理后的数据反馈给模型,全部在同一个 Durable Object workspace 中。
  3. 多运行时实验 – 使用 think-compare-runtimes 示例比较任务在容器、Bash worker 和 JavaScript worker 中的运行情况。
  4. 工件发布 – 在 workspace 内生成项目,并使用 artifacts 示例将其发布到 Cloudflare Artifacts。

成熟度与稳定性

  • 顶级 @cloudflare/computer 包的核心 API 标记为稳定,但容器和worker-shell 后端仍为实验性,不建议用于生产。
  • 底层 @cloudflare/dofs(Durable Object FS)是稳定的。
  • 详细的状态表位于 packages/computer/README.md#status。

开始使用

  1. 安装包:
    npm i @cloudflare/computer
    
  2. 按照包特定的 README(packages/computer/README.md)进行:
    • 设置创建 Workspace 的 Durable Object。
    • 选择后端并调用 workspace.runtime.exec。
    • 运行提供的示例(npm run build:types && npm run dev:example/<name>)。
  3. 对于快速演示,尝试教程示例,它构建一个单一端点,写入 markdown 配方,在容器中运行 pandoc,并返回 PDF。

文档与资源

  • 设计规范 – docs/(前瞻性,仅意图)。
  • 性能数据 – docs/19_performance.md。
  • 示例 – 参见 examples/ 文件夹;每个子文件夹都有自己的 README。
  • 贡献指南 – CONTRIBUTING.md、COLLABORATORS.md。

许可证

MIT。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目