编程 @cloudflare/computer 深度拆解:当 Cloudflare 决定「给每个 AI Agent 造一台电脑」——从 Durable Objects 到 SQLite 虚拟文件系统,一个 MIT 开源项目如何用 10GB 持久工作区重新定义 Agent 运行时的终极形态

2026-08-05 10:17:27

@cloudflare/computer 深度拆解:当 Cloudflare 决定「给每个 AI Agent 造一台电脑」——从 Durable Objects 到 SQLite 虚拟文件系统,一个 MIT 开源项目如何用 10GB 持久工作区重新定义 Agent 运行时的终极形态

一句话总结:Cloudflare 于 2026 年 8 月 3 日发布 @cloudflare/computer 早期预览版,为每个 AI 智能体提供基于 Durable Objects + SQLite 的持久工作区,三种执行后端(Worker Isolate / Worker Shell / Container)共享同一套文件系统,MIT 许可证开源,当前 npm 版本 0.1.1。这不是一台远程桌面云电脑——它是一间给智能体使用的持久工作室。

一、为什么 AI Agent 需要一台「电脑」?

1.1 从聊天到编程:AI Agent 的范式转移

2024 年,AI 还在聊天框里回答问题。2025 年,AI 开始写代码。2026 年,AI Agent 要自己读代码、改文件、跑测试、看结果、再改——完成一个完整的开发循环。

这不是科幻。Claude Code、Cursor、Codex、OpenCode 这些工具已经在做这件事了。但它们有一个共同的痛点:Agent 需要一个持久的工作环境来保存中间状态

传统的解决方案是什么?给每个 Agent 分配一个 Docker 容器。容器提供隔离的 Linux 环境、文件系统、命令执行能力。听起来很完美,但问题来了:

1个用户 × 1个Agent × 1个容器 = 1个容器
100万用户 × 1个Agent × 1个容器 = 100万个容器
10亿用户 × 1个Agent × 1个容器 = 10亿个容器 ← 崩了

容器的 CPU 和内存开销是实打实的。当你的平台需要同时运行数亿个 AI Agent 时,为每个 Agent 配置一个完整容器的模式就彻底不work了。

1.2 Cloudflare 的答案:Isolate + Workspace

Cloudflare 的思路完全不同。他们不给你一台完整的电脑,而是给你一间工作室

  • 工作区(Workspace):用 SQLite 存储的虚拟文件系统,文件持久化在 Durable Objects 中,重启不丢失
  • 执行环境:按需选择——轻量任务用 Worker Isolate(毫秒级启动),重负载用 Container(完整 Linux)
  • 统一接口:无论哪种执行环境,都操作同一套工作区文件

这个设计的精妙之处在于:工作区是持久的,执行环境是临时的。就像你在办公室有一张固定的桌子(工作区),但你可以选择用计算器(Isolate)或者工作站(Container)来完成不同的任务。

二、架构深度拆解

2.1 核心组件关系图

┌─────────────────────────────────────────────────┐
│                  @cloudflare/computer            │
├─────────────────────────────────────────────────┤
│                                                   │
│  ┌──────────────┐    ┌──────────────┐            │
│  │   Workspace   │◄──►│    Tools     │            │
│  │  (SQLite +    │    │  read/write  │            │
│  │  Durable Obj) │    │  edit/ls/exec│            │
│  └──────┬───────┘    └──────────────┘            │
│         │                                         │
│         ▼                                         │
│  ┌──────────────────────────────────────┐        │
│  │          Execution Backends           │        │
│  ├──────────┬──────────┬────────────────┤        │
│  │ Worker   │ Worker   │   Container    │        │
│  │   JS     │  Shell   │  (Full Linux)  │        │
│  │(ECMAScript│(just-   │  (FUSE mount)  │        │
│  │ modules) │  bash)   │                │        │
│  └──────────┴──────────┴────────────────┘        │
│                                                   │
│  ┌──────────────────────────────────────┐        │
│  │       Security & Observability       │        │
│  │  Permission Gates · Audit · Tracing  │        │
│  └──────────────────────────────────────┘        │
└─────────────────────────────────────────────────┘

2.2 Workspace:基于 SQLite 的虚拟文件系统

工作区是 @cloudflare/computer 的灵魂。它不是一个简单的文件存储,而是一个完整的虚拟文件系统:

