メインコンテンツへ移動

Browser の概要

Browser サポートにより、Agent は Web サイト内を移動し、ページ要素を操作し、フォームに入力してデータを抽出できます。Mastra は、ブラウザ自動化ライブラリをラップする SDK Provider と、コマンドライン Tool を通じてブラウザを操作する Agent 向けの CLI Provider により、ブラウザ機能を提供します。

Mastra は、3 つの SDK Provider と 1 つの CLI Provider をサポートしています。

  • AgentBrowser: アクセシビリティを優先して要素を指定する Playwright ベースの Provider です。一般的な Web 自動化とスクレイピングに最適です。
  • Stagehand: AI を利用して要素を検出する Browserbase Provider です。自然言語セレクターが役立つ複雑な操作に最適です。
  • FirecrawlBrowser: ホストされたブラウザセッションに対して AgentBrowser Tool を実行する Firecrawl Browser Sandbox Provider です。ローカルのブラウザインフラストラクチャを管理せずに、ホストされたブラウザセッションで自動化を実行する場合に最適です。
  • BrowserViewer: Chrome を起動し、agent-browser、browser-use、browse などの CLI Tool に CDP URL を渡す CLI Provider です。シェルコマンドを通じてブラウザを操作する Workspace Agent に最適です。
  • ブラウザ録画(アルファ版): ブラウザセッションを、任意のキャプション付き Motion-JPEG AVI 動画として保存するオプトイン方式の Tool レイヤーです。

Browser を使用する場面
Browser を使用する場面への直接リンク

Agent で次の操作が必要な場合に Browser を使用します。

  • Web サイトに移動してページ要素を操作する
  • フォームに入力してデータを送信する
  • Web ページから構造化データを抽出する
  • 複数ステップの Web Workflow を自動化する
  • 実際のブラウザが必要な操作を実行する(JavaScript のレンダリング、認証フロー)

仕組み
仕組みへの直接リンク

Browser を Agent に割り当てると、Mastra は Provider の Tool を Agent の Tool セットに追加します。Agent はこれらの Tool を使用して、URL への移動、要素の選択、テキストの入力、ページ内容の読み取りなど、ブラウザを操作します。

各 Provider は、それぞれの方式に最適化された異なる Tool セットを提供します。

クイックスタート
クイックスタートへの直接リンク

使用する Provider をインストールします。この例では AgentBrowser Provider を使用します。

npm install @mastra/agent-browser

新しいブラウザインスタンスを作成します。

src/mastra/browsers.ts
import { AgentBrowser } from '@mastra/agent-browser'

export const browser = new AgentBrowser({
headless: false,
})

Browser を Agent に割り当てます。

src/mastra/agents/web-agent.ts
import { Agent } from '@mastra/core/agent'
import { browser } from '../browsers'

export const webAgent = new Agent({
id: 'web-agent',
name: 'Web Agent',
description: 'A web automation assistant that can navigate websites and complete tasks.',
model: 'openai/gpt-5.6-sol',
browser,
instructions:
'You are a web automation assistant. Use browser tools to navigate websites and complete tasks.',
})

Agent は Provider のすべての Browser Tool を自動的に受け取ります。

クラウド Provider
クラウド Providerへの直接リンク

すべての SDK Provider は、ローカルブラウザを起動する代わりに、クラウドブラウザサービスへの接続をサポートしています。

Firecrawl Browser Sandbox(FirecrawlBrowser ネイティブ)
Firecrawl Browser Sandbox(FirecrawlBrowser ネイティブ)への直接リンク

FirecrawlBrowser は、Firecrawl API を通じてホストされたセッションをプロビジョニングします。

import { FirecrawlBrowser } from '@mastra/browser-firecrawl'

const browser = new FirecrawlBrowser({
apiKey: process.env.FIRECRAWL_API_KEY,
})

Browserbase(Stagehand ネイティブ)
Browserbase(Stagehand ネイティブ)への直接リンク

Stagehand は Browserbase とネイティブに統合されています。

import { StagehandBrowser } from '@mastra/stagehand'

const browser = new StagehandBrowser({
env: 'BROWSERBASE',
apiKey: process.env.BROWSERBASE_API_KEY,
projectId: process.env.BROWSERBASE_PROJECT_ID,
})

CDP URL(任意の Provider)
CDP URL(任意の Provider)への直接リンク

Chrome DevTools Protocol(CDP)エンドポイントを公開する任意のブラウザに接続します。

import { AgentBrowser } from '@mastra/agent-browser'

const browser = new AgentBrowser({
cdpUrl: process.env.BROWSER_CDP_URL,
headless: true,
})

これは、任意の CDP 互換ブラウザサービスで動作します。

スクリーンキャスト
スクリーンキャストへの直接リンク

Browser Provider は、ブラウザのライブ映像を Mastra Studio UI にストリーミングします。これにより、Agent がページを操作する様子をリアルタイムで確認できます。

スクリーンキャストには WebSocket のサポートが必要です。プロジェクトに次のパッケージをインストールします。

npm install ws @hono/node-ws
注記

これらのパッケージは Cloudflare Workers などのサーバーレス環境と互換性がないため、デフォルトでは含まれていません。インストールされていない場合、スクリーンキャストは無効になりますが、その他のすべての Browser 機能は通常どおり動作します。

スクリーンキャストはデフォルトで有効になっており、次のように設定できます。

const browser = new AgentBrowser({
screencast: {
enabled: true,
format: 'jpeg',
quality: 80,
maxWidth: 1280,
maxHeight: 720,
},
})

次のステップ
次のステップへの直接リンク