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 挂载在元数据密集型工作负载上优于真实磁盘。
典型用例
- 代理工具执行 – LLM 驱动的代理可以要求 workspace 运行
git clone、编译代码或调用pandoc将 markdown 转换为 PDF,全部通过容器后端。 - RAG 风格数据管道 – 存储获取的网页内容,运行文本处理脚本,并将清理后的数据反馈给模型,全部在同一个 Durable Object workspace 中。
- 多运行时实验 – 使用
think-compare-runtimes示例比较任务在容器、Bash worker 和 JavaScript worker 中的运行情况。 - 工件发布 – 在 workspace 内生成项目,并使用
artifacts示例将其发布到 Cloudflare Artifacts。
成熟度与稳定性
- 顶级
@cloudflare/computer包的核心 API 标记为稳定,但容器和worker-shell 后端仍为实验性,不建议用于生产。 - 底层
@cloudflare/dofs(Durable Object FS)是稳定的。 - 详细的状态表位于
packages/computer/README.md#status。
开始使用
- 安装包:
npm i @cloudflare/computer - 按照包特定的 README(
packages/computer/README.md)进行:- 设置创建 Workspace 的 Durable Object。
- 选择后端并调用
workspace.runtime.exec。 - 运行提供的示例(
npm run build:types && npm run dev:example/<name>)。
- 对于快速演示,尝试教程示例,它构建一个单一端点,写入 markdown 配方,在容器中运行
pandoc,并返回 PDF。
文档与资源
- 设计规范 –
docs/(前瞻性,仅意图)。 - 性能数据 –
docs/19_performance.md。 - 示例 – 参见
examples/文件夹;每个子文件夹都有自己的 README。 - 贡献指南 –
CONTRIBUTING.md、COLLABORATORS.md。
许可证
MIT。
相关
- 项目
- 项目
- 项目
- 项目
- 项目