Cloudflare Computer Skill:让 AI Agent 拥有自己的虚拟文件系统
这个项目让 AI Agent 拥有了自己的虚拟文件系统——Cloudflare Computer 通过 Cloudflare Durable Objects 构建一个持久的虚拟文件系统,Agent 可以在其中读写文件、执行命令、保存状态,、まるで在一台真正的计算机上工作。它是今天 GitHub Trending 的热门项目之一(今日 +872 stars),来自 Cloudflare 官方团队。
功能与原则
Cloudflare Computer 是一个虚拟文件系统,运行在 Cloudflare Durable Object 内部。核心设计原则:
- 持久化状态:SQLite 作为权威状态存储,Durable Object 持有文件系统权威
- 多后端执行:支持 Container(完整 Linux 用户态 + FUSE 挂载)、Isolate Shell(just-bash)、Isolate JavaScript(ESM)三种执行后端
- 无状态协调:节点之间通过 S3 兼容存储桶协调,无需控制平面或共识协议
- Workspace 抽象:文件系统和运行时解耦,可独立使用
认可度
GitHub star:约 5,800(截至 2026-08-08)
今日新增:约 872 stars
GitHub Trending:今日上榜
开发者关注:292 Forks,活跃 Issues/PR
链接
GitHub:https://github.com/cloudflare/computer
原作者
Cloudflare(Cloudflare 官方团队)——全球领先的边缘计算和 CDN 平台
介绍
Cloudflare Computer 的核心是一个虚拟文件系统,它将 Durable Object 的 SQLite 状态通过 FUSE 挂载映射为真实文件系统,或者通过 Dynamic Worker 提供隔离执行环境。
项目支持三种运行时后端:
Container 后端:在沙箱容器中投影 SQLite 状态为真正的 FUSE 挂载点。本地守护进程(computerd)负责挂载、同步,并通过 capnweb RPC 与 Durable Object 通信。支持完整 Linux 用户态、真实二进制文件和真实网络访问。
Isolate Shell 后端:在 Dynamic Worker 中运行 just-bash,通过 Workers RPC 直接访问 Workspace 状态,无需二次存储或同步。
Isolate JavaScript 后端:在新鲜的 Dynamic Worker 中执行 ECMAScript 模块,具备结构化输入/输出、持久化相对导入、配置好的内置库,以及 Workspace 支持的 node:fs/promises。
workspace.runtime.exec(source, { backend }) 是统一的执行入口,选择的后端决定 source 是 shell 命令还是 ESM 模块。
特点
- Cloudflare 官方出品: Durable Objects + Workers 基础设施原生支撑
- 三种执行后端:Container(完整 Linux)、Shell、B JavaScript,按需切换
- 去中心化协调:通过 S3 存储桶协调,无单点控制平面
- 按需休眠:Idle cells 自动休眠,几乎不消耗资源
- Workspace API:统一文件系统和运行时抽象,支持多后端注册
- 开源 monorepo:dofs(SQLite VFS)、rpc(capnweb RPC)、computerd(Daemon)、computer(顶层包)清晰分层
使用方法
安装
# 安装 @cloudflare/computer 包
npm install @cloudflare/computer
基本使用示例
// Container 后端:完整 Linux 环境
import { Workspace } from '@cloudflare/computer';
const workspace = new Workspace({
runtime: { backend: 'container' }
});
// 写文件
await workspace.fs.write('/hello.txt', 'Hello from Cloudflare Computer!');
// 读取文件
const content = await workspace.fs.read('/hello.txt');
// 执行命令(Shell 后端)
const result = await workspace.runtime.exec('echo "hello"', { backend: 'isolate-shell' });
// JavaScript 执行
const jsResult = await workspace.runtime.exec(
'export default { answer: 42 }',
{ backend: 'isolate-javascript' }
);
部署 Worker
# 安装 wrangler(如未安装)
npm install -g wrangler
# 部署
wrangler deploy
使用场景与人群
适用场景:
- 为 AI Agent 提供持久化工作目录
- 构建云端代码执行沙箱(类似 GitHub Codespaces 但无服务器)
- 分布式 AI Agent 工作站,多节点协作同一文件系统状态
- 在 Cloudflare Workers 上运行 AI Agent 任务
目标用户:
- AI Agent 开发者,需要为 Agent 提供持久化文件系统
- 基础设施工程师,构建 Serverless AI 执行环境
- 需要在边缘计算平台部署 AI 工作流的团队
输入与输出案例
案例 1:虚拟文件系统操作
输入:
workspace.fs.mkdir('/project')
workspace.fs.write('/project/README.md', '# My Project')
workspace.fs.read('/project/README.md')
输出:
{
path: '/project/README.md',
content: '# My Projectn'
}
案例 2:跨后端执行
输入(Container 后端):
workspace.runtime.exec('ls -la /workspace', { backend: 'container' })
输出:
total 64
drwxr-xr-x 3 root root 4096 Aug 8 10:00 project/
-rw-r--r-- 1 root root 82 Aug 8 10:01 README.md
评论区
登录后可评论。