StagehandBrowser 클래스
그만큼StagehandBrowser클래스는 다음을 사용하여 AI 기반 브라우저 자동화를 제공합니다.무대 담당자. 요소 참조 대신 상호 작용을 위해 자연어 지침을 사용합니다.
AI가 자연어로 브라우저 동작을 해석하고 실행하도록 하려면 StagehandBrowser를 사용하세요. 요소 참조를 사용하는 결정론적 자동화는 AgentBrowser를 참조하세요.
사용예사용예에 대한 직접 링크
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,
})
생성자 매개변수생성자 매개변수에 대한 직접 링크
headless?:
viewport?:
env?:
apiKey?:
projectId?:
model?:
selfHeal?:
domSettleTimeout?:
verbose?:
systemPrompt?:
cdpUrl?:
scope?:
timeout?:
onLaunch?:
onClose?:
screencast?:
recording?:
excludeTools?:
ToolTool에 대한 직접 링크
StagehandBrowser브라우저 자동화를 위한 7가지 AI 기반 Tool을 제공합니다.
recording이 구성되면 StagehandBrowser는 알파 Tool인 browser_record와 browser_record_caption도 추가합니다. 브라우저 녹화(알파)를 참조하세요.
핵심 Tool:
| Tool | 설명 |
|---|---|
stagehand_act | 자연어 지시에 따라 동작을 수행합니다 |
stagehand_extract | 페이지에서 구조화된 데이터를 추출합니다 |
stagehand_observe | 페이지에서 유용한 요소를 찾습니다 |
stagehand_navigate | URL로 이동합니다 |
stagehand_tabs | 브라우저 탭을 관리합니다 |
stagehand_screenshot | PNG 스크린샷을 캡처합니다(기본값은 뷰포트이며 전체 페이지는 fullPage: true로 설정) |
stagehand_close | 브라우저를 닫습니다 |
특정 Tool을 제외하려면 생성자에서 excludeTools를 전달하세요. |
const browser = new StagehandBrowser({
excludeTools: ['stagehand_screenshot'],
})
Tool 참조Tool 참조에 대한 직접 링크
stagehand_actstagehand_act에 대한 직접 링크
자연어 지침을 사용하여 작업을 수행합니다. AI는 사용자의 지시를 해석하고 적절한 브라우저 작업을 실행합니다.
// 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" }
}
| 매개변수 | 유형 | 설명 |
|---|---|---|
instruction | string | 자연어 지시(필수) |
variables | Record<string, string> | %variableName% 치환을 위한 변수(선택 사항) |
useVision | boolean | 시각 기능 활성화(선택 사항) |
timeout | number | 제한 시간(밀리초, 선택 사항) |
| 보고: |
interface ActResult {
success: boolean
message?: string
action?: string
url?: string
}
stagehand_extractstagehand_extract에 대한 직접 링크
자연어 지침을 사용하여 페이지에서 구조화된 데이터를 추출합니다.
// 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" }
}
}
}
보고:
interface ExtractResult<T = unknown> {
success: boolean
data?: T
hint?: string
error?: string
url?: string
}
stagehand_observestagehand_observe에 대한 직접 링크
페이지에서 유용한 요소를 찾아보세요. 선택기와 설명이 포함된 요소 목록을 반환합니다.
// Find specific elements
{
"instruction": "find all buttons related to checkout"
}
// Find all interactive elements
{
"onlyVisible": true
}
| 매개변수 | 유형 | 설명 |
|---|---|---|
instruction | string | 자연어 지시(선택 사항, 모두 찾으려면 생략) |
onlyVisible | boolean | 표시되는 요소만 포함(선택 사항) |
timeout | number | 제한 시간(밀리초, 선택 사항) |
| 보고: |
interface ObserveResult {
success: boolean
actions: StagehandAction[]
url?: string
}
interface StagehandAction {
selector: string
description: string
method?: string
arguments?: string[]
}
stagehand_navigatestagehand_navigate에 대한 직접 링크
URL로 이동합니다.
// Tool input
{
"url": "https://example.com",
"waitUntil": "domcontentloaded"
}
| 매개변수 | 유형 | 설명 |
|---|---|---|
url | string | 열 URL(필수) |
waitUntil | "load" | "domcontentloaded" | "networkidle" | 탐색이 완료된 것으로 간주할 시점(선택 사항) |
stagehand_tabsstagehand_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에 대한 직접 링크
현재 페이지의 스크린샷을 PNG로 캡처합니다(기본값은 뷰포트이며 전체 페이지를 캡처하려면 fullPage: true로 설정). 시각 기능을 지원하는 Model이 직접 해석할 수 있는 이미지 콘텐츠를 반환합니다. 텍스트나 구조화된 데이터만 필요하다면 stagehand_observe 또는 stagehand_extract를 사용하세요.
// Viewport only (default)
{}
// Full scrollable page
{ "fullPage": true }
| 매개변수 | 유형 | 설명 |
|---|---|---|
fullPage | boolean | 뷰포트만이 아니라 스크롤 가능한 전체 페이지를 캡처합니다(선택 사항, 기본값: false) |
stagehand_closestagehand_close에 대한 직접 링크
브라우저를 닫고 리소스를 정리하세요.
// Tool input (no parameters required)
{}
브라우저베이스 사용브라우저베이스 사용에 대한 직접 링크
Browserbase를 사용하여 클라우드에서 Stagehand를 실행합니다.
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 구성Model 구성에 대한 직접 링크
Stagehand 작업을 위한 AI Model을 구성합니다.
// 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 대 StagehandBrowserAgentBrowser 대 StagehandBrowser에 대한 직접 링크
| 측면 | AgentBrowser | StagehandBrowser |
|---|---|---|
| 접근 방식 | 결정론적 참조(@e5) | 자연어 |
| 정밀도 | 정확한 요소 지정 | AI 해석 |
| 유연성 | 먼저 스냅샷 필요 | 직접 지시 |
| 사용 사례 | 재현 가능한 자동화 | 적응형 자동화 |
| 속도 | 더 빠름(AI 추론 없음) | 더 느림(AI 추론 사용) |
정밀하고 재현 가능한 자동화에는 AgentBrowser를 선택하세요. 유연한 자연어 상호작용에는 StagehandBrowser를 선택하세요. |