存储层:运行在 Cloudflare Durable Objects 中。Durable Object 可以理解为带持久状态的 Worker 实例——它有自己独立的 SQLite 数据库,天然支持事务性操作。@cloudflare/computer 用 SQLite 作为文件系统的权威数据源,所以文件可以跨重启保留。

容量:每个工作区约 10GB,与对应 Durable Object 的存储配额共享。对于代码、文档和 Agent 任务产生的小型文件集合来说绰绰有余,但不适合搬入体积很大的单体仓库。

API:提供接近 node:fs/promises 的异步接口:

import { Workspace } from "@cloudflare/computer";

// 在 Durable Object 中初始化工作区
const workspace = new Workspace(ctx, env);

// 文件操作 —— 接近 node:fs/promises 的 API
await workspace.mkdir("/project/src");
await workspace.writeFile("/project/src/index.ts", `
import { createApp } from "./app";

const app = createApp();
app.listen(3000, () => {
  console.log("Server running on port 3000");
});
`);

// 列出目录内容
const files = await workspace.ls("/project/src");
console.log(files); // ["index.ts", "app.ts", "utils.ts"]

// 读取文件
const content = await workspace.readFile("/project/src/index.ts");
console.log(content);

// 搜索文本
const results = await workspace.grep("createApp", "/project/src");

Git 集成:工作区内置 Git 客户端,可以克隆仓库、暂存改动和提交版本:

// 克隆一个 Git 仓库到工作区
await workspace.git.clone("https://github.com/user/repo.git", "/project");

// 查看变更
const status = await workspace.git.status("/project");
console.log(status); // { modified: ["src/index.ts"], untracked: ["new-file.ts"] }

// 暂存并提交
await workspace.git.add("/project", ["src/index.ts"]);
await workspace.git.commit("/project", "feat: add new endpoint");

// 推送
await workspace.git.push("/project", "origin", "main");

R2 集成:工作区还可以挂载 R2 存储桶中的只读文件,适合读取大型数据集或静态资源:

// 挂载 R2 桶为只读目录
await workspace.mountR2("/data", "my-bucket", { readOnly: true });

// 现在可以像读本地文件一样读取 R2 中的文件
const dataset = await workspace.readFile("/data/training-set.jsonl");

2.3 三种执行后端:各司其职

@cloudflare/computer 提供三种执行后端,开发者可以按任务选择,也可以在一个工作区中同时注册多个后端。

2.3.1 Worker Shell 后端(just-bash)

这是最轻量的后端。它在 Dynamic Worker 中用 just-bash(一个将 Shell 代码转换为 JavaScript 的工具)执行 Shell 命令,不需要容器或 Docker:

import { Workspace, WorkerShell } from "@cloudflare/computer";

const workspace = new Workspace(ctx, env);
const shell = new WorkerShell(workspace);

// 执行 Shell 命令
const result = await shell.exec("ls -la /project/src");
console.log(result.stdout);

// 管道操作
const gitLog = await shell.exec("cd /project && git log --oneline -5");
console.log(gitLog.stdout);

// 文件处理
const wordCount = await shell.exec("wc -l /project/src/*.ts");
console.log(wordCount.stdout);

适用场景:文件整理、文本处理、Git 操作、常见的命令行任务。启动速度极快(毫秒级),因为不需要启动完整的 Linux 环境。

2.3.2 Worker JavaScript 后端

在新的 Dynamic Worker 中执行 ECMAScript 模块,可以使用结构化输入和输出:

import { Workspace, WorkerJS } from "@cloudflare/computer";

const workspace = new Workspace(ctx, env);
const jsWorker = new WorkerJS(workspace);

// 执行 JavaScript 代码
const result = await jsWorker.run(`
  const data = JSON.parse(await readFile("/data/config.json"));
  const processed = data.items.filter(item => item.active);
  await writeFile("/data/processed.json", JSON.stringify(processed, null, 2));
  return { count: processed.length };
`);

console.log(result); // { count: 42 }

适用场景:数据转换、JSON 处理、需要结构化输入输出的任务。同样无需容器,启动速度快。

2.3.3 Container 后端(完整 Linux)

提供完整的 Linux 用户空间,可以运行真实二进制文件、Node.js、npm 和需要联网的命令:

import { Workspace, Container } from "@cloudflare/computer";

const workspace = new Workspace(ctx, env);
const container = new Container(workspace);

