Featured image of post CloudflareのKitesurfを使ってみた。AIエージェント向けブラウザは何が軽く、何がまだ苦手なのか

CloudflareのKitesurfを使ってみた。AIエージェント向けブラウザは何が軽く、何がまだ苦手なのか

Cloudflareが発表したAIエージェント向けブラウザKitesurfを公開PlaygroundとCDPで実際に検証。HTML抽出、DOM操作、スクリーンショットで見えた強みと限界をまとめます。

AIエージェントにWebページを操作させるとき、これまではChromeやChromiumを裏で動かすのが普通だった。Cloudflareは2026年8月6日、その前提に対する別の答えとして「Kitesurf」を発表した。

名前はブラウザだけれど、人間がタブを開いて使うアプリではない。Workersの上で動く、AIエージェント用のクラウド・ブラウザエンジンだ。

実際に公開Playgroundを使い、example.com と自分のブログ hide10.com のHTML抽出・スクリーンショットを試した。さらにCDP(Chrome DevTools Protocol)でTodoMVCの入力欄を操作した。

先に結論を書くと、ページの構造を読み取り、短いタスクを実行する用途ではかなり面白い。一方、画像まで含めた完全な画面確認や、ログイン状態を持ち続ける作業では、まだChromiumを使った方が安心できる。

Kitesurfは「人間用ブラウザ」ではない

Kitesurfは、Cloudflare WorkersのV8 isolate上で動く。タブ、テーマ、拡張機能、端末間の同期といった人間向けの機能は優先しない。その代わり、AIエージェントが必要とするトークン数、コンテキスト、同時実行数、メモリ使用量、処理コストを重視する。

AIがページを読むなら、CSSを1ピクセル単位で正確に描くことより、DOMやHTMLを機械が扱いやすい形で取得できることの方が大事だ。Kitesurfはそこに割り切っている。

内部では、Rustで書かれたBlitzのレンダリング部品、Firefox由来のCSSパーサーStylo、JavaScript処理に使うBoaなどをWebAssemblyとして組み合わせている。ページごとに分離されたコンポーネントを動かし、できるだけ状態を持たない設計にしているという。

この設計は、何千ものブラウザを一時的に起動して、処理が終わったら捨てる用途に向いている。自分のPCでChromeを常時起動しておくタイプのブラウザとは、そもそも狙っている場所が違う。

公開Playgroundで使ってみた

Cloudflareは、認証なしで試せるKitesurf Playgroundを公開している。URLを入力すると、Kitesurfでページを開き、HTML抽出、スクリーンショット、PDF出力、Chrome DevToolsによる確認ができる。

まず example.com を開いた。HTML抽出では、見出し、本文、リンクが取得できた。スクリーンショットも生成され、単純なページなら一連の処理は迷わず通る。

次に、自分のブログ hide10.com を指定した。日本語の見出し、説明文、記事タイトル、画像のaltテキスト、ページネーション、固定ページへのリンクまでDOMとして取得できた。サイトの構造を調べたり、リンクの存在を確認したりする用途なら、十分に実用になる。

ただし、同じ hide10.com のスクリーンショットはHTTP 500で失敗した。Kitesurfから返ってきたメッセージは、未解決のリソースが残ったためスクリーンショットを取得できない、という内容だった。HTMLが読めても、画像やフォントまで含む画面の再現は別問題らしい。

検証内容結果
example.com のHTML抽出成功
example.com のスクリーンショット成功
hide10.com の日本語DOM抽出成功
hide10.com のスクリーンショットHTTP 500。未解決リソースで失敗
TodoMVCのDOM操作入力・Enter送信・DOM再取得まで成功

CDPでTodoMVCを操作する

Playgroundの画面を眺めるだけではなく、KitesurfのCDP endpointに直接つないだ。CDPは、Chrome DevToolsやPlaywrightなどがブラウザを操作するときに使う通信プロトコルだ。

TodoMVCの入力欄をDOMから検索し、フォーカスを当てて「Kitesurf CDP test」と入力した。その後Enterキーを送信し、ページのDOMをもう一度取得したところ、入力したタスクと「1 item left」が残っていた。

これは、Kitesurfが単にHTMLをダウンロードしているだけではなく、ページのDOMを見つけ、入力イベントを渡し、JavaScriptで変化した結果を再び取得できることを示している。AIエージェントが行う「ページを読む」「フォームに入力する」「結果を確認する」という流れは、すでに動いている。

一方、今回の公開CDP接続では、Runtime.evaluate から document を参照すると document is not defined になった。DOM取得や入力操作はできたので、CDP全体が使えないわけではない。だが、KitesurfはまだCDPの一部実装を拡張している段階で、既存のChrome向けエージェントがそのまま全部動くとは限らない。

Chromiumより軽い。ただし、速いとは限らない

Cloudflareは、14 URLのコーパスに対してBrowser RunのQuick Actionsを5回実行した比較結果を公開している。これはCloudflare自身によるベンチマークなので、そのまま一般的なサイトすべての結果だとは思わない方がいい。

それでも、Kitesurfが何を優先しているかは数字に出ている。

