Cloudflare宣布推出Kitesurf,这是一款完全运行在Workers平台之上的新型网页浏览器,专为人工智能代理和自动化应用设计。目前,Kitesurf在测试阶段可通过Browser Run免费使用,但设有账户级别的使用限制。
Cloudflare表示,Chromium等传统浏览器主要是围绕人类用户的需求构建的,因此包含模型和代理未必需要的功能与资源消耗。相比之下,Kitesurf侧重于机器可读内容、代码体积、上下文容量、可扩展性、性能和成本,同时接受在视觉渲染精度方面作出一些取舍。
专注于代理需求的浏览器
人工智能代理通常不需要标签页、视觉特性、扩展程序或跨设备同步,但需要提取HTML、截取屏幕截图,并以低成本大规模处理网页。当代理处理不受信任的页面和来源时,其安全需求也有所不同,因此提示注入和工具安全等风险成为优先事项。
Kitesurf的开发始于发布前12周,利用了Cloudflare开发者平台的多项进展,包括在Workers中运行WebAssembly日趋成熟、动态隔离环境、基于SQLite的Durable Objects、Workers之间的RPC机制、Service Bindings、Node.js兼容性的改进以及运行限制的提升。
隔离且无状态的架构
Kitesurf由三个主要组件组成:Engine、PageScript和PageRenderer。Engine是唯一面向公共网络的组件;它处理Chrome DevTools Protocol的HTTP REST和WebSocket接口,并保存会话状态。其余组件则尽可能保持无状态,从而能够在发生故障时重新启动或销毁,并根据需求进行扩展。
SandboxOutbound工作器负责所有与互联网的连接,而其他组件则通过Dynamic Workers被禁止直接访问网络。该组件实施CORS策略,添加类似浏览器的标头,过滤响应,为每个页面隔离Cookie,并以403代码拒绝违反策略的请求。
PageScript为每个页面或内部框架使用独立的进程外隔离环境,并采用部分由Rust编写的Blitz和Stylo CSS解析器。PageRenderer则将计算后的页面对象转换为客户端能够以JPEG、PNG或PDF等格式显示的帧。为处理故障,该系统经过设计,使错误会导致空白帧或缺失元素,而不是令整个会话崩溃。
测试结果与性能
Kitesurf目前已通过超过21.5万个Web Platform Tests测试,每周还会增加数百项成功测试。其良好覆盖范围包括对代理很重要的CSS、DOM、HTML、选择器、SVG和XHR等方面。
在Browser Run中针对14个URL集合进行的快速操作比较中,取五次运行的中位数,Kitesurf截取屏幕截图约消耗380毫秒的处理器时间,而Chromium为1173毫秒;Kitesurf提取HTML消耗229毫秒,而Chromium为877毫秒。内存消耗方面,Kitesurf截取屏幕截图为57.8 MiB,提取HTML为39.4 MiB;Chromium相应为271 MiB和273.7 MiB。
另一方面,Chromium的总耗时更短:截取屏幕截图耗时637毫秒,而Kitesurf为1148毫秒;提取HTML耗时472毫秒,而Kitesurf为820毫秒。Cloudflare将这一差异归因于Chromium的JIT优势以及软件渲染和编码成本,同时认为,在上述测试中内存和处理器消耗降低三至七倍,与运行成本和可扩展性的关联更大。
可用性与限制
可以通过Browser Run中的CDP端点使用Kitesurf,只需添加参数browser=kitesurf;它也支持Puppeteer、Playwright、chrome-remote-interface,以及使用MCP和CDP的代理工具。此外,它还可通过Quick Actions使用,并提供公共Playground,用于测试URL、检查DOM和控制台消息、查看网络活动以及WebAssembly消耗。
Kitesurf适合需要渲染页面、提取内容、生成PDF或截取屏幕截图的代理,但需接受其无法与Chromium浏览器完全兼容这一点。目前它不支持视频播放或WebGL,也不支持通过真实TLS指纹处理机器人挑战握手;它同样不适合需要持续状态的长期认证会话。Cloudflare建议通过Kitesurf接口或Playground测试目标网站;如有需要,也可以使用基于Chromium的默认Browser Run。
Cloudflare正在扩大CDP覆盖范围,提升屏幕截图和PDF文件的渲染精度,增加WPT测试兼容性,并降低处理器、内存和总耗时。该公司表示,计划在Kitesurf准备就绪后开放其源代码,使客户能够在自己的账户上部署自有版本。