ブラウザラン:AIエージェントにブラウザを提供する
CloudflareはAIエージェントのブラウザ操作を最適化するため、既存の「Browser Rendering」を「Browser Run」に改名し、CDPエンドポイントやMCPサポート、人間介入機能などを搭載したグローバル規模のブラウザインフラを正式提供開始した。
キーポイント
AIエージェント専用ブラウザインフラの提供
Cloudflareグローバルネットワーク上でヘッドレスChromeをオンデマンドで起動・制御可能にし、エージェントのWeb操作基盤を提供。
高度な制御と可観測性の統合
CDPエンドポイント、MCP/WebMCPサポート、ライブビュー、セッション録画により、エージェントの操作精度とデバッグ効率を大幅に強化。
人間介入(Human in the Loop)機能の実装
ログインや予期せぬケースでエージェントが失敗する代わりに、人間に制御を渡して解決後に戻す仕組みを標準搭載。
スケーラビリティの大幅向上
クイックアクションのレート制限を維持しつつ、並列ブラウザ実行数を30から120へ4倍増強し、大規模タスク処理に対応。
Cloudflare管理のグローバル分散ブラウザ環境
エージェントがオンデマンドでヘッドレスChromeインスタンスを起動可能。インフラ管理不要、低レイテンシ、自動スケーリングを実現。
CDPエンドポイントの直接公開
Chrome DevTools Protocolを直接APIとして公開し、エージェントフレームワークのネイティブ接続、詳細な制御・デバッグ機能、AIモデル向けの高効率コマンド送信を可能にする。
ワンライン設定での移行とクロス環境対応
既存のローカルChrome接続コードをWebSocket URLとAPIトークンの変更だけで移行可能。Cloudflare Worker不要で、あらゆる言語・環境からアクセスできる。
影響分析・編集コメントを表示
影響分析
CloudflareはAIエージェントのインフラ要件を明確に捉え、ブラウザ操作の標準化とスケーラビリティ向上で開発者エコシステムを強化した。特にCDPやMCP/WebMCPへの対応は、エージェント開発のハードルを下げ、業界標準の実装パターンを形成する可能性が高い。これにより、Web自動化エージェント市場の成長が加速し、大規模なデータ収集やRPAとの融合が進むと予想される。
編集コメント
ブラウザ操作をエージェント向けに最適化したインフラ提供は、Web自動化の標準化を加速させる。今後はMCP/WebMCP規格との連携が深まり、エージェント開発のポータビリティと信頼性がさらに向上するだろう。
私たちは意図的に /crawl を適切に動作するクローラーとして構築しました。これは、デフォルトでサイト所有者の設定を尊重し、Web Bot Auth を使用して暗号的に署名された明確なボットIDを持つ署名済みエージェントであり、カスタマイズ不可能なユーザーエージェントを持ち、robots.txt と AI Crawl Control に従います。Cloudflare のボット保護や CAPTCHA を回避することはありません。サイト所有者は自身のコンテンツがアクセス可能かどうかを選択し、/crawl はそれを尊重します。
# クロールを開始する
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl' \
-H 'Authorization: Bearer <apiToken>' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://blog.cloudflare.com/"
}'
3) 可観測性
最初の試みで常にうまくいくとは限りません。私たちは顧客から、自動化が失敗したときにその理由が全くわからないという声を聞き続けていました。そのため、何が起きているかを観察するための複数の方法を追加しました。これにより、エージェントが見ているものを、リアルタイムでも事後でも正確に確認できます。
ライブビュー
ライブビューでは、エージェントのブラウザセッションをリアルタイムで見ることができます。エージェントのデバッグをしている場合でも、長い自動化スクリプトを実行している場合でも、何が起きているかをそのまま見ることができます。これにはページ自体だけでなく、DOM、コンソール、ネットワークリクエストも含まれます。何か問題が起きたとき ― 期待したボタンがない、ページが認証を必要とする、CAPTCHAが表示される ― すぐにそれをキャッチできます。
ライブビューにアクセスする方法は2つあります。コードからは、検査したいブラウザの session_id を取得し、レスポンスから devtoolsFrontendURL を Chrome で開きます。または、Cloudflare ダッシュボードから、Browser Run セクションの新しいライブセッションタブを開き、アクティブなセッションをクリックします。
ホテルを予約するAIエージェントのライブビュー、リアルタイムのブラウザアクティビティを表示
セッション記録
ライブビューは利用可能なときには素晴らしいですが、すべてのセッションを監視することはできません。セッション記録は、DOMの変更、マウスおよびキーボードイベント、ページナビゲーションを構造化されたJSONとしてキャプチャするので、セッション終了後にどのセッションでも再生できます。
ブラウザ起動時に recording:true を渡すことでセッション記録を有効にします。セッション終了後、Cloudflare ダッシュボードの Runs タブから記録にアクセスするか、API 経由で記録を取得し、rrweb-player で再生できます。今後、記録中の任意の時点で DOM 状態とコンソール出力を検査する機能を追加します。
Sentry Shop を閲覧し、ボンバージャケットをカートに追加するブラウザ自動化のセッション記録再生
ダッシュボードの再設計
以前は、Browser Run ダッシュボードはブラウザセッションからのログのみを表示していました。スクリーンショット、PDF、マークダウン、クロールのリクエストは表示されませんでした。再設計されたダッシュボードはこれを変更します。新しい Runs タブはすべてのリクエストを表示します。エンドポイントでフィルタリングし、ターゲットURL、ステータス、所要時間を含む詳細を表示できます。
image
Browser Run ダッシュボードの Runs タブは、ブラウザセッションと、PDF、スクリーンショット、クロールなどのクイックアクションを単一ビューで表示し、クロールジョブが展開されて進行状況を示している
4) 人間の介入
エージェントは優れていますが、完璧ではありません。時々、人間が介入する必要があります。Browser Run は、人間がライブブラウザセッションを制御し、自動化ができないことを処理し、その後セッションを継続できる Human in the Loop ワークフローをサポートします。
Human in the Loop
自動化が壁にぶつかったとき、再起動する必要はありません。Human in the Loop では、介入してページと直接対話し、クリック、タイプ、ナビゲート、資格情報の入力、フォームの送信を行うことができます。これにより、エージェントが処理できないワークフローが可能になります。
現在、アクティブなセッションのライブビューURLを開くことで介入できます。今後、エージェントが助けが必要なときに合図し、人間に介入を通知し、問題が解決したら制御をエージェントに戻すハンドオフフローを追加します。
オレンジのラバランプを Amazon で検索し、オプションを比較し、購入を完了するためにサインインが必要なときに人間にハンドオフするAIエージェント
5) スケーリング
顧客は、より多く、より速く行えるように制限を引き上げてほしいと要望していました。
より高い制限
デフォルトの同時ブラウザ制限を30から120に4倍に増やしました。すべてのセッションで、ウォームインスタンスのグローバルプールからブラウザに即座にアクセスできるので、ブラウザが起動するのを待つコールドスタートはありません。3月には、クイックアクションの制限も1秒あたり10リクエストに増やしました。より高い制限が必要な場合は、リクエストにより利用可能です。
次のステップ
Human in the Loop ハンドオフ: 現在、ライブビューを通じてブラウザセッションに介入できます。まもなく、エージェントが助けが必要なときに合図できるようになり、人間に介入を通知するアラートを組み込むことができます。
セッション記録の検査: すでにタイムラインをスクラブし、任意のセッションを再生できます。まもなく、DOM 状態とコンソール出力も検査できるようになります。
トレースとブラウザログ: コードを計装することなくデバッグ情報にアクセスします。コンソールログ、ネットワークリクエスト、タイミングデータ。何かが壊れた場合、どこで壊れたかわかります。
Workers から直接スクリーンショット、PDF、マークダウン: REST API を通じて利用可能な同じシンプルなタスクが Workers Bindings に追加されます。env.BROWSER.screenshot() は API トークンなしで動作します。
始めましょう
Browser Run は、Workers Free プランと Workers Paid プランの両方で本日利用可能です。本日リリースしたすべての機能 ― ライブビュー、Human in the Loop、セッション記録、より高い同時実行制限 ― は使用可能です。
すでに Browser Rendering を使用していた場合、すべて同じように動作し、新しい名前とより多くの機能が追加されただけです。
ドキュメントをチェックして始めてください。
image
原文を表示
AI agents need to interact with the web. To do that, they need a browser. They need to navigate sites, read pages, fill forms, extract data, and take screenshots. They need to observe whether things are working as expected, with a way for their humans to step in if needed. And they need to do all of this at scale.
Today, we’re renaming Browser Rendering to Browser Run, and shipping key features that make it the browser for AI agents. The name Browser Rendering never fully captured what the product does. Browser Run lets you run full browser sessions on Cloudflare's global network, drive them with code or AI, record and replay sessions, crawl pages for content, debug in real time, and let humans intervene when your agent needs help.
Here’s what’s new:
Live View: see what your agent sees and is doing, in real time. Know instantly if things are working, and when they’re not, see exactly why.
Human in the Loop: when your agent hits a snag like a login page or unexpected edge case, it can hand off to a human instead of failing. The human steps in, resolves, then hands back control.
Chrome DevTools Protocol (CDP) Endpoint: the Chrome DevTools Protocol is how agents control browsers. Browser Run now exposes it directly, so agents get maximum control over the browser and existing CDP scripts work on Cloudflare.
MCP Client Support: AI coding agents like Claude Desktop, Cursor, and OpenCode can now use Browser Run as their remote browser.
WebMCP Support: agents will outnumber humans using the web. WebMCP allows websites to declare what actions are available for agents to discover and call, making navigation more reliable.
Session Recordings: capture every browser session for debugging purposes. When something goes wrong, you have the full recording with DOM changes, user interactions, and page navigation.
Higher limits: run more tasks at once with 120 concurrent browsers, up from 30.
An AI agent searching Amazon for an orange lava lamp, comparing options, and handing off to a human when sign-in is required to complete the purchase
Everything an agent needs
Let’s think about what agents need when browsing the web and how each feature fits in:
What an agent needs
Browser Run (formerly Browser Rendering)
1) Browsers on-demand
Chrome browser on Cloudflare’s global network
2) A way to control the browser
Take actions like navigate, click, fill forms, screenshot, and more with Puppeteer, Playwright, CDP (new), MCP Client Support (new) and WebMCP (new)
3) Observability
Live View (new), Session Recordings (new), and Dashboard redesign (new)
4) Human intervention
Human in the Loop (new)
5) Scale
10 requests/second for Quick Actions, 120 concurrent browsers (4x increase)
1) Open a browser
First, an agent needs a browser. With Browser Run, agents can spin up a headless Chrome instance on Cloudflare’s global network, on demand. No infrastructure to manage, no Chrome versions to maintain. Browser sessions open near users for low latency, and scale up and down as needed. Pair Browser Run with the Agents SDK to build long-running agents that browse the web, remember everything, and act on their own.
2) Take actions
Once your agent has a browser, it needs ways to control it. Browser Run supports multiple approaches: new low-level protocol access with the Chrome DevTools Protocol (CDP) and WebMCP, in addition to existing higher-level automation using Puppeteer and Playwright, and Quick Actions for simple tasks. Let’s look at the details.
Chrome DevTools Protocol (CDP) endpoint
The Chrome DevTools Protocol (CDP) is the low-level protocol that powers browser automation. Exposing CDP directly means the growing ecosystem of agent tools and existing CDP automation scripts can use Browser Run. When you open Chrome DevTools and inspect a page, CDP is what's running underneath. Puppeteer, Playwright, and most agent frameworks are built on top of it.
Every way that you have been using Browser Run has actually been through CDP already. What’s new is that we're now exposing CDP directly as an endpoint. This matters for agents because CDP gives agents the most control possible over the browser. Agent frameworks already speak CDP natively, and can now connect to Browser Run directly. CDP also unlocks browser actions that aren't available through Puppeteer or Playwright, like JavaScript debugging. And because you're working with raw CDP messages instead of going through higher-level libraries, you can pass messages directly to models for more token-efficient browser control.
If you already have CDP automation scripts running against self-hosted Chrome, they work on Browser Run with a one-line config change. Point your WebSocket URL at Browser Run and stop managing your own browser infrastructure.
// Before: connecting to self-hosted Chrome
const browser = await puppeteer.connect({
browserWSEndpoint: 'ws://localhost:9222/devtools/browser'
});
// After: connecting to Browser Run
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-rendering/devtools/browser',
headers: { 'Authorization': 'Bearer <API_TOKEN>' }
});
The CDP endpoint also makes Browser Run more accessible. You can now connect from any language, any environment, without needing to write a Cloudflare Worker. (If you're already using Workers, nothing changes.)
Using Browser Run with MCP Clients
Now that Browser Run exposes the Chrome DevTools Protocol (CDP), MCP clients including Claude Desktop, Cursor, Codex, and OpenCode can use Browser Run as their remote browser. The chrome-devtools-mcp package from the Chrome DevTools team is an MCP server that gives your AI coding assistant access to the full power of Chrome DevTools for reliable automation, in-depth debugging, and performance analysis.
Here’s an example of how to configure Browser Run for Claude Desktop:
{
"mcpServers": {
"browser-rendering": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--wsEndpoint=wss://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/browser-rendering/devtools/browser?keep_alive=600000",
"--wsHeaders={\"Authorization\":\"Bearer <API_TOKEN>\"}"
]
}
}
}
For other MCP clients, see documentation for using Browser Run with MCP clients.
WebMCP support
The Internet was built for humans, so navigating as an AI agent today is unreliable. We’re betting on a future where more agents use the web than humans. In that world, sites need to be agent-friendly.
That’s why we’re launching support for WebMCP, a new browser API from the Google Chrome team that landed in Chromium 146+. WebMCP lets websites expose tools directly to AI agents, declaring what actions are available for agents to discover and call on each page. This helps agents navigate the web more reliably. Instead of agents needing to figure out how to use a site, websites can expose their tools for agents to discover and call
Two APIs make this work:
navigator.modelContext allows websites to register their tools
navigator.modelContextTesting allows agents to discover and execute those tools
Today, an agent visiting a travel booking site has to figure out the UI by looking at it. With WebMCP, the site declares “here’s a search_flights tool that takes an origin, destination, and date.” The agent calls it directly, without having to loop through slow screenshot-analyze-click loops. This makes navigation more reliable regardless of potential changes to the UI.
Tools are discovered on the page rather than preloaded. This matters for the long tail of the web, where preloading an MCP server for every possible site is not feasible and would bloat the context window.
Using WebMCP to book a hotel through the Chrome DevTools console, discovering available tools with listTools()
We have an experimental pool with browser instances running Chrome beta so you can test emerging browser features before they reach stable Chrome. We also just shipped Wrangler browser commands that let you manage browser sessions directly from the CLI, letting you create, manage, and view browser sessions directly from your terminal. To access WebMCP-enabled browsers, use the following Wrangler command to create a session in the experimental pool:
npm i -g wrangler@latest
wrangler browser create --lab --keepAlive 300
Existing ways to use Browser Run
While CDP and WebMCP are new, you could already use Puppeteer, Playwright, or Stagehand for full browser automation through Browser Run. And for simple tasks like capturing screenshots, generating PDFs, and extracting markdown, there are the Quick Action endpoints.
/crawl endpoint — crawl web content
We also recently shipped a /crawl endpoint that lets you crawl entire sites with a single API call. Give it a starting URL and pages are automatically discovered and scraped, then returned in your preferred format (HTML, Markdown, and structured JSON), with additional parameters to control crawl depth and scope, skip pages that haven’t changed, and specify certain paths to include or exclude.
We intentionally built /crawl to be a well-behaved crawler. That means it respects site owner’s preferences out of the box, is a signed agent with a distinct bot ID that is cryptographically signed using Web Bot Auth, a non-customizable User-Agent, and follows robots.txt and AI Crawl Control. It does not bypass Cloudflare’s bot protections or CAPTCHAs. Site owners choose whether their content is accessible and /crawl respects it.
# Initiate a crawl
curl -X POST 'https://api.cloudflare.com/client/v4/accounts/{account_id}/browser-rendering/crawl' \
-H 'Authorization: Bearer <apiToken>' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://blog.cloudflare.com/"
}'
3) Observe
Things don’t always go right the first try. We kept hearing from customers that when their automations failed, they had no idea why. That’s why we’ve added multiple ways to observe what’s happening, so you can see exactly what your agent sees, both live and after the fact.
Live View
Live View lets you watch your agent’s browser session in real time. Whether you’re debugging an agent or running a long automation script, you see exactly what’s happening as it happens. This includes the page itself, as well as the DOM, console, and network requests. When something goes wrong — the expected button isn't there, the page needs authentication, or a CAPTCHA appears — you can catch it immediately.
There are two ways to access Live View. From code, obtain the session_id of the browser you want to inspect and open the devtoolsFrontendURL from the response in Chrome. Or from the Cloudflare dashboard, open the new Live Sessions tab in the Browser Run section and click into any active session.
Live View of an AI agent booking a hotel, showing real-time browser activity
Session Recordings
Live View is great when you’re available, but you can’t watch every session. Session Recordings captures DOM changes, mouse and keyboard events, and page navigation as structured JSON so you can replay any session after it ends.
Enable Session Recordings by passing recording:true when launching a browser. After the session closes, you can access the recording in the Cloudflare dashboard from the Runs tab or retrieve recordings via API and replay them with the rrweb-player. Next, we’re adding the ability to inspect DOM state and console output at any point during the recording.
Session recording replay of a browser automation browsing the Sentry Shop and adding a bomber jacket to the cart
Dashboard Redesign
Previously, the Browser Run dashboard only showed logs from browser sessions. Requests for screenshots, PDFs, markdown, and crawls were not visible. The redesigned dashboard changes that. The new Runs tab shows every request. You can filter by endpoint and view details including target URLs, status, and duration.
image
The Browser Run dashboard Runs tab showing browser sessions and quick actions like PDF, Screenshot, and Crawl in a single view, with a crawl job expanded to show its progress
4) Intervene
Agents are good, but they’re not perfect. Sometimes they need their human to step in. Browser Run supports Human in the Loop workflows where a human can take control of a live browser session, handle what the automation cannot, then let the session continue.
Human in the Loop
When automation hits a wall, you don't have to restart. With Human in the Loop, you can step in and interact with the page directly to click, type, navigate, enter credentials, or submit forms. This unlocks workflows that agents cannot handle.
Today, you can step in by opening the Live View URL for any active session. Next, we’re adding a handoff flow where the agent can signal that it needs help, notify a human to step in, then hand control back to the agent once the issue is resolved.
An AI agent searching Amazon for an orange lava lamp, comparing options, and handing off to a human when sign-in is required to complete the purchase
5) Scale
Customers have asked us to raise limits so that they can do more, faster.
Higher limits
We've quadrupled the default concurrent browser limit from 30 to 120. Every session gives you instant access to a browser from a global pool of warm instances, so there's no cold start waiting for a browser to spin up. In March, we also increased limits for Quick Actions to 10 requests per second. If you need higher limits, they're available by request.
What's next
Human in the Loop Handoff: today you can intervene in a browser session through Live View. Soon, the agent will be able to signal when it needs help, so you can build in notifications to alert a human to step in.
Session Recordings Inspection: you can already scrub through the timeline and replay any session. Soon, you’ll be able to inspect DOM state and console output as well.
Traces and Browser Logs: access debugging information without instrumenting your code. Console logs, network requests, timing data. If something broke, you'll know where.
Screenshot, PDF, and markdown directly from Workers: the same simple tasks available through the REST API are coming to Workers Bindings. env.BROWSER.screenshot() just works, with no API tokens needed.
Get started
Browser Run is available today on both the Workers Free and Workers Paid plans. Everything we shipped today — Live View, Human in the Loop, Session Recordings, and higher concurrency limits — is ready to use.
If you were already using Browser Rendering, everything works the same, just with a new name and more features.
Check out the documentation to get started.
image
関連記事
AIの現実検証:3社がウォレット、住宅、ゲーム構築で学んだこと
シティ、ホームデポ、カプコンの経営陣は、AIエージェントが実験ツールから顧客対応業務へ移行する過程で得た知見を語った。次なる課題は、金銭や創造的出力に関わる際のガバナンスと信頼性の確保である。
アンストロピック「強力なAIモデルはより良い取引を実現し、劣るモデルを使う利用者は気づかない」
アンストロピックは社内市場で69のAIエージェントに取引をさせ、強力なモデルがより良い結果を出した。利用者は劣るモデルの差に気づかず、AIの実取引化は経済格差を拡大させる可能性がある。
ClaudeがSpotifyやUber Eatsなどの個人アプリに直接接続
AnthropicはClaudeがSpotifyやUber Eats、TurboTaxなどの個人アプリに直接接続できる新機能を提供した。これにより、ユーザーはハikingから grocery shopping まで多様なサービスを利用可能になる。