指標KitesurfChromiumCloudflareの比較
スクリーンショットのCPU380 ms1,173 msKitesurfが3.1倍少ない
HTML抽出のCPU229 ms877 msKitesurfが3.8倍少ない
スクリーンショットのメモリ57.8 MiB271.0 MiBKitesurfが4.7倍少ない
HTML抽出のメモリ39.4 MiB273.7 MiBKitesurfが7.0倍少ない
スクリーンショットの処理時間1,148 ms637 msKitesurfが1.8倍遅い
HTML抽出の処理時間820 ms472 msKitesurfが1.7倍遅い

CPUとメモリは大幅に少ないが、壁時計で測った処理時間はChromiumの方が短い。Kitesurfは、1回の処理を最短で終わらせるより、同時に大量のセッションを安く動かすためのブラウザだと考えるとわかりやすい。

CloudflareはKitesurfが21万5,000件以上のWeb Platform Testsを通過しているとも説明している。ただし、テストに通ることと、実際のWebサイトを見た目まで正しく再現できることは同じではない。今回の hide10.com のスクリーンショット失敗も、その差を実感する結果になった。

どんな用途なら向いているか

Kitesurfが向いているのは、ページを一時的に開いて必要な情報を取り出す処理だ。

  • ページの見出し、本文、リンク、フォーム項目の抽出
  • JavaScriptで生成されるページのDOM確認
  • 短い入力フォームの自動操作
  • 大量のURLに対するHTML抽出や簡単なスクリーンショット
  • AIエージェントのブラウザ操作を、ローカルChromeなしで実行する処理

自分のブログでいえば、公開ページの見出し構造やリンクを確認する、記事ページがJavaScript込みで読めるかを調べる、といった仕事には使いやすそうだ。逆に、最終的な見た目の確認は、従来どおりChromeやPlaywrightで行った方がいい。

まだChromiumを選ぶ場面

Cloudflare自身も、Kitesurfがまだ対応できないものとして、動画再生、WebGL、Bot Challengeとのやり取り、長時間の認証済みセッションを挙げている。

ページごとに状態を持たないことは、エージェントを安全に大量実行するうえでは長所になる。反対に、ログインしたサービスを開きっぱなしにして、何度も戻りながら作業する用途には向かない。Cookieや認証情報を渡して使う場合は、特に慎重にした方がいい。

AIエージェントは、Webページ内に書かれた指示を自分への命令と誤認するプロンプトインジェクションにも注意が必要だ。Kitesurfはページを分離して実行するが、それだけでエージェントの判断ミスまで消えるわけではない。外部サイトを読む処理と、送信・購入・削除のような不可逆な操作は分けておきたい。

MCPから接続できる

KitesurfはCDPを話せるため、Chrome DevTools MCPのようなMCPサーバーから接続できる。公開Playgroundには、OpenCode向けに次の設定例が表示されている。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
  "mcp": {
    "kitesurf": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "chrome-devtools-mcp@latest",
        "--wsEndpoint=wss://kitesurf.cloudflare.app/devtools/browser"
      ],
      "enabled": true
    }
  }
}

これは公開Playgroundを試すための設定で、Kitesurf本体をPCにインストールするものではない。自分のCloudflareアカウントでBrowser Runを使う場合は、アカウントIDとAPIトークンが必要になる。公式ドキュメントでは、MCP接続用にBrowser Renderingの編集権限を持つAPIトークンを用意する手順が案内されている。

Kitesurfはベータ期間中、Browser Runでアカウント単位の制限付きで無料利用できると発表されている。ただし、Browser Run自体には無料枠と有料枠があり、大量に動かす前にはダッシュボードで利用量を確認した方がいい。

いまの評価

Kitesurfは「Chromeを軽くしたブラウザ」ではなく、「AIエージェントが必要とする部分に絞ったブラウザ」だ。HTMLとDOMを読んで短い操作をするなら、すでに試す理由がある。特に、処理を一時的に大量起動したいサービス側では、CPUとメモリの差が効いてくる。

ただ、Webサイトは画像、フォント、広告、認証、Bot対策などが絡み合っている。今回のテストでも、本文の抽出は成功したのにスクリーンショットは失敗した。現時点では、KitesurfをChromiumの代わりに全面採用するというより、DOM中心のタスクを任せる2本目のブラウザとして使うのがちょうどいい。

参考

この記事は Codex GPT-5 が執筆しました。

Next Action

おすすめリンク

この記事に合わせて、関連アイテムを探しやすいリンクをまとめています。

Affiliate Links

AIエージェント設計を深掘りする

AIエージェントや開発まわりを、もう少し詳しく学びたい人向けです。

AIエージェント設計の本を探す Claude、LLM、エージェント設計を深掘りしたい時向け
AI開発・Python本を探す API連携や実装まで踏み込みたい時向け
生成AIの本を探す 入門書、活用本、プロンプト本向け

外部ストアへのアフィリエイトリンクです。気になるものだけ開けば十分です。

この記事にお便りを送る

送信した内容は、その場ではページに出ません。届いたメールを管理人が読んで、 載せてよいものだけをこの欄に手で掲載し、そのとき返事も添えます。 時間差のあるコメント欄だと思ってください。 掲載しないこともありますし、返信をお約束するものでもありません。

B!