브라우저뷰어
그만큼BrowserViewer클래스는 CLI 기반 Tool에 대한 브라우저 자동화를 제공합니다. Playwright를 통해 Chrome을 실행하고 CDP(Chrome DevTools Protocol) URL을 노출하며 작업공간 Tool을 통해 실행되는 CLI 명령에 자동으로 삽입합니다.
Agent가 browser-use, agent-browser, browse 같은 CLI Tool을 통해 브라우저를 제어할 때 BrowserViewer를 사용하세요. SDK 기반 브라우저 자동화에는 AgentBrowser 또는 StagehandBrowser를 사용하세요.
사용예사용예에 대한 직접 링크
import { Workspace, LocalSandbox } from '@mastra/core/workspace'
import { Memory } from '@mastra/memory'
import { BrowserViewer } from '@mastra/browser-viewer'
import { Agent } from '@mastra/core/agent'
const workspace = new Workspace({
sandbox: new LocalSandbox({
workingDirectory: './workspace',
}),
browser: new BrowserViewer({
cli: 'browser-use',
headless: false,
}),
})
const browserAgent = new Agent({
id: 'browser-agent',
model: 'openai/gpt-5.6-sol',
workspace,
instructions: 'You are a web automation assistant.',
memory: new Memory(),
})
기존 브라우저에 연결기존 브라우저에 연결에 대한 직접 링크
const viewer = new BrowserViewer({
cli: 'browser-use',
cdpUrl: 'ws://127.0.0.1:9222/devtools/browser/abc123',
})
cdpUrl이 제공되면 BrowserViewer는 새 브라우저를 실행하는 대신 기존 브라우저에 연결합니다. 범위의 기본값은 'shared'입니다.
생성자 매개변수생성자 매개변수에 대한 직접 링크
cli:
headless?:
cdpUrl?:
cdpPort?:
scope?:
viewport?:
executablePath?:
onLaunch?:
onClose?:
screencast?:
속성속성에 대한 직접 링크
id:
name:
provider:
providerType:
cli:
status:
행동 양식행동 양식에 대한 직접 링크
수명주기수명주기에 대한 직접 링크
launch(threadId?)launchthreadid에 대한 직접 링크
Chrome을 실행합니다. 'shared' 범위에서는 공유 브라우저 하나를 실행합니다. 'thread' 범위에서는 지정된 스레드의 브라우저를 실행합니다.
await viewer.launch()
await viewer.launch('thread-123')
ensureReady()ensureready에 대한 직접 링크
브라우저가 실행되어 준비되었는지 확인합니다. 'thread' 범위에서는 필요한 경우 현재 스레드에 새 브라우저를 생성합니다.
await viewer.ensureReady()
isBrowserRunning(threadId?)isbrowserrunningthreadid에 대한 직접 링크
브라우저가 실행 중인지 확인합니다. 'thread' 범위에서는 지정된 스레드를 확인합니다.
const running = viewer.isBrowserRunning()
const threadRunning = viewer.isBrowserRunning('thread-123')
보고:boolean
close()close에 대한 직접 링크
모든 브라우저 인스턴스를 닫고 리소스를 정리합니다.
await viewer.close()
CDP 액세스CDP 액세스에 대한 직접 링크
getCdpUrl(threadId?)getcdpurlthreadid에 대한 직접 링크
현재 또는 지정된 스레드에 대한 CDP WebSocket URL을 반환합니다. CLI Tool은 이 URL을 사용하여 관리되는 브라우저에 연결합니다.
const cdpUrl = viewer.getCdpUrl()
// => 'ws://127.0.0.1:52481/devtools/browser/abc...'
보고:string | null
connectToExternalCdp(cdpUrl, threadId?)connecttoexternalcdpcdpurl-threadid에 대한 직접 링크
스크린캐스트를 위해 CDP URL을 통해 외부 브라우저에 연결합니다. Agent가 자체 브라우저 엔드포인트(예: 클라우드 브라우저 서비스)를 제공하는 경우 이를 사용합니다. BrowserViewer는 브라우저 수명주기를 관리하지 않고 스크린캐스트를 위해 연결합니다.
await viewer.connectToExternalCdp('wss://cloud.example.com/session', 'thread-123')
스크린캐스트스크린캐스트에 대한 직접 링크
startScreencast(options?)startscreencastoptions에 대한 직접 링크
브라우저 프레임 스트리밍을 시작합니다. 프레임 이벤트를 내보내는 ScreencastStream을 반환합니다. 탭이 변경될 때 새로운 CDP 세션을 생성하여 탭 전환을 자동으로 처리합니다.
const stream = await viewer.startScreencast({
format: 'jpeg',
quality: 80,
})
stream.on('frame', frame => {
console.log('Frame received:', frame.data.length, 'bytes')
})
stream.on('stop', reason => {
console.log('Screencast stopped:', reason)
})
보고:Promise<ScreencastStream>
입력 주입입력 주입에 대한 직접 링크
injectMouseEvent(params, threadId?)injectmouseeventparams-threadid에 대한 직접 링크
CDP를 통해 브라우저에 마우스 이벤트를 삽입합니다. 실시간 상호작용을 위해 Studio에서 사용됩니다.
await viewer.injectMouseEvent({
type: 'mousePressed',
x: 100,
y: 200,
button: 'left',
clickCount: 1,
})
injectKeyboardEvent(params, threadId?)injectkeyboardeventparams-threadid에 대한 직접 링크
CDP를 통해 브라우저에 키보드 이벤트를 삽입합니다. 실시간 상호작용을 위해 Studio에서 사용됩니다.
await viewer.injectKeyboardEvent({
type: 'keyDown',
key: 'Enter',
code: 'Enter',
})
지원되는 CLI지원되는 CLI에 대한 직접 링크
각 CLI는 별도로 설치해야 합니다. 각 CLI에는 Agent에게 명령과 Workflow를 알려 주는 Skill도 있습니다. CLI 명령이 workspace_execute_command를 통해 실행되면 Mastra가 이를 감지하고 올바른 플래그를 사용하여 CDP URL을 자동으로 주입합니다.
SDK Provider와 달리 BrowserViewer는 Agent Tool을 제공하지 않습니다. 대신 Agent는 workspace_execute_command를 통해 CLI 명령을 사용합니다.
agent-browseragent-browser에 대한 직접 링크
구성 값:'agent-browser' · CDP flag: --cdp
npm install -g agent-browser
npx skills add vercel-labs/agent-browser
browser-usebrowser-use에 대한 직접 링크
구성 값:'browser-use' · CDP flag: --cdp-url
pip install browser-use
npx skills add browser-use/browser-use --skill browser-use
browse(명령:browse)browse-command-browse에 대한 직접 링크
구성 값:'browse' · CDP flag: --ws
npm install -g browse
browse skills install
관련된관련된에 대한 직접 링크
- 브라우저뷰어 가이드: 설정 및 사용법 연습
- 마스트라브라우저: 기본 클래스 API 참조
- 작업공간 개요: 작업공간 구성