Kitesurf エージェント最優先ブラウザが Cloudflare Workers 上でリリース

Kitesurf は Cloudflare Workers 上で完全に動作するエージェント最優先ブラウザを提供

ポイント: Cloudflare の新ブラウザ Kitesurf は Workers 上の V8 イソレートで動作し、一般的な AI エージェントタスクにおいて Chromium と比較して CPU 使用量を 3~8 倍、メモリ使用量を 5~7 倍削減しながら、Puppeteer などの CDP ツールと互換性を維持しています。


新たなブラウザが必要とされた理由

  • 人間ではなくエージェント向け: AI エージェントはトークン数が少なく、コンテキストウィンドウが高速で、計算コストが安価である必要があります。従来のブラウザ(Chromium など)は、タブや拡張機能、高精細レンダリングといったエージェントが一切使わない UI 関連のオーバーヘッドを伴っています。
  • コストの壁: エージェントごとにフル Chromium インスタンスを実行するのは費用が高すぎて、高度な AI モデルはウェブタスクの狭い範囲に限定されてしまいます。
  • 異なる脅威モデル: エージェント駆動のブラウジングは、プロンプトインジェクションやツールの安全性といった、人間中心のブラウザでは主な考慮事項ではない問題を引き起こします。

これらの観察から、Cloudflare は長年の社内質問「自社でブラウザを開発すべきか?」に「はい」と答え、Kitesurf を Browser Run プラットフォーム上でベータ版としてリリースしました。


コア設計原則

1. テスト駆動開発

  • AI アシストコード生成に具体的な成功基準を与えるために、Web Platform Tests (WPT) シュートを統合しました。
  • 実際のサイトで Chromium と比較して Kitesurf の出力を検証する統合テストおよびビジュアルレグレッションテストを追加し、レンダリングの差異を早期に検出しています。

"CDP を使う利点はクライアントの互換性にあります:Puppeteer、Playwright、chrome-remote-interface、そして実際の Chrome DevTools フロントエンド。それらを Kitesurf に接続すれば、すべてがそのまま動作します。" – Cloudflare ブログ

2. Rust 最優先、WebAssembly にコンパイル

  • Emscripten 生成バイナリの肥大化を回避するため、ネイティブ Rust コンポーネントを使用しています。
  • wasm-bindgen を使って直接 Wasm にコンパイルし、実行をメタルに近づけ、Cloudflare の成熟した Wasm ランタイムを活用しています。

3. 非常に堅牢な例外処理

  • 何らかの障害が発生しても、セッションが終了するのではなく、空白のフレームや要素の欠落に低下します。
  • すべての境界で障害をキャッチし、ログに記録した上でセッションを安全に継続します。

4. 各ページ読み込みごとの厳格な分離

  • 各ページ読み込みは、専用の SandboxOutbound ウォーカーがすべてのネットワークトラフィックを処理するサンドボックス化されたイソレートで実行されます。
  • どのコンポーネントも直接ネットワークにアクセスできず、CORS、ヘッダー注入、ページごとのクッキーjarを強制します。

5. 可能な限りステートレス化

  • ステートレスなコンポーネントは即座に終了・再作成可能であり、大規模な並列処理とエージェントワークロードのバーストスケーリングを可能にします。
  • エンジンのみがセッションステートを保持し、他のすべてのワーカーは破棄可能です。

概要的なアーキテクチャ

エンジン

  • WebSocket および HTTP を通じて Chrome DevTools Protocol (CDP) を公開します。
  • セッションステートを保持;他のすべてのコンポーネントはステートレスです。
  • 既存の CDP クライアント(Puppeteer、Playwright など)との互換性を維持。

PageScript

  • 各ページまたは OOPIF ごとに動的ワーカーイソレートで実行されます。
  • Rust ライブラリ Blitz(HTML)および Stylo(CSS)を使用して HTML と CSS を解析します。
  • JavaScript および WebAssembly をインプロセスで実行;eval は Workers にネイティブ eval が導入されるまで Boa JS エンジンで処理されます。

PageRenderer

  • blitz-paint と Parley テキスト整形ライブラリを使用して DOM ツリーを PNG/JPEG/PDF にラスタライズします。
  • Cloudflare Workers の組み込み RPC システムを介して呼び出される別個のイソレートとして動作し、各レンダリングリクエストはリトライ可能で低コストです。

