8月7日、RuntimeWire が「Cloudflare launches Kitesurf, a lightweight browser built for AI agents」と題した記事を公開した。この記事では、Cloudflareが8月6日に発表したAIエージェント専用の軽量ブラウザエンジン「Kitesurf」について、Chromiumを置き換える新たなアーキテクチャの詳細が紹介されている。
Chromiumを渡すのが「高すぎる」問題
AIエージェントがWebを操作する場面は増えている。JavaScriptの実行、DOMの検査、スクリーンショットの取得、フォームの送信——これらはエージェントが日常的にこなすタスクだ。しかしその都度、フルのChromiumプロセスを割り当てるのはコストが重い。タブ、拡張機能、同期機能、高フレームレートのスクロール処理——人間のユーザーに向けて設計された機能が、エージェントには不要なまま動き続ける。並列タスク数が増えるにつれ、この非効率が経済的な問題になる。
Cloudflareが8月6日に発表したKitesurfは、この問題に対する一つの回答だ。エージェントが必要とする操作に絞ってブラウザを再設計し、Cloudflare Workers上で完結する軽量ブラウザエンジンとして実装した。現在はBrowser Renderingサービス経由で無料ベータとして提供されている。
開発を担当したのはCelso Martinho、Ruskin Constant、Rui Figueira、Luis DuarteというCloudflareのエンジニアチームだ。Cloudflareが公開したローンチ記事によれば、ブラウザの自社開発は以前から検討されていたが、AIエージェントのワークロードが具体的な技術的・事業的な目的を与えたと説明されている。
※編集部の考察:AIエージェント向けのブラウザ自動化インフラ市場では、Browserbase、Steel、Anchor Browserといった競合サービスがすでに存在する。これらはいずれもChromiumベースの管理型ブラウザセッションを提供しており、Kitesurfの「Chromiumを使わない」アプローチは構造的な差別化点になりうる。ただし、Bot対策や認証セッションの維持など実用面の制約が現時点では残っており、これらの競合との本格的な比較評価はオープンソース化以降になりそうだ。
アーキテクチャ:Rust + WebAssembly + Workers分割
Kitesurfの実装は主にRustで書かれ、WebAssemblyにコンパイルされ、Workers isolate(アイソレート)に分割される設計だ。
構成は以下の3層に分かれる:
- Engine:Chrome DevTools Protocol(CDP)エンドポイントを公開し、セッション状態を保持する
- PageScript isolate:ページのJavaScriptを実行し、DOMを管理する
- PageRenderer:計算済みのページをスクリーンショット・PDF・その他の出力形式に変換するステートレスなコンポーネント
これら3つはCloudflareのWorkers RPCでつながれている。リクエストごとに使い捨てのブラウザリソースを生成する設計であり、大きなChromiumプロセスプールを常時維持する必要がない。ページロードのたびにクリーンな環境から始まり、ネットワーク取得コンポーネントはブラウザの他部分から分離されている。
プロジェクトはリリース約12週前に開始された。Cloudflareのローンチ記事によれば、初期のインスピレーションはRust製のオープンソースブラウザ自動化エンジン「Obscura」から得ており、AIコーディングエージェントを活用しながらWorkers向けのプロトタイプを構築したとされている。品質検証にはWeb Platform Testsスイート、インテグレーションテスト、Chromiumとのビジュアル比較を用いた。
Cloudflareによれば、KitesurfはWeb Platform Testの235,000以上のサブテストに合格しており、DOM/SVGテストで97%、HTMLで96%、セレクションとエンコーディングで99%、CORSとXHRで95%のカバレッジを達成しているとされる。
ベンチマーク:CPU・メモリは大幅減、ただしレイテンシはChromium優位
Cloudflareが公表した自社ベンチマーク(14 URLで各5回の中央値)の結果は以下のとおりだ。
スクリーンショット取得
| Kitesurf | Chromium(ウォームプール) | |
|---|---|---|
| CPU使用時間 | 380ms | 1,173ms |
| メモリ使用量 | 57.8 MiB | 271 MiB |
| 経過時間 | 1,148ms | 637ms |
HTML抽出
| Kitesurf | Chromium(ウォームプール) | |
|---|---|---|
| CPU使用時間 | 229ms | 877ms |
| メモリ使用量 | 39.4 MiB | 273.7 MiB |
| 経過時間 | 820ms | 472ms |
CPUとメモリはKitesurfが大幅に優位だが、経過時間(レイテンシ)はChromiumのほうが速い。KitesurfはJITコンパイラが温まったChromiumと異なり、コールドなソフトウェアレンダリングパスを経由するためだ。タイトルで示した「メモリ使用量を約5分の1に削減」はスクリーンショット取得時の57.8 MiB対271 MiBの比率から導いた数字であり、速度面での全面的な優位を意味するものではない点に注意が必要だ。
Cloudflare自身もこの数字の文脈を明示している。「大量の短時間・独立したタスクにおいて、1リクエスト数百ミリ秒の速度差よりも計算資源やメモリ消費のほうが重要な場合」を想定したベンチマークであり、Chromiumの汎用的な代替としての主張ではない。
現時点の制約
Kitesurfはベータ段階であり、以下はまだ対応していない:
- 動画再生
- WebGLレンダリング
- 一部のBot対策サービスが必要とするTLSフィンガープリントの再現
- 永続的な認証セッションの維持
- CDPのフルプロトコル実装
- Chromiumとのピクセル単位の一致が保証されたスクリーンショット
これらのケースにはCloudflareのChromiumベースのBrowser Runサービスを引き続き推奨するとされている。
既存ツールとの互換性と今後
KitesurfはPuppeteer、Playwright、chrome-remote-interface、MCPを使うエージェントがCDP経由でそのまま接続できる設計だ。既存のBrowser Runユーザーは、CDPまたはQuick ActionエンドポイントのURLに**browser=kitesurfを追加するだけ**で切り替えられる。Quick Actionsはスクリーンショット、PDF、HTML抽出、スクレイピングなどのワンショット操作に対応する。
また、CloudflareはKitesurfのオープンソース化と、ユーザーが自分のCloudflareアカウントにデプロイできる仕組みの提供を予定していると表明している。これが実現すると、KitesurfはマネージドなサービスからWorkersのランタイムコンポーネントの一つとして機能を拡張することになる。
詳細はCloudflare launches Kitesurf, a lightweight browser built for AI agentsを参照していただきたい。