// 安装依赖
await container.exec("npm install express cors dotenv");

// 运行测试
const testResult = await container.exec("npm test");
console.log(testResult.stdout);

// 编译 TypeScript
await container.exec("npx tsc --build");

// 运行编译后的代码
const output = await container.exec("node dist/index.js");

关键技术:FUSE 挂载

Container 后端的精妙之处在于 FUSE(用户态文件系统)挂载。工作区文件通过 FUSE 挂载到容器中,容器内的文件修改会自动同步回 SQLite 文件系统:

Container 内部视角:
/project/src/index.ts  ← 这是一个 FUSE 挂载点
/project/node_modules/ ← 这也是
/data/config.json      ← 这还是

实际存储:
SQLite (Durable Object) ← 所有文件的真实归属地

这意味着:

  • 轻量任务在 Worker Isolate 中完成(毫秒启动)
  • 重负载任务交给 Container(完整 Linux)
  • 无论在哪个环境操作,文件都是同一份

2.3.4 智能路由:让 AI 自己选后端

开发者可以在给 AI Agent 的工具描述中解释每个后端适合什么任务,让 AI 模型自己决定用哪个:

const tools = [
  {
    name: "exec_light",
    description: "执行轻量级 Shell 命令,适合文件操作、文本处理、Git 命令。启动快,无 Docker 依赖。",
    handler: (cmd) => shell.exec(cmd)
  },
  {
    name: "exec_full",
    description: "执行完整 Linux 命令,适合 npm install、编译、运行测试、启动服务。需要完整环境。",
    handler: (cmd) => container.exec(cmd)
  }
];

// AI 模型会根据工具描述自动选择:
// "git status" → exec_light(轻量)
// "npm test" → exec_full(需要完整环境)

2.4 安全与可观测性

这是 @cloudflare/computer 区别于「直接给 Agent 一个 Shell」的关键设计。

权限门控:可以限制 Agent 能读什么、能改什么:

const workspace = new Workspace(ctx, env, {
  permissions: {
    // 只允许读取特定目录
    read: ["/project/src", "/project/tests"],
    // 只允许写入特定目录
    write: ["/project/src"],
    // 禁止执行危险命令
    denyExec: ["rm -rf", "chmod 777", "sudo"],
    // 限制单次读取的字节数
    maxReadBytes: 1024 * 1024, // 1MB
    // 限制单次读取的行数
    maxReadLines: 1000
  }
});

审计日志:所有工作区操作都会被记录,方便事后复核:

// 查看 Agent 的操作历史
const auditLog = await workspace.getAuditLog({
  since: "2026-08-03T00:00:00Z",
  limit: 100
});

// 输出示例:
// [
//   { timestamp: "2026-08-03T10:15:32Z", action: "read", path: "/project/src/index.ts", agent: "claude-sonnet" },
//   { timestamp: "2026-08-03T10:15:35Z", action: "write", path: "/project/src/index.ts", agent: "claude-sonnet", bytes: 2048 },
//   { timestamp: "2026-08-03T10:15:40Z", action: "exec", command: "npm test", agent: "claude-sonnet", exitCode: 0 }
// ]

观测性:集成 OpenTelemetry,可以追踪 Agent 的完整执行链路:

import { Workspace } from "@cloudflare/computer";

const workspace = new Workspace(ctx, env, {
  tracing: {
    enabled: true,
    exporter: "otlp", // OpenTelemetry 标准
    endpoint: "https://otel.example.com/v1/traces"
  }
});

// 每个操作都会自动产生 trace span
// 可以在 Jaeger/Zipkin/Grafana Tempo 中查看

三、代码实战:从零搭建 Agent 工作区

3.1 项目初始化

# 创建项目
mkdir my-agent-workspace && cd my-agent-workspace
npm init -y

# 安装 @cloudflare/computer
npm install @cloudflare/computer

# 安装 Wrangler(Cloudflare CLI)
npm install -D wrangler

3.2 配置 wrangler.toml

name = "agent-workspace"
main = "src/index.ts"
compatibility_date = "2026-08-03"
compatibility_flags = ["nodejs_compat", "experimental"]

# Durable Objects 配置
[durable_objects]
bindings = [
  { name = "WORKSPACE", class_name = "AgentWorkspace" }
]