ネットワークサンドボックス – SandboxOutbound

  • 唯一、アウトバウンドネットワークリクエストを実行できるコンポーネントです。
  • CORS を強制し、ブラウザ風のヘッダーを挿入し、レスポンスをフィルタリングし、ページごとにクッキーを分離します。

パフォーマンスと互換性

メトリクス Kitesurf Chromium(ウォームプール) 相対的な改善
CPU: スクリーンショット 380 ms 1,173 ms 3.1× 少ない
CPU: HTML 抽出 229 ms 877 ms 3.8× 少ない
メモリ: スクリーンショット 57.8 MiB 271 MiB 4.7× 少ない
メモリ: HTML 抽出 39.4 MiB 273.7 MiB 7.0× 少ない
ワールタイム: スクリーンショット 1,148 ms 637 ms 1.8× 遅い
ワールタイム: HTML 抽出 820 ms 472 ms 1.7× 遅い
  • CPU およびメモリの節約は、Cloudflare とその顧客の両方にとって請求額の低下に直接つながります。

Kitesurf はすでに 215,000 以上の WPT テスト を通過しており、毎週継続的に追加されています。カバレッジには HTML、CSS、DOM、SVG、XHR、ストリームが含まれ、AI エージェントにとって最も関連性の高い機能です。


Hacker News からのコミュニティの洞察

  • 実装の基盤: エンジンはオープンソースの Blitz レンダリングエンジン(Dioxus Labs)に基づいています。これは現在も活発に開発中のモジュール式ブラウザコアです。

    "これは Blitz の上に構築されています… 私が過去 2.5 年間開発してきた新しいモジュール式(オープンソース)ブラウザエンジンです。" – @nicoburns

  • 懸念点: 一部のコメントでは、Cloudflare が CDN と AI エージェントプラットフォームの両方の役割を果たすことで、ブロット防止保護を回避する可能性があると懸念されています。

    "Cloudflare Workers 上の Kitesurf は、Cloudflare の CDN で保護されたコンテンツに対して特別なバイパス権限を得ますか?" – @QuantumNomad_

  • ユースケースへの関心: ユーザーは、エージェントがブラウザをどのように活用しているかの具体的な例を求めていました。

    "誰か、エージェントをブラウザでどのように使っているかの例を教えてもらえますか?" – @cautiouscat

  • オープンソース化への期待: 複数の参加者がコードをオープンソース化してほしいと望んでおり、実装が閉鎖的である場合、ファイガープリンティングのリスクがあると指摘しています。

    "オープンソースにして、ローカルで実行できるようにしてほしい…" – @zuzululu


Kitesurf の使い始め方

  1. 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
        }
      }
    }
    
  2. クイックアクションの例 – スクリーンショット
    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
    
  3. プレイグラウンドhttps://kitesurf.cloudflare.app/ にアクセスして、任意の URL を入力し、DOM を検査、ネットワーク活動を表示、各イソレートのメモリ使用量を確認できます。

Kitesurf と Chromium の選択基準

  • AI エージェントに最適:ピクセル単位の正確なレンダリングが不要な HTML 抽出、スクリーンショット、PDF 生成が必要な場合。
  • バースト型、ステートレスなワークロードに最適:コスト効率と分離が最重要となる場合。
  • 不適切な用途:動画再生、WebGL、長期間の認証済みセッション、高度な TLS フィンガープリンティングに依存するサイト。

ロードマップと今後の作業

  • 現在のサブセットを超える CDP カバレッジの拡張。
  • 高品質なスクリーンショットおよび PDF のレンダリング精度の向上。
  • WPT カバレッジを拡大し、完全なウェブプラットフォーム互換性に近づける。
  • 他の Cloudflare プラットフォームチームと連携して、CPU、メモリ、ワールタイムのベンチマークを継続的に最適化。

Kitesurf は、エージェント最優先のウェブプラットフォームへの大胆な一歩を示しており、エッジで動作する軽量で分離された、コスト効率の高いブラウザを提供しています。今日から Browser Run またはパブリックプレイグラウンドで試して、AI エージェントがウェブの主要な市民となるにつれて進化するエコシステムを観察してください。

Sources

関連

  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト