CloudflareがKitesurfをリリース — AIエージェント向けに設計された軽量ブラウザ
Rustベースのベータは、CloudflareのテストでCPUとメモリの使用量を削減する一方、読み込みが遅くなり、ウェブ互換性が限定されることを受け入れている。
By Ryan Merket · Published
Primary source: Cloudflare Developers on X
Why it matters
Browser access is one of the costliest tools to provide at agent scale. Kitesurf gives Cloudflare a lighter execution path for short web tasks and ties those workloads directly to Workers.

Cloudflare launched Kitesurf on August 6th, a browser engine built to give AI agents isolated access to websites without assigning each task a full Chromium instance. Kitesurf runs entirely on Cloudflare Workers and is available free in beta through Cloudflare's Browser Run service.
Kitesurfの開発チームは、Celso Martinho、Ruskin Constant、Rui Figueira、およびLuis Duarteである。ConstantはCloudflareのシニアエンジニアリングマネージャ、Figueiraはシニアシステムエンジニア、Duarteはシステムエンジニアだ。Cloudflareのローンチ記事で、同チームはエージェントワークロードがプロジェクトにより明確な技術的・商業的目的を与える以前から、Cloudflareがブラウザ構築を何度も検討してきたと述べている。
その目的は密度(density)だ。エージェントはJavaScriptを実行したり、ドキュメントオブジェクトモデルを検査したり、スクリーンショットを取得したり、フォームを送信したりするためにブラウザを必要とすることがあるが、Chromiumの多くは画面の前に座る人間にサービスを提供するために存在している。タブ、拡張機能、同期、高フレームレートのスクロール、正確な視覚レンダリングは、エージェントの結果を必ずしも改善しないままリソースを消費する。各エージェントに別々のChromiumプロセスを割り当てると、同時タスクが増えるにつれてコストが高くなる。
Kitesurfはブラウザを、オペレーションモデルと自動化システムが使う部分だけにまで削ぎ落としている。主にRustで書かれ、WebAssemblyにコンパイルされ、Workersの分離環境に分割されている。EngineコンポーネントはChrome DevTools Protocol(CDP)のエンドポイントを公開し、セッション状態を保持する。別個のPageScript分離環境がページコードを実行してDOMを維持し、ステートレスなPageRendererが計算されたページをスクリーンショット、PDF、その他の出力に変換する。CloudflareのWorkers RPCシステムがそれらのコンポーネントを接続する。
このアーキテクチャにより、CloudflareはフルロードされたChromiumプロセスの大規模なプールを維持する代わりに、各リクエストごとに使い捨てのブラウザリソースを作成できる。すべてのページロードはクリーンな環境で開始され、ネットワーク取得コンポーネントはブラウザの他の部分から分離される。Cloudflareはこの隔離モデルがすべてのページとスクリプトを信頼できない入力として仮定していると述べており、エージェントが任意のサイトに向けられる可能性がある場合には重要な制約だ。
このプロジェクトはローンチの約12週間前に始まった。Cloudflareは当初の着想を、自動化向けのオープンソースRustブラウザであるObscuraから得ており、初期プロトタイプをWorkersに適応する際にはAIコーディングエージェントを使用した。その後エンジニアたちはWeb Platform Testsスイート、統合テスト、およびChromiumとの視覚比較に頼り、生成されたコードを制約しブラウザ互換性を測定した。
Cloudflareのドキュメントによれば、Kitesurfは235,000以上のWeb Platform Testサブテストに合格しているという。DOMとSVGテストで97%のカバレッジ、HTMLで96%、選択とエンコーディングで99%、CORSとXHRで95%を報告している。これらの数値はすべての本番サイトとの互換性ではなく標準テストを測定したものであり、Cloudflareは開発者に個々のサイトをKitesurf playgroundでテストするよう促している。
効率のトレードオフ
Cloudflare自身のベンチマークは、14のURLにわたるKitesurfとウォームプールのChromiumの各5回実行の中央値を比較したものだ。スクリーンショットのタスクでは、KitesurfはCPUで380ミリ秒、メモリで57.8 MiBを使用したのに対し、Chromiumは1,173ミリ秒と271 MiBだった。HTML抽出では、KitesurfはCPUで229ミリ秒、メモリで39.4 MiB、対してChromiumは877ミリ秒と273.7 MiBを使用した。
しかし経過時間ではKitesurfの方が遅かった。スクリーンショットはKitesurfで1,148ミリ秒、Chromiumで637ミリ秒かかった。HTML抽出はKitesurfで820ミリ秒、Chromiumで472ミリ秒だった。Cloudflareはこの差をChromiumのウォームなJIT(ジャストインタイム)コンパイラと、Kitesurfのコールドなソフトウェアレンダリング経路に起因するとしている。
このベンチマークは特定のユースケース、つまり各リクエストを数百ミリ秒早く処理することよりも、計算とメモリ消費が重要となる短く独立した大量のタスクに対して有効であることを示している。これはKitesurfを汎用のChromium置き換えとして確立するものではない。
Kitesurfはまだビデオ再生、WebGLのレンダリング、一部のボットチャレンジに必要なTLSフィンガープリントの再現、あるいは永続状態を必要とする長期の認証セッションをサポートできない。CDP実装もプロトコルの一部のみをカバーしており、スクリーンショットがChromiumのピクセルと完全一致することは保証されない。Cloudflareはこれらの作業にはChromiumを搭載したBrowser Runサービスを推奨している。
Cloudflareは切り替えをパラメーターの変更にする
Cloudflareは開発者がすでにブラウザ自動化に使用しているのと同じインターフェースの背後にKitesurfを構築した。Puppeteer、Playwright、chrome-remote-interface、およびMCPを使用するエージェントはCDPを介して接続できる。既存のBrowser Run利用者はCDPまたはQuick Actionのエンドポイントにbrowser=kitesurfを追加することでKitesurfを選択できる。Quick Actionsはスクリーンショット、PDF、HTML抽出、スクレイピングなどのワンショット操作をカバーする。
その互換性により、既存のワークロードに対してKitesurfをテストするコストが下がる。開発者は現在の自動化クライアントを維持し、互換性のあるタスクをKitesurfに振り分ける一方で、ビデオや複雑なグラフィックス、永続的なログイン、Kitesurfの狭い実装で失敗するサイトにはChromiumを残すことができる。
ベータはBrowser Runのアカウントごとの上限の対象であるとCloudflareは述べている。CloudflareはまたKitesurfをオープンソース化し、顧客が自分のCloudflareアカウントに独自のコピーをデプロイできるようにする意向があるとも述べている。これによりブラウザは管理された機能から、開発者がエージェントのそばに配置できる別のランタイムコンポーネントへと変わり、CloudflareにとってはWorkersをブラウザ負荷の高いエージェントワークロードの実行レイヤにするための直接的なルートが得られることになる。