当前位置: 首页 > news >正文

给 AI Agent 装一台虚拟电脑:Cloudflare Computer 实战解析

当你的 Agent 不再只是"调用 API",而是能真正跑命令、写文件、编译代码——这就是 Cloudflare Computer 在做的事。
读完本文你将了解:操作步骤 | 技术原理 | 架构设计 | 适用场景

🎯 这个项目解决什么问题?

AI Agent 开发中最痛的瓶颈之一:Agent 缺乏持久化的执行环境。
现有的方案要么用临时 sandbox(每次重新创建,状态全丢),要么用 API 调用(只能调外部服务,无法在环境里操作)。Agent 像一个没有桌子的工程师——脑子里有想法,但连把扳手都摸不到。
Cloudflare Computer 给出的答案是:把文件系统 + 执行环境打包进 Durable Object,天然持久化。Agent 写进去的文件,下次对话还在;执行的脚本结果,跨 session 可查。这不是"给 Agent 加一个 API 调用能力",而是给 Agent 一台真正的电脑

🔧 快速上手

Cloudflare Computer 目前处于 PREVIEW 阶段。要跑通第一个示例,你需要:

  1. Cloudflare 账号 + Workers 配额(免费套餐即可)
  2. Wrangler CLInpm i -g wrangler
  3. 一个空的 Workers 项目作为实验环境

Step 1:安装 Computer 包

npminstall@cloudflare/computer

Step 2:创建带 Workspace 的 Worker

