Cloudflare 发布 AI Agent 浏览器引擎 Kitesurf
Cloudflare 也发布了一个浏览器引擎:Kitesurf
做 Agent 和浏览器自动化的同学必看,Cloudflare 这套为 Agent 重写的无状态引擎把资源开销砍了 3-7 倍,还兼容 CDP 协议,赶紧评估下能不能替换你的 Chromium 实例。
Cloudflare 也发布了一个浏览器引擎:Kitesurf
Kitesurf 是专门为 AI Agent 设计的,完全运行在 Cloudflare Workers 的 V8 隔离环境之上,目前已集成进 Browser Run 产品、beta 期免费。 https://blog.cloudflare.com/kitesurf/
为什么需要"为 Agent 造一个浏览器"?
Chromium 等传统浏览器是为人类设计的,资源开销与 Agent 的实际需求严重错配。
人类需要的东西,Agent 都不在乎: · 标签页、主题、扩展、跨设备同步——Agent 只关心 token 数、上下文窗口、可扩展性和成本 · 60fps 流畅滚动、像素级渲染精度——Agent 只要能拿到结构化的机器可读内容,CSS 解析稍有偏差、渲染不完美都无所谓 · 威胁模型也不同——Agent 场景下,prompt injection(提示注入)和工具安全才是头等大事
而 Chromium 的内存和 CPU 开销大到"给每个 Agent 配一个实例在经济上不可行"。
Cloudflare 的论点是:这种高成本实际上把大半个 Web 锁在了少数高价大模型身后,让大量 Agent 应用跑不起来。Kitesurf 要解决的就是这个"Agent 浏览民主化"问题。
架构设计的四条原则
1. 测试先行,用测试驾驭 AI 编码 · 项目大量使用 AI 辅助开发,而控制 AI 产出质量的答案是"提供尽可能多的测试" · 用 WPT(Web Platform Tests) 作为 AI 的"明确球门柱"——一套现成的、规模庞大的 W3C 符合性标准,让 Agent 可以自行循环迭代、衡量进展,人类则专注架构和审查 · 但 WPT 只测标准符合性,不测真实网站,所以又叠加了集成测试 + 视觉回归测试:用 Puppeteer 脚本同时在 Chromium 和 Kitesurf 上跑真实网站的多步操作,逐步比对渲染输出
2. 尽量用原生 Rust 直接以 wasm-bindgen 编译到 WebAssembly,避免 Emscripten 那类多层模拟依赖导致的臃肿和缓慢
3. 异常处理是生存策略,不是代码卫生 浏览器必须消化"整个不可靠且时有敌意的 Web",规则只有一条:任何失败都降级为空白帧或缺失元素,绝不让整个会话崩溃。每个边界捕获故障、默认给安全的空值、记录足够诊断的日志
4. 隔离 + 无状态 · 假设每次页面加载都是不可信输入、每个会话从零开始,组件只获得其功能必需的资源 · 无状态意味着可丢弃、可并行:卡住就杀掉,一次跑一千个实例,按需求弹性伸缩——天然契合 Agent 负载的突发性(bursty)特征
架构设计三个核心组件
1. Engine(引擎) · 唯一对外组件,实现 CDP 的 WebSocket 和 REST API · 选 CDP 的关键收益是客户端兼容性:Puppeteer、Playwright、chrome-remote-interface,甚至真正的 Chrome DevTools 前端,指过来就能用 · 也是唯一持有会话状态的组件,其他全部无状态
2. PageScript(脚本执行) · 最能体现 Workers 新能力的部分:每个页面或跨进程 iframe(OOPIF)通过 Dynamic Workers 拉起一个长生命周期的隔离实例,内含干净的 globalThis 和 DOM 对象 · HTML/CSS 解析用的是 Blitz(Rust 写的模块化渲染引擎)和 Stylo(Firefox 的高性能 CSS 解析器) · 页面里的 JS/Wasm 在同一 isolate 内执行 · 一个有趣的妥协:Workers 出于安全不支持原生 eval,而另开 isolate 又访问不到 globalThis——于是团队用 Rust 写的 Boa JS(一个 ECMAScript 引擎)在 Workers 里再跑一层运行时来兜底 eval。
3. PageRenderer(渲染器) · 把 PageScript 计算出的页面对象(scene)光栅化成像素:取内部字体和图片 → 用 Blitz 的 blitz-paint 模块(配合 Parley 做字形整形、字体选择、断行)→ 输出 JPEG/PNG/PDF · Engine 通过 Workers 内置的 RPC 一次调用 renderFrame() 拿回 PNG;由于渲染器不持页面状态,任何卡住或失败的调用都可以安全杀掉重来——每次渲染请求自包含、可重试
实测数据: Kitesurf vs. Chromium
| CPU:截图 | 380 ms | 1,173 ms | 省 3.1 倍 |
|---|---|---|---|
| CPU:HTML 提取 | 229 ms | 877 ms | 省 3.8 倍 |
| 内存:截图 | 57.8 MiB | 271.0 MiB | 省 4.7 倍 |
| 内存:HTML 提取 | 39.4 MiB | 273.7 MiB | 省 7.0 倍 |
| 墙钟时间:截图 | 1,148 ms | 637 ms | 慢 1.8 倍 |
| 墙钟时间:HTML 提取 | 820 ms | 472 ms | 慢 1.7 倍 |
Kitesurf 用约 1.7-1.8 倍的速度代价,换来了 3-7 倍的 CPU/内存节省。Cloudflare 的逻辑是——CPU 和内存才是真正决定账单的东西,省内存意味着单机能跑更多会话、成本结构性下降。
兼容性方面,目前已通过 215,000+ 条 WPT 测试且每周新增数百条;对 Agent 最重要的部分(CSS、DOM、HTML、Selection、SVG、XHR)覆盖良好。能正确渲染 TodoMVC 全家桶(Vanilla/React/Vue/Angular/Preact)、Wikipedia、Hacker News、Cloudflare 博客和大部分自家 Dashboard。
边界与定位
❌ 视频播放、WebGL ❌ 需要真实 TLS 指纹的反机器人挑战握手 ❌ 需要持久状态的十分钟级认证会话
适用场景则是:能接受"非像素完美"渲染的 Agent 任务,以及一次性 Quick Action 类自动化(内容提取、生成 PDF/截图)。
一句话定位:一个短暂的、完全隔离的、无状态的引擎,只为任务存续期间存在,为突发型 AI 负载而伸缩。
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力