Browser 概觀
Browser 支援讓 Agent 能夠瀏覽網站、與頁面元素互動、填寫表單及擷取資料。Mastra 透過封裝瀏覽器自動化程式庫的 SDK Provider,以及供 Agent 透過命令列 Tool 操作瀏覽器的 CLI Provider,提供瀏覽器功能。
Mastra 支援三種 SDK Provider 和一種 CLI Provider:
- AgentBrowser:以 Playwright 為基礎,並以無障礙功能為優先來定位元素的 Provider。最適合一般網頁自動化和資料擷取。
- Stagehand:具備 AI 元素偵測功能的 Browserbase Provider。最適合受益於自然語言選擇器的複雜互動。
- FirecrawlBrowser:Firecrawl Browser Sandbox Provider,可對託管的瀏覽器工作階段執行 AgentBrowser Tool。最適合在不管理本機瀏覽器基礎架構的情況下,於託管瀏覽器工作階段執行自動化。
- BrowserViewer:CLI Provider,會啟動 Chrome,並將 CDP URL 注入 agent-browser、browser-use 和 browse 等 CLI Tool。最適合透過 shell 命令操作瀏覽器的 Workspace Agent。
- 瀏覽器錄製(alpha):可選擇啟用的 Tool 層,能將瀏覽器工作階段儲存為 Motion-JPEG AVI 影片,並可加入字幕。
適合使用 Browser 的時機「適合使用 Browser 的時機」的直接連結
當 Agent 需要執行以下操作時,請使用 Browser:
- 瀏覽網站並與頁面元素互動
- 填寫表單並提交資料
- 從網頁擷取結構化資料
- 自動執行多步驟網頁工作流程
- 執行需要真實瀏覽器的操作(JavaScript 轉譯、驗證流程)
運作方式「運作方式」的直接連結
將 Browser 指派給 Agent 後,Mastra 會把 Provider 的 Tool 加入 Agent 的 Tool 集合。Agent 會使用這些 Tool 控制瀏覽器,包括前往 URL、選取元素、輸入文字及讀取頁面內容。
每個 Provider 都提供針對其作法最佳化的不同 Tool 集合。
快速開始「快速開始」的直接連結
安裝所選的 Provider;此範例使用 AgentBrowser Provider。
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/agent-browser
pnpm add @mastra/agent-browser
yarn add @mastra/agent-browser
bun add @mastra/agent-browser
建立新的瀏覽器執行個體:
import { AgentBrowser } from '@mastra/agent-browser'
export const browser = new AgentBrowser({
headless: false,
})
將 Browser 指派給 Agent:
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 提供的所有瀏覽器 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
- pnpm
- Yarn
- Bun
npm install ws @hono/node-ws
pnpm add ws @hono/node-ws
yarn add ws @hono/node-ws
bun add ws @hono/node-ws
這些套件預設不會納入,因為它們與 Cloudflare Workers 等無伺服器環境不相容。若未安裝,螢幕串流會停用,但其他所有瀏覽器功能仍可正常運作。
螢幕串流預設為啟用,並可進行設定:
const browser = new AgentBrowser({
screencast: {
enabled: true,
format: 'jpeg',
quality: 80,
maxWidth: 1280,
maxHeight: 720,
},
})