Kitesurf 开源:运行于 Workers 的 AI 智能体浏览器引擎
Kitesurf 是什么? Cloudflare 已将面向 AI 智能体的实验性浏览器引擎 Kitesurf 以 Apache 2.0 许可证开源。开发者可以查看和修改代码,在本地运行,也可以将实例部署到自己的 Cloudflare 账户。 Kitesurf 是一个完全运行在 Cloudflare Workers 上的无状态浏览器。它不依赖浏览器容器,即可完成 HTML 解析、CSS 应用、页面 JavaScript 执行和截图渲
Kitesurf 是什么?
Cloudflare 已将面向 AI 智能体的实验性浏览器引擎 Kitesurf 以 Apache 2.0 许可证开源。开发者可以查看和修改代码,在本地运行,也可以将实例部署到自己的 Cloudflare 账户。
Kitesurf 是一个完全运行在 Cloudflare Workers 上的无状态浏览器。它不依赖浏览器容器,即可完成 HTML 解析、CSS 应用、页面 JavaScript 执行和截图渲染。
它还支持 Chrome DevTools Protocol(CDP),可以连接 Puppeteer 等客户端,让 AI 智能体通过现有自动化工具加载网站、执行脚本并与页面交互。
项目希望相比 Chromium 这类完整浏览器,减少 CPU 和内存消耗,并利用 Workers 网络按需扩展。这属于设计目标,不代表所有场景下都已得到验证的性能结论。
技术架构:Workers 与 WebAssembly 组件协作
Kitesurf 结合了 Cloudflare 开发平台、相关 API,以及编译为 WebAssembly 的 Rust 组件:
| 组件 | 主要职责 |
|---|---|
| Blitz | HTML 解析、DOM、布局与绘制 |
| Stylo | CSS 解析、层叠与样式计算 |
| Boa | 在无法通过 Dynamic Workers 执行 JavaScript 时,作为后备方案在 WebAssembly 中运行 JavaScript |
| Linebender 系列库 | 文本布局与二维图形处理 |
| Krilla | 生成 PDF 输出 |
这些第三方项目保留各自的许可证,相关声明记录在仓库的 NOTICE 文件中。
从运行架构看,Kitesurf 分为三个主要部分:
- Engine:管理浏览器会话和客户端连接。
- PageScript:运行页面及其 JavaScript。
- PageRenderer:绘制页面结果。
引擎、Rust 核心、DOM 兼容层、渲染器和 CLI 等模块分别位于仓库的 packages 目录下。
本地运行与 Puppeteer 连接
先满足项目要求的构建环境,获取代码后,在仓库根目录执行:
pnpm install --frozen-lockfile
pnpm run dev
首次构建需要编译 Rust 核心及其依赖,耗时会较长;后续构建会复用缓存。启动完成后,Wrangler 会在本机的 8787 端口提供开发服务。
可以通过本地开发页面使用 Chrome DevTools 试用,也可以使用 Puppeteer 连接 CDP 端点:
import puppeteer from "puppeteer-core";
const browser = await puppeteer.connect({
browserWSEndpoint: "ws://127.0.0.1:8787/devtools/browser",
});
try {
const page = await browser.newPage();
await page.goto("https://example.com/");
await page.screenshot({ path: "page.png" });
} finally {
await browser.disconnect();
}
这段代码展示了连接浏览器、打开页面和保存截图的基本流程。AI 智能体运行框架也可以连接本地 CDP 端点,控制 Kitesurf 执行页面操作。
部署到自己的 Cloudflare 账户
完成本地修改与测试后,可以在仓库根目录执行:
pnpm run deploy
自行部署后,可以直接使用该实例,而不必通过 Cloudflare 提供的 Browser Run 托管 API。
部署需要 Workers 付费套餐,因为 Kitesurf 使用 Dynamic Workers 为页面创建隔离的 Worker。
当前边界:支持 CDP 不等于完整替代 Chromium
Kitesurf 仍处于密集开发阶段,当前重点是提升 Web 标准兼容性、可靠性和效率,不宜直接将其视为完整浏览器的等价替代品。
在写好标智库讨论这类浏览器基础设施选型时,值得区分两个问题:能否接入现有自动化工具,以及能否可靠完成具体页面任务。CDP 支持提供了接入路径,但不能据此推断它与 Chromium 具有相同的兼容性。
如何参与贡献?
参与贡献前,应先阅读 CONTRIBUTING.md,通过 issue 提交最小复现或改进方案,并在获得维护者认可后再提交 Pull Request。
范围明确、附带测试和清晰证据的修复,比大规模重写或无关清理更便于审查。贡献也不限于代码:能够复现渲染问题的小页面、失败的自动化流程,以及明确的文档修正,都可以帮助项目改进。
Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.