StagehandBrowser class
The StagehandBrowser class provides AI-powered browser automation using Stagehand. It uses natural language instructions for interactions instead of element refs.
Use StagehandBrowser when you want AI to interpret and execute browser actions from natural language. For deterministic automation using element refs, see AgentBrowser.
Usage exampleUsage example的直接链接
import { Agent } from '@mastra/core/agent'
import { StagehandBrowser } from '@mastra/stagehand'
const browser = new StagehandBrowser({
headless: true,
model: 'openai/gpt-5.6-sol',
selfHeal: true,
})
export const browserAgent = new Agent({
id: 'browser-agent',
name: 'Browser Agent',
instructions: `You can browse the web using natural language.
Use stagehand_act to perform actions like "click the login button".
Use stagehand_extract to get data from pages.`,
model: 'openai/gpt-5.6-sol',
browser,
})
Constructor parametersConstructor parameters的直接链接
headless?:
viewport?:
env?:
apiKey?:
projectId?:
model?:
selfHeal?:
domSettleTimeout?:
verbose?:
systemPrompt?:
cdpUrl?:
scope?:
timeout?:
onLaunch?:
onClose?:
screencast?:
recording?:
excludeTools?:
ToolsTools的直接链接
StagehandBrowser provides 7 AI-powered tools for browser automation.
When recording is configured, StagehandBrowser also adds the Beta browser_record and browser_record_caption tools. See Browser recording (Beta).
Core tools:
| Tool | Description |
|---|---|
stagehand_act | Perform actions using natural language instructions |
stagehand_extract | Extract structured data from pages |
stagehand_observe | Discover useful elements on a page |
stagehand_navigate | Navigate to a URL |
stagehand_tabs | Manage browser tabs |
stagehand_screenshot | Capture a screenshot as PNG (viewport by default; set fullPage: true for full page) |
stagehand_close | Close the browser |
To exclude specific tools, pass excludeTools in the constructor:
const browser = new StagehandBrowser({
excludeTools: ['stagehand_screenshot'],
})
Tool referenceTool reference的直接链接
stagehand_actstagehand_act的直接链接
Perform an action using natural language instructions. The AI interprets your instruction and executes the appropriate browser action.
// Tool input
{
"instruction": "click the login button",
"variables": { "username": "john" },
"useVision": true,
"timeout": 30000
}
// With variable substitution
{
"instruction": "type %email% into the email field",
"variables": { "email": "user@example.com" }
}
| Parameter | Type | Description |
|---|---|---|
instruction | string | Natural language instruction (required) |
variables | Record<string, string> | Variables for %variableName% substitution (optional) |
useVision | boolean | Enable vision capabilities (optional) |
timeout | number | Timeout in ms (optional) |
Returns:
interface ActResult {
success: boolean
message?: string
action?: string
url?: string
}
stagehand_extractstagehand_extract的直接链接
Extract structured data from a page using natural language instructions.
// Basic extraction
{
"instruction": "extract all product names and prices"
}
// With schema for structured output
{
"instruction": "extract the product information",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"inStock": { "type": "boolean" }
}
}
}
Returns:
interface ExtractResult<T = unknown> {
success: boolean
data?: T
hint?: string
error?: string
url?: string
}
stagehand_observestagehand_observe的直接链接
Discover useful elements on a page. Returns a list of elements with their selectors and descriptions.
// Find specific elements
{
"instruction": "find all buttons related to checkout"
}
// Find all interactive elements
{
"onlyVisible": true
}
| Parameter | Type | Description |
|---|---|---|
instruction | string | Natural language instruction (optional, omit to find all) |
onlyVisible | boolean | Only include visible elements (optional) |
timeout | number | Timeout in ms (optional) |
Returns:
interface ObserveResult {
success: boolean
actions: StagehandAction[]
url?: string
}
interface StagehandAction {
selector: string
description: string
method?: string
arguments?: string[]
}
stagehand_navigatestagehand_navigate的直接链接
Navigate to a URL.
// Tool input
{
"url": "https://example.com",
"waitUntil": "domcontentloaded"
}
| Parameter | Type | Description |
|---|---|---|
url | string | URL to open (required) |
waitUntil | "load" | "domcontentloaded" | "networkidle" | When to consider navigation complete (optional) |
stagehand_tabsstagehand_tabs的直接链接
Manage browser tabs.
// List all tabs
{ "action": "list" }
// Open new tab
{ "action": "new", "url": "https://example.com" }
// Switch to tab by index
{ "action": "switch", "index": 0 }
// Close tab by index (or current if omitted)
{ "action": "close", "index": 1 }
stagehand_screenshotstagehand_screenshot的直接链接
Capture a screenshot of the current page as PNG (viewport by default. Set fullPage: true for full-page capture). Returns image content that vision-capable models can interpret directly. Use stagehand_observe or stagehand_extract when you only need text or structured data.
// Viewport only (default)
{}
// Full scrollable page
{ "fullPage": true }
| Parameter | Type | Description |
|---|---|---|
fullPage | boolean | Capture the full scrollable page instead of only the viewport (optional, default: false) |
stagehand_closestagehand_close的直接链接
Close the browser and clean up resources.
// Tool input (no parameters required)
{}
Using BrowserbaseUsing Browserbase的直接链接
Run Stagehand in the cloud using Browserbase:
const browser = new StagehandBrowser({
env: 'BROWSERBASE',
apiKey: process.env.BROWSERBASE_API_KEY,
projectId: process.env.BROWSERBASE_PROJECT_ID,
model: 'openai/gpt-5.6-sol',
})
Model configurationModel configuration的直接链接
Configure the AI model for Stagehand operations:
// String format: "provider/model"
const browser = new StagehandBrowser({
model: 'openai/gpt-5.6-sol',
})
// Object format for custom configuration
const browser = new StagehandBrowser({
model: {
modelName: 'gpt-5.4',
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://api.openai.com/v1',
},
})
AgentBrowser vs StagehandBrowserAgentBrowser vs StagehandBrowser的直接链接
| Aspect | AgentBrowser | StagehandBrowser |
|---|---|---|
| Approach | Deterministic refs (@e5) | Natural language |
| Precision | Exact element targeting | AI interpretation |
| Flexibility | Requires a snapshot first | Direct instructions |
| Use case | Reproducible automation | Adaptive automation |
| Speed | Faster (no AI inference) | Slower (AI inference) |
Choose AgentBrowser for precise, reproducible automation. Choose StagehandBrowser for flexible, natural language interactions.
RelatedRelated的直接链接
- MastraBrowser: Base class reference
- AgentBrowser: Deterministic alternative
- Browser overview: Conceptual guide
- Stagehand guide: Usage guide