Kitesurf 以代理為先的瀏覽器於 Cloudflare Workers 上線
Kitesurf 提供一款完全運行於 Cloudflare Workers 上的代理為先 (agent-first) 瀏覽器
重點摘要: Cloudflare 全新的 Kitesurf 瀏覽器在 Workers 的 V8 isolates 中運行,針對常見的 AI 代理任務,其 CPU 使用率比 Chromium 低 3–8 倍,記憶體使用率低 5–7 倍,同時仍與 Puppeteer 等 CDP 工具相容。
為什麼需要新的瀏覽器
- 是代理,而非人類: AI 代理需要低 Token 消耗、快速的上下文窗口以及廉價的運算資源。傳統瀏覽器(如 Chromium)帶有沉重的 UI 相關開銷——分頁、擴充功能、高保真渲染——而代理從不需要這些功能。
- 成本障礙: 為每個代理運行一個完整的 Chromium 實例成本極高,這限制了複雜 AI 模型在網路任務上的應用範圍。
- 不同的威脅模型: 代理驅動的瀏覽會引入如提示詞注入 (prompt injection) 和工具安全性等疑慮,而這些並非以人為中心的瀏覽器的主要考量因素。
這些觀察讓 Cloudflare 對於長期以來的內部問題——「我們是否應該開發自己的瀏覽器?」——給出了肯定的回答,並在 Browser Run 平台上推出了 Kitesurf 的測試版。
核心設計原則
1. 測試驅動開發
- 整合了 Web Platform Tests (WPT) 套件,為 AI 輔助程式碼生成提供具體的成功標準。
- 增加了整合測試與視覺回歸測試,將 Kitesurf 的輸出與真實網站上的 Chromium 進行對比,及早發現渲染差異。
"使用 CDP 的優點在於客戶端相容性:Puppeteer、Playwright、chrome-remote-interface 以及實際的 Chrome DevTools 前端。只要將它們指向 Kitesurf,一切都能正常運作。" – Cloudflare blog
2. Rust 為先,編譯至 WebAssembly
- 原生 Rust 組件避免了 Emscripten 生成的二進位檔所帶來的臃腫。
- 使用
wasm-bindgen直接編譯至 Wasm,保持執行效率接近底層,並利用 Cloudflare 成熟的 Wasm 執行環境。
3. 強大的異常處理
- 任何錯誤都會降級為空白框架或缺失元素,而不是終止工作階段 (session)。
- 錯誤會在每個邊界被捕捉並記錄,然後安全地繼續工作階段。
4. 嚴格的單一頁面負載隔離
- 每個頁面負載都在其獨立的沙盒 isolate 中運行,並由專用的
SandboxOutboundworker 處理所有網路流量。 - 任何組件都無法直接存取網路,從而強制執行 CORS、標頭注入 (header injection) 和每頁獨立的 Cookie 儲存區。
5. 盡可能地無狀態化
- 無狀態組件可以立即被終止並重新建立,從而實現大規模並行處理和代理工作負載的爆發式擴展。
- 只有 Engine 保留工作階段狀態;所有其他 worker 都是可丟棄的。
架構概覽
The Engine
- 透過 WebSocket 和 HTTP 暴露 Chrome DevTools Protocol (CDP)。
- 儲存工作階段狀態;所有其他組件皆為無狀態。
- 與現有的 CDP 客戶端(Puppeteer、Playwright 等)相容。
PageScript
- 在每個頁面或 OOPIF 的動態 Worker isolate 中運行。
- 使用 Rust 函式庫 Blitz (HTML) 和 Stylo (CSS) 解析 HTML 和 CSS。
- 在程序內執行 JavaScript 和 WebAssembly;在原生
eval進入 Workers 之前,eval由 Boa JS 引擎處理。
PageRenderer
- 使用
blitz-paint和 Parley 文本塑形函式庫將 DOM 樹光柵化為 PNG/JPEG/PDF。 - 作為一個獨立的 isolate 運行,透過 Cloudflare Workers 的內建 RPC 系統進行呼叫,使每次渲染請求都可重試且成本低廉。
網路沙盒 – SandboxOutbound
- 唯一允許執行對外網路請求的組件。
- 強制執行 CORS、注入類瀏覽器標頭、過濾回應,並為每個頁面隔離 Cookie。
效能與相容性
| 指標 | Kitesurf | Chromium (warm pool) | 相對改進 |
|---|---|---|---|
| CPU: screenshot | 380 ms | 1,173 ms | 低 3.1× |
| CPU: HTML extraction | 229 ms | 877 ms | 低 3.8× |
| Memory: screenshot | 57.8 MiB | 271 MiB | 低 4.7× |
| Memory: HTML extraction | 39.4 MiB | 273.7 MiB | 低 7.0× |
| Wall‑time: screenshot | 1,148 ms | 637 ms | 慢 1.8× |
| Wall‑time: HTML extraction | 820 ms | 472 ms | 慢 1.7× |
CPU 和記憶體的節省直接轉化為 Cloudflare 及其客戶端更低的帳單費用。
Kitesurf 已經通過了 215,000+ 項 WPT 測試,且每週持續增加。涵蓋範圍包括 HTML、CSS、DOM、SVG、XHR 和 streams——這些都是與 AI 代理最相關的功能。
来自 Hacker News 的社群見解
- 實作基礎: 引擎建立在開源的 Blitz 渲染引擎 (Dioxus Labs) 之上——這是一個正在積極開發中的模組化瀏覽器核心。
"這是建立在 Blitz 之上的... 一個我過去 2.5 年一直在開發的新型模組化(開源)瀏覽器引擎。" – @nicoburns
- 潛在疑慮: 一些評論者對 Cloudflare 作為 CDN 和 AI 代理平台的雙重角色感到好奇,擔心可能會繞過反機器人保護。
"在 Cloudflare workers 中的 Kitesurf 是否會獲得繞過受 Cloudflare CDN 保護內容的特殊權限?" – @QuantumNomad_
- 使用案例好奇: 用戶詢問代理利用瀏覽器的具體範例。
"有人能給我一些在瀏覽器中使用代理的範例嗎?" – @cautiouscat
- 開源期望: 幾位參與者表示希望程式碼能開源,並指出如果實作保持封閉,可能存在指紋識別 (fingerprinting) 風險。
"希望它是開源的,這樣就可以在本地運行..." – @zuzululu
開始使用 Kitesurf
- Browser Run CDP 端點 – 在任何 Browser Run API 呼叫中加入
browser=kitesurf。{ "mcp": { "kitesurf": { "type": "local", "command": [ "npx", "-y", "chrome-devtools-mcp@latest", "--wsEndpoint=wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-run/devtools/browser?browser=kitesurf", "--wsHeaders={\"Authorization\":\"Bearer <API_TOKEN>\"}" ], "enabled": true } } } - 快速操作範例 – 截圖
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/<accountId>/browser-run/screenshot?browser=kitesurf' \ -H 'Authorization: Bearer <apiToken>' \ -H 'Content-Type: application/json' \ -d '{"url": "https://example.com"}' \ --output screenshot.png - 遊樂場 (Playground) – 訪問 https://kitesurf.cloudflare.app/ 來輸入任何 URL、檢查 DOM、查看網路活動,並查看每個 isolate 的記憶體佔用。
何時選擇 Kitesurf 而非 Chromium
- 非常適合 AI 代理,這些代理需要 HTML 提取、截圖或 PDF 生成,且不需要像素級精確的渲染。
- 最適合爆發式、無狀態的工作負載,在這些場景下成本效率和隔離性至關重要。
- 不適用於 影片播放、WebGL、長時間維持的驗證工作階段,或依賴複雜 TLS 指紋識別的網站。
藍圖與未來工作
- 將 CDP 涵蓋範圍擴展到目前的子集之外。
- 提高高品質截圖和 PDF 的渲染保真度。
- 增加 WPT 覆蓋範圍,以接近完整的 Web 平台相容性。
- 與其他 Cloudflare 平台團隊合作,持續優化 CPU、記憶體和 Wall-time 基準測試。
Kitesurf 代表了邁向 代理為先的 Web 平台 的大膽一步,提供了一個輕量級、隔離且具成本效益的邊緣運行瀏覽器。立即透過 Browser Run 或公開的遊樂場進行嘗試,並在 AI 代理成為一等網路公民的過程中,見證這個生態系統的演進。
Sources
相關
- 專案
- Dispatch
- 專案
- 專案
- 專案