Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloudflare「Kitesurf」を読む

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 Cloudflare「Kitesurf」を読む

Avatar for 赤神青空

赤神青空 PRO

August 11, 2026

Video

More Decks by 赤神青空

Other Decks in Programming

Transcript

  1. ▪2026年8月6日、Cloudflare「Agents 何が起きたか Week」 Cloudflareがブラウザを作った。 ただし、人間が見るためのものではない。 名前 Kitesurf。Browser Run でベータ提 供中、現在は無料。

    中身 Chromiumを使わず、Workers上の V8 isolateで動く。 結論を先に Chromiumより速くない。それでも 意味がある、という話。 AIエージェントが使うことだけを前提に設計された、初期段階のブラウザです。 今ココ はじめに 2/13
  2. ▪同じ仕事を、別の部品で組み直している Kitesurfが捨てたもの Chromium ⼈間のために作られた Kitesurf エージェントのために作られた タブ‧テーマ‧拡張機能 端末間の同期‧セッション保持 GPU合成‧60fpsスクロール この4層は、そもそも無い

    エージェントは画⾯を⾒ないので要らない ピクセル単位で正確な描画 HTML / CSS の解析とレイアウト Blitz + Stylo(Rust製) JavaScript の実⾏ V isolate + Boa JS ネットワークからの取得 SandboxOutbound 人間のための4層を落とし、エージェントが使う3層だけをWorkersの上で組み直した 今ココ しくみ 4/13
  3. ▪隔離とステートレスを、構造で担保している 3つの部品と、1つの出口 Kitesurf(Cloudflare Workers の上で動く) 画像‧CSS‧fetch() ページを開く エージェント Puppeteer /

    MCP Engine 唯⼀の公開⾯(CDP) セッション状態を持つ RPC: renderFrame() PageScript 1ページ = 1 isolate HTML/CSS解析‧JS実⾏ シーン(ページ内容) 最初の⽂書取得 PageRenderer SandboxOutbound 唯⼀の出⼝ CORS強制‧Cookie分離 違反は403で落とす Web 任意のサイト ラスタライズ PNG / JPEG / PDF この範囲から直接インターネットには出られない 状態を持つのは Engine だけ。ネットに出られるのは SandboxOutbound だけ 今ココ しくみ 6/13
  4. ▪行ごとに長いほうを最大幅にしている(14URL・5回計測の中央値) 何が良くなり、何が悪くなったか Chromium Kitesurf(有利) Kitesurf(不利) CPU時間 メモリ 所要時間 スクリーンショット取得時‧中央値 ,

    ms ms . MiB . MiB ms , ms 3.1倍 少ない 4.7倍 少ない 1.8倍 遅い 上2つが請求書に乗る。下1つは体感にしか乗らない。 有利な2つと不利な1つは、効いてくる場所が違う 今ココ 数字 7/13
  5. ▪Cloudflare自身がそう案内している 今は二階建てで使う ◯ Kitesurfが向く HTML抽出、スクリーンショット、PDF生成 単発で終わる Quick Actions 短時間・大量・並列のバースト処理 使い捨て前提のエージェント作業

    ✕ まだChromiumが要る 動画の再生、WebGLの描画 TLSフィンガープリントを見るbot対策 長時間ログインを維持する処理 表示互換性が厳しく問われる場面 「全部置き換える」ではなく「安いほうに流せる仕事を流す」という出し方をしています。 今ココ 使う 9/13
  6. ▪CDP互換なので、既存のコードは書き換えない 切り替えはパラメータ1つ Puppeteer / Playwright / MCPクライアントが、そのまま向き先を変えられます。 bash # Quick

    Actions(スクリーンショット) curl -X POST "$BASE/browser-run/screenshot?browser=kitesurf" \ -H "Authorization: Bearer $TOKEN" \ -d '{"url": "https://example.com"}' text # CDPエンドポイント wss://.../browser-run/devtools/browser?browser=kitesurf 今ココ 使う 10/13