Files
blogflare/.agents/plugins/cloudflare/skills/agents-sdk/references/browse-the-web.md
T
2026-09-25 12:11:51 +08:00

1.7 KiB

Browse the Web (Experimental)

Fetch https://developers.cloudflare.com/agents/api-reference/browse-the-web/ for complete documentation.

CDP-powered browser tools that let agents scrape, screenshot, and interact with web pages.

Setup

// wrangler.jsonc
{
	"browser": { "binding": "BROWSER" },
	"worker_loaders": [{ "binding": "LOADER" }],
	"compatibility_flags": ["nodejs_compat"]
}

Usage with AI SDK

import { createBrowserTools } from 'agents/browser/ai';

export class MyAgent extends AIChatAgent<Env> {
	async onChatMessage(onFinish) {
		const browserTools = createBrowserTools({
			browser: this.env.BROWSER,
			loader: this.env.LOADER
		});

		const result = streamText({
			model: openai('gpt-4o'),
			messages: await convertToModelMessages(this.messages),
			tools: { ...myTools, ...browserTools },
			onFinish
		});
		return result.toUIMessageStreamResponse();
	}
}

Available Tools

Tool Purpose
browser_search Search the web and return results
browser_execute Navigate to URL, execute JS, return results

The LLM writes async JavaScript IIFEs that run in a fresh browser session.

When to Use

  • Need a real browser (JS rendering, screenshots, interaction) → browser tools
  • Just need HTML/API data → use fetch() instead (faster, cheaper)

Low-Level API

import { connectBrowser, CdpSession } from 'agents/browser';

const browser = await connectBrowser(this.env.BROWSER);
const cdp = new CdpSession(browser);
await cdp.send('Page.navigate', { url: 'https://example.com' });