# Container 后端配置(可选)
[containers]
image = "node:20-slim"

3.3 实现 Durable Object

// src/index.ts
import { DurableObject } from "cloudflare:workers";
import { Workspace, WorkerShell, Container } from "@cloudflare/computer";

export class AgentWorkspace extends DurableObject {
  private workspace: Workspace;
  private shell: WorkerShell;
  private container: Container;

  constructor(ctx: DurableObjectState, env: Env) {
    super(ctx, env);
    
    // 初始化工作区
    this.workspace = new Workspace(ctx, env);
    
    // 初始化执行后端
    this.shell = new WorkerShell(this.workspace);
    this.container = new Container(this.workspace);
  }

  // Agent 执行命令的入口
  async execCommand(command: string, backend: "shell" | "container" = "shell") {
    if (backend === "container") {
      return await this.container.exec(command);
    }
    return await this.shell.exec(command);
  }

  // Agent 读取文件
  async readFile(path: string) {
    return await this.workspace.readFile(path);
  }

  // Agent 写入文件
  async writeFile(path: string, content: string) {
    return await this.workspace.writeFile(path, content);
  }

  // Agent 列出目录
  async listDir(path: string) {
    return await this.workspace.ls(path);
  }

  // 初始化项目模板
  async initProject(template: string) {
    if (template === "node-express") {
      await this.container.exec("npx create-express-app /project");
    } else if (template === "nextjs") {
      await this.container.exec("npx create-next-app /project");
    }
    return { success: true, path: "/project" };
  }
}

// Worker 入口
export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const url = new URL(request.url);
    
    if (url.pathname === "/api/agent/exec") {
      const { command, backend } = await request.json();
      
      // 获取或创建 Durable Object
      const id = env.WORKSPACE.idFromName("default-agent");
      const stub = env.WORKSPACE.get(id);
      
      const result = await stub.execCommand(command, backend);
      return Response.json(result);
    }
    
    return new Response("Agent Workspace API", { status: 200 });
  }
};

3.4 AI Agent 集成示例

// src/agent-integration.ts
import { Workspace } from "@cloudflare/computer";

// 定义 Agent 工具
function createAgentTools(workspace: Workspace) {
  return [
    {
      name: "read_file",
      description: "读取工作区中的文件内容",
      parameters: {
        path: { type: "string", description: "文件路径" }
      },
      handler: async ({ path }: { path: string }) => {
        return await workspace.readFile(path);
      }
    },
    {
      name: "write_file",
      description: "将内容写入工作区文件",
      parameters: {
        path: { type: "string", description: "文件路径" },
        content: { type: "string", description: "文件内容" }
      },
      handler: async ({ path, content }: { path: string; content: string }) => {
        await workspace.writeFile(path, content);
        return { success: true };
      }
    },
    {
      name: "edit_file",
      description: "编辑文件中的特定内容",
      parameters: {
        path: { type: "string", description: "文件路径" },
        oldText: { type: "string", description: "要替换的文本" },
        newText: { type: "string", description: "替换后的文本" }
      },
      handler: async ({ path, oldText, newText }: any) => {
        const content = await workspace.readFile(path);
        const updated = content.replace(oldText, newText);
        await workspace.writeFile(path, updated);
        return { success: true };
      }
    },
    {
      name: "list_directory",
      description: "列出目录中的文件",
      parameters: {
        path: { type: "string", description: "目录路径" }
      },
      handler: async ({ path }: { path: string }) => {
        return await workspace.ls(path);
      }
    },
    {
      name: "run_command",
      description: "执行 Shell 命令(轻量任务用 shell,需要完整环境用 container)",
      parameters: {
        command: { type: "string", description: "要执行的命令" },
        backend: { type: "string", enum: ["shell", "container"], description: "执行后端" }
      },
      handler: async ({ command, backend }: { command: string; backend: string }) => {
        if (backend === "container") {
          const container = new Container(workspace);
          return await container.exec(command);
        }
        const shell = new WorkerShell(workspace);
        return await shell.exec(command);
      }
    }
  ];
}

3.5 完整的 Agent 开发循环

