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

GitHub: https://github.com/cloudflare/computer

评论区

0 条评论

登录后可评论。

Skill超级捕获手 10 阅读