Cloudflare、AI エージェント向けブラウザエンジン Kitesurf をオープンソース化
Cloudflare は Kitesurf を Apache 2.0 で GitHub に公開した。Workers 上だけで動く AI エージェント向けのステートレスなブラウザで、HTML 解析、CSS 適用、JavaScript 実行、スクリーンショット描画をコンテナなしで行い、CDP 対応のため Puppeteer から接続できる。
Cloudflare、AI エージェント向けのステートレスなブラウザエンジン Kitesurf をオープンソース化
Cloudflare は公式ブログで、Kitesurf を Apache 2.0 ライセンスで GitHub に公開したと発表しました。Kitesurf は、Cloudflare Workers の上だけで動く、AI エージェント向けのステートレスなブラウザです。記事の著者は Celso Martinho 氏、Rui Figueira 氏、Bernardo Pereira 氏、Luís Duarte 氏です。公式記事はこれをエージェント向けの軽量なブラウザエンジンと位置づけており、実証済みの完全なマルチテナント隔離サンドボックス基盤とは述べていません。
果たされた約束
Cloudflare は 8 月に Kitesurf を紹介し、9 月には WebMCP 対応、新しい API、互換性の改善を続報で伝えました。どちらの機会にも、開発者が自分の Cloudflare アカウントで独自のブラウザエンジンを動かせるよう、オープンソース化すると約束していました。今回の公開でその約束が果たされました。コードを読み、ローカルで動かし、変更し、自分のインスタンスを Cloudflare Workers にデプロイできます。
Kitesurf とは何か
公式の説明は具体的です。Kitesurf は Cloudflare Workers の上だけで動き、HTML を解析し、CSS を適用し、ページの JavaScript を実行し、スクリーンショットを描画します。ブラウザ用のコンテナは使いません。Chrome DevTools Protocol(CDP)に対応しているため、Puppeteer などのクライアントから接続できます。
主な目標は、AI エージェントに軽くて効率のよいブラウザを渡すことです。サイトを読み込み、JavaScript を実行し、ページを操作できる一方で、Chromium のような完全なブラウザより CPU とメモリの使用量が少なく、Cloudflare のグローバルな Workers ネットワーク全体で需要に応じて拡張できることを目指しています。
リポジトリの中身
Kitesurf は Cloudflare の開発者プラットフォームと API に加え、WebAssembly にコンパイルされた Rust 製のオープンソース部品を土台にしています。Blitz が HTML の解析、DOM、レイアウト、描画を担当し、Stylo が CSS の解析、カスケード、計算済みスタイルを担当します。Boa は WebAssembly の中で JavaScript を実行しますが、Dynamic Workers で実行できない場合の最後の手段としてだけ使われます。Linebender のライブラリが文字組みと 2D グラフィックスを扱い、Krilla が PDF を出力します。これらのプロジェクトは各自のライセンスを保持しており、リポジトリの NOTICE に第三者の表示が記載されています。
構成は三つの部分です。Engine がブラウザのセッションとクライアント接続を管理し、PageScript がページとその JavaScript を実行し、PageRenderer が結果を描画します。エンジン、Rust のコア、DOM のシム、レンダラー、Kitesurf の CLI などのパッケージは、リポジトリの packages ディレクトリ配下に別々のフォルダとして置かれており、各部がどう組み合わさるかを確認できます。
ローカルでの実行
まずリポジトリのビルド要件を確認し、クローンして pnpm で依存関係を入れ、pnpm run dev でエンジンを起動します。初回のビルドでは Rust のコアと依存部品をコンパイルするため時間がかかりますが、以降はキャッシュが再利用されます。その後、wrangler が 127.0.0.1:8787 でローカル開発サーバーを立てます。このアドレスを Chrome DevTools で開いてページを試せますし、プログラムからも使えます。記事には、Node.js のスクリプトで puppeteer-core をローカルの devtools/browser の WebSocket エンドポイントに接続し、ページを開いてスクリーンショットを保存する例があります。AI のハーネスをローカルの CDP ポートに向けて、エージェントに Kitesurf を完全に操作させる使い方も勧められています。
自分のアカウントへのデプロイ
ローカルでの変更とテストが終わったら、エンジンを自分の Cloudflare アカウントにデプロイし、Cloudflare が提供するマネージドの Browser Run API の代わりに使えます。Kitesurf は Dynamic Workers でページごとに隔離された Workers を作るため、Workers の有料プランが必要です。リポジトリのルートで pnpm run deploy を実行します。
貢献と現状
Cloudflare の他のオープンソースと同様に、フォークと貢献を歓迎しています。ただしチームは、Kitesurf が活発に開発中だと明言しています。現在の重点は、Web Platform Tests の進捗で確認できる互換性の向上と、信頼性、効率です。貢献したい人は、まず貢献ガイドを読み、最小の再現手順か方針案を添えて issue を立て、プルリクエストの前にメンテナーの承認を得ます。範囲が明確で、テストと根拠がある修正は、大きな書き直しよりレビューしやすいとのことです。貢献はコードに限りません。描画の不具合を再現する小さなページ、失敗する自動化の流れ、ドキュメントの訂正も助けになります。
留意点
Apache 2.0 は寛容なライセンスですが、Kitesurf が依存する Blitz、Stylo、Boa などは各自のライセンスを持ちます。企業は導入前に NOTICE を確認してください。デプロイには Workers の有料プランが必要なので、個人で試す場合は先に費用を確かめてください。開発が速いため、インターフェースや挙動が変わる可能性があり、重要な業務の流れには回帰テストが必要です。また、Kitesurf はページの JavaScript をまず Dynamic Workers で実行し、できない場合だけ WebAssembly の Boa にフォールバックするため、ページによって実行経路が異なる可能性があります。不具合を調べるときは覚えておくとよいでしょう。
今後
チームは、Cloudflare のブログと変更履歴、そして標準への互換性を示す Web Platform Tests の結果とベンチマークを公開する公式のランディングページを案内しています。Discord でも交流を呼びかけています。著者は最後に、エージェントのためのブラウザを作っており、改善への協力を歓迎すると述べています。
Sources
FAQ
Kitesurf とは何ですか?
Cloudflare が公開した、AI エージェント向けのステートレスなブラウザです。Cloudflare Workers の上だけで動き、HTML 解析、CSS 適用、ページの JavaScript 実行、スクリーンショット描画をコンテナなしで行い、CDP にも対応しています。
ローカル実行とデプロイはどうすればよいですか?
GitHub のリポジトリをクローンして pnpm で依存関係を入れ、pnpm run dev を実行すると 127.0.0.1:8787 でローカルサーバーが起動し、Puppeteer から接続できます。自分のアカウントへは pnpm run deploy で配備し、Dynamic Workers のため Workers 有料プランが必要です。
本番環境で使える段階ですか?
Cloudflare は、開発が活発で、互換性、信頼性、効率の向上に取り組んでいると述べています。進捗は Web Platform Tests のページで確認できます。導入前に対象サイトで検証し、重要な流れには回帰テストを用意し、第三者ライセンスの表示も確認してください。