// Agent 自主开发流程示例
async function agentDevelopmentCycle(workspace: Workspace) {
  // 1. 克隆项目
  console.log("📥 Step 1: 克隆项目...");
  await workspace.git.clone("https://github.com/user/my-app.git", "/project");
  
  // 2. 读取代码
  console.log("📖 Step 2: 分析代码...");
  const readme = await workspace.readFile("/project/README.md");
  const packageJson = await workspace.readFile("/project/package.json");
  
  // 3. 安装依赖(需要完整 Linux 环境)
  console.log("📦 Step 3: 安装依赖...");
  const container = new Container(workspace);
  await container.exec("cd /project && npm install");
  
  // 4. 运行测试,了解当前状态
  console.log("🧪 Step 4: 运行测试...");
  const testResult = await container.exec("cd /project && npm test");
  console.log("测试结果:", testResult.stdout);
  
  // 5. 修改代码
  console.log("✏️ Step 5: 修改代码...");
  const indexContent = await workspace.readFile("/project/src/index.ts");
  const updatedContent = indexContent.replace(
    "app.get('/')",
    "app.get('/api/health', (req, res) => res.json({ status: 'ok' }));\n  app.get('/')"
  );
  await workspace.writeFile("/project/src/index.ts", updatedContent);
  
  // 6. 再次测试
  console.log("🧪 Step 6: 验证修改...");
  const newTestResult = await container.exec("cd /project && npm test");
  console.log("新测试结果:", newTestResult.stdout);
  
  // 7. 提交并推送
  console.log("📤 Step 7: 提交并推送...");
  await workspace.git.add("/project", ["src/index.ts"]);
  await workspace.git.commit("/project", "feat: add health check endpoint");
  await workspace.git.push("/project", "origin", "main");
  
  console.log("✅ 开发循环完成!");
}

四、与竞品对比:Agent 运行时格局

4.1 容器方案 vs @cloudflare/computer

特性Docker 容器@cloudflare/computer
启动时间5-30 秒毫秒级(Isolate)/ 秒级(Container)
内存开销50-500MB/容器近零(Isolate)/ 按需(Container)
文件持久化需要 Volume 挂载SQLite 原生持久化
成本按容器实例计费按请求计费,空闲不收费
扩展性受限于主机资源全球边缘网络
安全隔离Namespace + CgroupDurable Object 隔离
适用规模数百到数千数百万到数十亿

4.2 与 E2B、Modal 等 Agent 沙箱的对比

E2B:提供云端沙箱环境,专注 AI 代码执行。优势是开箱即用,劣势是需要维护长期运行的沙箱实例。

Modal:提供 GPU 加速的 serverless 容器。优势是 GPU 支持,劣势是成本较高,启动时间较长。

@cloudflare/computer:优势在于极低的边际成本(Isolate 几乎免费)、持久化的工作区、以及三种后端的灵活组合。劣势是当前仍是 Preview 阶段,API 可能变化。

4.3 与 Cloudflare 自家方案的对比

Cloudflare 之前已经有 Workers(Serverless 函数)、Durable Objects(有状态对象)、Containers(完整 Linux 容器)。@cloudflare/computer 不是替代品,而是胶水层——它把这些底层能力组合成一个对 AI Agent 友好的高级接口。

之前: Workers + Durable Objects + Containers → 开发者需要自己组装
现在: @cloudflare/computer → 开箱即用的 Agent 运行时

五、性能分析与成本估算

5.1 性能基准

Worker Shell 后端

  • 冷启动:< 10ms
  • 命令执行延迟:< 50ms(简单命令)
  • 吞吐量:> 1000 ops/sec

Container 后端

  • 冷启动:2-5 秒(首次)/ < 500ms(热启动)
  • 命令执行延迟:取决于命令本身
  • FUSE 同步延迟:< 100ms

文件系统操作

  • 小文件读写:< 10ms
  • 大文件(> 1MB):取决于文件大小
  • 目录列表:< 5ms

5.2 成本估算

Cloudflare Workers 的定价模型对 Agent 场景非常友好:

免费额度(每日):
- 10 万次请求
- 10ms CPU 时间/请求
- 128MB 内存/请求

付费计划($5/月起):
- $0.30 / 百万次请求
- $0.02 / 百万 ms CPU 时间
- $0.12 / 百万 GB-s 内存

典型 Agent 工作场景成本估算

假设一个 Agent 完成一次代码审查任务:

  • 读取 10 个文件:10 次请求
  • 执行 3 个命令:3 次请求
  • 写入 2 个文件:2 次请求
  • 总计:15 次请求 × $0.30/百万 = 几乎为零

对比容器方案(假设每个容器 $0.05/小时):

  • 如果 Agent 每天运行 2 小时:$0.10/天 = $3/月
  • 如果 100 个 Agent:$300/月

@cloudflare/computer 的成本优势在规模化时尤为明显

5.3 10GB 限制的实际影响

每个工作区约 10GB,这对于大多数 Agent 场景足够了:

  • 典型 Node.js 项目(含 node_modules):500MB-2GB
  • Python 项目(含虚拟环境):200MB-1GB
  • 大型 monorepo:可能需要拆分

对于超大型项目,可以考虑:

  1. 只克隆需要的子目录
  2. 使用 .gitignore 排除不必要的文件
  3. 挂载 R2 桶存储大型数据集

六、生态与社区

6.1 Cloudflare 的 Agent 生态布局

@cloudflare/computer 不是孤立的产品,而是 Cloudflare 整个 Agent 生态的一块拼图:

Cloudflare Agent 生态:
├── Workers AI        → AI 推理(本地运行模型)
├── AI Gateway        → AI 代理网关(路由、缓存、限流)
├── Vectorize         → 向量数据库(RAG 检索)
├── Durable Objects   → 有状态存储
├── Containers        → 完整 Linux 环境
├── @cloudflare/computer → Agent 运行时 ← 你在这里
├── Cloudflare Wallets → Agent 支付(虚拟钱包)
└── MCP Server        → 工具协议接入

6.2 与 AI SDK 的兼容

@cloudflare/computer 的工具封装兼容 Vercel AI SDK,这意味着你可以直接用现有的 AI 框架:

import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
import { createAgentTools } from "@cloudflare/computer";

const tools = createAgentTools(workspace);

const result = await generateText({
  model: openai("gpt-4o"),
  tools,
  prompt: "请在 /project 中创建一个简单的 REST API,包含 /api/users 端点"
});

// AI 会自动调用工具来完成任务
console.log(result.text);

七、局限性与展望

7.1 当前 Preview 阶段的限制

  1. API 可能变化:作为 0.1.x 版本,API 还不稳定
  2. Container FUSE 性能:大量安装 node_modules、解压大型归档或持续读写大文件会比容器原生磁盘慢
  3. 存储限制:10GB 工作区上限
  4. Region 限制:Durable Objects 目前在特定区域可用

7.2 未来可能的演进方向

  1. GPU 支持:为 AI 推理任务提供 GPU 加速的执行后端
  2. 多 Agent 协作:多个 Agent 共享同一工作区的协作编辑
  3. 快照与恢复:工作区状态的快照、分支和回滚
  4. Marketplace:预配置的工作区模板市场
  5. 与 Workers AI 深度集成:在工作区内直接运行本地 AI 模型

7.3 对行业的潜在影响

@cloudflare/computer 可能改变 AI Agent 的部署方式:

之前:每个 Agent 需要一个完整的服务器/容器 → 成本高、扩展难
之后:Agent 运行在边缘网络的 Isolate 中 → 成本低、全球扩展

这意味着:

  • 独立开发者可以低成本构建和分发 AI Agent
  • 企业可以为每个员工部署个性化 AI 助手
  • AI Agent 可以像网页一样在全球范围内即时部署

八、总结

@cloudflare/computer 代表了 AI Agent 基础设施的一个新方向:用边缘计算的思路解决 Agent 的运行环境问题

它的核心洞察是:

  1. Agent 需要持久的工作区,但不需要持久的计算环境
  2. 轻量任务应该在毫秒级 Isolate 中完成,而不是秒级容器
  3. 安全和可观测性应该是 Agent 运行时的一等公民

当前 0.1.1 版本还很早期,适合实验和原型开发。但它的架构方向是对的——当 AI Agent 成为互联网的一等公民时,它们需要的不是一台电脑,而是一间工作室

MIT 许可证、开源、兼容 AI SDK、10GB 持久工作区、三种执行后端——如果你正在构建 AI Agent 平台,@cloudflare/computer 值得关注。


项目信息

  • GitHub:github.com/cloudflare/computer
  • npm:@cloudflare/computer
  • 许可证:MIT
  • 当前版本:0.1.1(Early Preview)
  • 发布日期:2026-08-03

快速开始

npm install @cloudflare/computer

推荐文章

程序员茄子在线接单