import{Workspace}from"@cloudflare/computer";exportdefault{asyncfetch(request,env){constworkspace=newWorkspace({storage:env.MY_DO,// Durable Object storage handle});// 写文件到持久化 VFSawaitworkspace.fs.writeFile("/workspace/hello.txt","Hello, persistent Agent!");// 读取刚写入的文件constcontent=awaitworkspace.fs.readFile("/workspace/hello.txt","utf8");returnnewResponse(`Read back:${content}`);},};

Step 3:配置 wrangler.toml

name = "computer-demo" main = "src/index.ts" [[durable_objects.bindings]] name = "MY_DO" class_name = "MyDO"

Step 4:用 runtime.exec 执行命令

// 使用 container 后端执行 shell 命令consthandle=awaitworkspace.runtime.exec("npm init -y",{backend:"container-shell",cwd:"/workspace",});constresult=awaithandle.result();console.log(result.stdout);

这一步的关键在于backend参数——它决定了你用的是哪个执行表面:

  • container-shell:完整 Linux 用户空间,跑真实命令
  • worker-shell:轻量 shell(just-bash),在 Dynamic Worker 中运行
  • worker-javascript:纯 JavaScript 模块,无 shell

为什么分三种后端?因为性能差几个数量级。npm test需要完整容器,但ls -la用 Worker 就够了——选错后端,钱就花出去了。

⚙️ 技术原理

Cloudflare Computer 的核心设计可以拆成三层:VFS 层、同步协议层、执行层

第一层:SQLite VFS(虚拟文件系统)

所有文件数据存在Durable Object 的 SQLite 存储中。这是整个架构的权威数据源
每个文件被切分成 512KB 的 chunk,每个 chunk 按内容哈希后存入 blob store。同内容只存一份——三个项目都用同一个lodash.min.js,磁盘上只有一个副本。这就是 content-addressed 存储的威力。
写文件时,只有变更的 chunk 被同步回 DO。这比"整个文件重传"省了几倍的带宽和存储。

第二层:同步协议

Container 和 DO 之间通过capnweb RPC保持同步。同步流程:

push → spawn → events/result → pull
  • push:把 DO 侧的变更推到容器
  • spawn:启动命令执行
  • events/result:收集执行结果
  • pull:把容器的文件变更拉回 DO
    worker-shell后端跳过 push/pull(它直接读共享存储),所以零同步开销。

第三层:三大执行后端

capnweb RPC 同步

Workers RPC

Workers RPC

Durable Object
SQLite VFS(权威状态)

workspace.runtime.exec

Container 后端

Worker Shell 后端

Worker JavaScript 后端

computerd FUSE Mount

真实 Linux 环境
完整 userland

just-bash 在 Dynamic Worker
通过 Workers RPC 访问 VFS

ECMAScript 模块
直接运行在 Worker 中

性能关键数字(来自官方基准测试):

操作类型Container (FUSE)tmpfs 对比ext4 磁盘对比
stat 1000 个文件1972ms1.49x0.91x
rm 1000 个文件828ms2.56x0.66x
mkdir tree (10³)1598ms1.01x0.74x
find tree1814ms1.00x0.72x
npm init + tiny install599ms0.95x0.95x
完整 npm install (854 包)124.7s3.6x1.9x
解读:元数据密集型操作(stat/rm/find/git)FUSE 比真实磁盘还快——这是 DO 内存 inode store 的红利。但大文件顺序 I/O(64MB 读/写/复制)慢 20-40 倍,这是 content-addressed 写路径(每 chunk 都要哈希 + blob store)的代价。
对实际开发的影响npm install整体差 1.9x,但开发时 90% 的操作是"找文件、读配置、跑测试"——这些都落在 FUSE 优势区间。只有"打包 50MB 的 vendor 目录"才会暴露瓶颈。

执行流程序列

Container (computerd)runtime.execSQLite VFSDurable ObjectClientContainer (computerd)runtime.execSQLite VFSDurable ObjectClientworkspace.runtime.exec("npm test", {backend})解析 backend IDcapnweb RPC 推送上下文FUSE 挂载 DO 侧 VFS命令输出(events stream)执行结果拉取变更(pull)

🏗️ 架构分析

Cloudflare Computer 是一个小精悍的 monorepo,四个核心包各司其职:

@cloudflare/dofs
Durable Object VFS

@cloudflare/computer-rpc
capnweb wire types

@cloudflare/computerd
FUSE mount daemon

@cloudflare/computer
顶层 API + 后端管理

Container Backend

Worker Shell Backend

Worker JavaScript Backend

  • dofs:VFS 核心。SQLite schema、inode 管理、同步协议、Node.js @platformatic/vfs provider
  • rpc:capnweb wire 类型和 server/client 辅助函数
  • computerd:在 container 内运行的 daemon,FUSE mount + HTTP/WebSocket RPC server
  • computer:顶层 API,Durable Object 的入口

为什么不用现成的 Sandbox SDK?

Cloudflare 已有cloudflare/sandbox-sdk,为什么还要做 Computer?答案在设计文档里写得很清楚:
Sandbox SDK 的问题是:每次创建都是全新的容器,状态不持久。Computer 把文件系统搬到 DO 层,天然跨 session 持久化。这是架构层面的根本差异,不是优化问题。

✅ 优缺点 & 适用场景

优势

  • 天然持久化:DO 生命周期内的文件系统状态永久保存,跨 session 可用
  • Content-addressed 存储:同内容去重,节省存储和带宽
  • 元数据操作快于磁盘:FUSE 的 inode cache 在 stat/rm/find 场景下碾压 ext4
  • 多后端路由:不同任务选不同执行表面,性能成本可控
  • Cloudflare 生态整合:与 Workers AI、Think、Artifacts 深度集成

劣势

  • PREVIEW 状态:API 不稳定,不适合生产
  • 大文件 I/O 瓶颈:64MB 读写慢 20-40 倍,打包/构建场景不友好
  • 仅 Cloudflare 平台:依赖 Workers + Containers,跨平台迁移成本高
  • 不接受外部 PR:贡献路径受限

适用场景

  • ✅ AI Agent 开发沙箱(持久化状态、跨 session 上下文)
  • ✅ 自动化 Pipeline(跑测试、build、CI 任务)
  • ✅ 文档/代码分析 Agent(读文件、生成报告、持久化结果)
  • ❌ 需要完整 GPU 的 ML 训练任务
  • ❌ 大文件视频/图像处理
  • ❌ 跨云厂商的 Agent 平台

总结

Cloudflare Computer 不是又一个 sandbox——它是把文件系统和执行环境搬进 Durable Object的一次架构实验。它的价值不在"跑得更快",而在"跑完还能留着"。
对于 AI Agent 领域,这个方向的意义可能比技术细节本身更大:当 Agent 拥有了持久的"工作区",它就不再是"一问一答"的对话工具,而是真正能在环境里工作的协作者。这就是从"API 调用者"到"有桌子的工程师"的跨越。
当然,PREVIEW 状态说明它还远不够成熟。但方向对了——让 Agent 拥有真正的计算环境,是这个赛道终局形态的必经之路。

http://www.jsqmd.com/news/1365367/

相关文章:

  • 佛山机房拆除回收正规公司怎么找:2026资质核验与合规指南 - 广东再生资源回收
  • 基于OCR与目标检测的本地化石碑识别系统构建指南
  • Thorium Reader深度解析:如何高效解决LCPL文件加载崩溃问题
  • 广州雨季高空与吊装施工:设备租赁与现场作业管控要点 - 余生黄金回收
  • Windows Sysinternals工具集:系统管理与安全分析实战指南
  • Java后端字符串清洗实战:处理特殊字符与编码问题的健壮方案
  • LangChain入门指南:从核心组件到RAG应用实战
  • 3分钟掌握Dell G15散热控制终极指南:开源温度监控与风扇管理方案
  • 2026年7月锦州市二手房价格深度分析报告
  • 用 AI 工具提升刷题效率实验报告 最佳实践指南
  • FDE前沿部署工程师:连接研发与生产的实战专家
  • 深圳电缆回收哪家好:2026正规商家测评推荐 - 广东再生资源回收
  • 酒店OA系统推荐:重点看审批流转、合同管理与系统边界 - 数字化办公观察
  • 基于libhv的HTTP大文件分块传输:原理、实现与性能优化
  • GB28181视频监控平台运维优化与质量诊断实践
  • Windows系统部署OpenClaw全流程指南:从环境配置到避坑实战
  • 2026广州吊车租赁选型计价避坑 实体店实操指南 - 余生黄金回收
  • 2026年7月太原市二手房价格深度分析报告
  • 将旧电脑变身高性能游戏串流服务器的完整指南
  • 5分钟掌握Scarab:让空洞骑士模组管理变得前所未有的简单
  • 科颜氏B5贴牌定制,拿样品跟车间大货对不上?看完这篇再下单
  • Godot 4沙盒游戏AI社交系统:多智能体与效用决策实战
  • 终极指南:深度解析RTL8852BE Wi-Fi 6驱动架构与实战优化
  • 如何5分钟完成Switch大气层系统安装:新手终极指南
  • Agent day3
  • Ctrl+C 都关不掉?一个 except 惹的祸
  • 终极SOCD清洁工具Hitboxer:彻底解决游戏输入冲突的免费开源方案
  • 长沙望城正规黄金奢侈品回收门店** 避坑指南 - 小仙贝贝
  • 2026深圳黄金回收市场观察:联动水贝产业,教你辨别合规回收交易 - 二奢分享官
  • 本地部署大模型,从模型卡估算本地显存