Cloudflare Computer 指南:10 分钟给 AI Agent 一台持久化云工作区
【免费下载链接】computerGive your agent a computer 👾项目地址: https://gitcode.com/GitHub_Trending/computer1/computer
你的 Agent 在对话第五轮写了一份配置文件,第六轮就找不到了——大模型只是“大脑”,没有“硬盘”,中间产物随进程重启一起蒸发。Cloudflare Computer 这台 AI Agent 云计算机,把持久化虚拟文件系统放进 Cloudflare Durable Object(一种有状态、可休眠再恢复的云函数),再叠加可插拔的执行后端,让 Agent 既能读写文件,也能跑真实的git、npm、pandoc命令。
快速判断:它是架在 Durable Object 之上的持久化文件系统 + 可插拔执行沙箱,文件状态以 SQLite 为唯一可信源,适合需要给 AI Agent 配工作目录与命令执行能力的开发者;目前处于 PREVIEW 阶段,API 不稳定,官方明确不建议直接用于生产,且单个 Workspace 与 DO 共享约 10GB 存储,定位是 Agent 规模的工作区而非完整 monorepo。
最快启动:5 条命令跑起一个终端 Agent
前提:Node.js、wrangler(Cloudflare 账号),容器后端还需要 Docker。仓库自带一组可运行示例,从 examples/think/ 起步:
git clone https://gitcode.com/GitHub_Trending/computer1/computer cd computer && npm install cd examples/think npm run dev # 终端 1:wrangler dev 启动 Worker npm run chat # 终端 2:打开终端聊天 UI跑完你得到一个终端聊天界面:输入消息,Agent 自主调用文件与 shell 工具干活。每个--name是一个独立实例,拥有自己的 Workspace 和聊天历史。若要在自己的 Worker 上搭建,只需npm install @cloudflare/computer,然后在 Durable Object 里创建 Workspace——fs与runtime表面全异步、路径为绝对路径,风格接近fs/promises。
如何给 Agent 配持久化工作区:三项核心能力
重启不丢的文件系统(workspace.fs)
做什么:把全部文件状态写入 DO 的 SQLite 存储。你得到什么:writeFile、readFile(支持流式读取)、mkdir、readdir、rm、grep等操作,跨 DO 重启全部存活。典型用法:把中间产物、生成代码、聊天上下文落在/workspace;这棵目录树同时会挂载进沙箱容器,fs写入的文件exec立即可见,反之亦然。
一个入口,三种执行后端(workspace.runtime.exec)
做什么:exec(source, { backend })是唯一执行入口,按稳定 ID 路由,后端懒加载。这台 AI Agent 云计算机允许一个 Workspace 同时注册多个后端:
- container——沙箱容器 + FUSE 挂载,完整 Linux 用户态、真实二进制、可访问公网;
- worker shell——Dynamic Worker 里跑 just-bash,冷启动快,覆盖
grep/sed/jq等文本工具及内置git; - worker JavaScript——运行 ESM 模块,提供
node:fs/promises与ws:git/ws:artifacts模块。
也可以不挂任何后端,只把 Workspace 当纯文件系统用。典型用法:快速文本命令走 shell,需要真实二进制或网络时落 container。
一行接入 AI SDK 工具集(createAITools)
做什么:@cloudflare/computer/tools的createAITools()自带read/write/edit/ls/find/grep/delete,可选exec(命令执行)与publish(把产物发布成可分享链接)。你得到什么:内置分页、字节上限、行号、原子化批量编辑与统一 diff 返回,把 ToolSet 直接传给 AI SDK 或 Agent 框架即可。接口细节见 docs/09_tool_interface.md。
真实场景串讲:一台“有电脑”的聊天 Agent
以 examples/think/ 为主线。
做了什么:按“最快启动”一节跑完两条命令后,在终端输入一句消息,例如“在工作区建一个待办文件并加两项”。
发生了什么:Assistant 这个 Durable Object 经 WebSocket 收到消息,模型自主调用工具——read/ls查看工作区、write/edit落盘文件、exec执行命令;exec默认走快速的 worker shell,需要真实二进制时回落 container,首次使用时才按需创建。
得到什么:文件落在持久化 Workspace 中,聊天历史一并保存,重启后再连可以接着聊。
其余示例各一行:
- examples/tutorial/——单端点:Agent 在宿主写 Markdown 食谱卡,容器里跑
pandoc产出 PDF,返回 R2 签名链接 - examples/mcp/——把工作区、worker shell 与容器作为一个 MCP
code工具对外暴露 - examples/egress/——三种后端的网络出口策略(none/all/自定义)
- examples/think-compare-runtimes/——Web UI 里让同一任务在 container 与 worker 运行时并排执行
- examples/rlm/——生成的 JS 从 Workspace 读长上下文,并归约模型的有界结构化结果
机制与边界:同步怎么跑,性能到哪为止
核心机制有两个。第一,SQLite 是唯一可信源:文件系统的权威状态存在 DO 的 SQLite 里,DO 侧的虚拟文件系统由它支撑。第二,双向增量同步:容器内computerd守护进程把状态投影成/workspaceFUSE 挂载点;两侧变更各带单调递增的修订号,exec前 DO 把差异推给容器,exec返回后再把容器侧改动取回写进 SQLite;文件内容按 512 KiB 切块做内容哈希,只传输变化过的块。完整设计见 docs/02_sync_protocol.md。
PREVIEW 阶段提示:官方 README 明确标注本项目仅供预览与反馈,API 不稳定、设计可能变更;适合实验、探索与原型,目前不适合直接用于生产。
docs/中的规格是前瞻性设计,读它的意图而非把它当作现状描述。
官方基准(fs-bench+ 一次 854 包的完整npm install,数据见 docs/19_performance.md):
| 场景 | 结论 |
|---|---|
| 元数据操作(stat / rm / 目录树 / find / git init) | 内存 inode 表快于 ext4 磁盘,比值约 0.66x–0.74x(越低越快),stat 最高约 1.85 倍 |
| 64 MiB 大文件顺序读写 | 明显慢于磁盘与 tmpfs,纯读约慢 30 倍 |
完整npm install(854 包) | 124.7 s,约为 ext4 的 63.9 s 的 2 倍 |
| 容量 | 与 DO 共享约 10GB,容器侧文件系统驻留内存 |
边界由此清晰:适合Agent 规模的工作区——中间产物、小型仓库、聊天上下文、git 操作;不适合完整 monorepo、海量node_modules安装与大文件 IO 密集型任务。
仓库导览:从哪里读起
- docs/——19 篇设计文档:VFS 布局、同步协议、fs/runtime 接口、性能数据,理解设计意图的最佳入口
- packages/computer/——
@cloudflare/computer顶层包:Workspace 门面、fs/runtime 表面、R2 挂载、AI 工具 - packages/dofs/——Durable Object 上的 SQLite 虚拟文件系统与同步协议构件
- packages/computerd/——
computerd守护进程:容器内的 FUSE 挂载 + HTTP/WebSocket RPC 服务 - packages/rpc/——DO 与容器之间共享的 capnweb 线协议类型
- examples/——可运行示例集合,每个自带 README
下步的三条动作
- 今天(约 15 分钟):在装有 Docker 的机器上按“最快启动”一节跑起
examples/think,完成一轮“写文件 + 跑命令”的对话。 - 本周(约 1 小时):照着 examples/tutorial/ 的骨架写一个自己的单端点 Agent,走通“宿主写文件 → 容器跑
pandoc→ 返回签名链接”的完整链路。 - 接入正式项目前:依次读 docs/04_filesystem_interface.md、docs/05_runtime_interface.md 与 docs/19_performance.md,确认你的负载落在“元数据为主”的区间内,再决定选哪个后端组合。
【免费下载链接】computerGive your agent a computer 👾项目地址: https://gitcode.com/GitHub_Trending/computer1/computer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考