본문으로 건너뛰기

브라우저 제공자

BrowserProvider브라우저를 등록하기 위해 패키지가 구현하는 인터페이스입니다.MastraEditor. 편집자가 전화함createBrowser(config)Agent 수화 시간에 다음을 사용하여provider저장된 이드에서StorageBrowserRef조회 키로 사용됩니다.

내장 브라우저 Provider는 없습니다. Agent Builder에서 browser 기능을 사용하려면 Provider 패키지(예: @mastra/stagehand)를 등록하세요.

사용예
사용예에 대한 직접 링크

src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'
import { stagehandBrowserProvider } from '@mastra/stagehand'

new MastraEditor({
browsers: {
[stagehandBrowserProvider.id]: stagehandBrowserProvider,
},
})

속성
속성에 대한 직접 링크

id:

string
고유한 Provider 식별자입니다(예: "stagehand"). 이 Provider를 사용하는 모든 저장된 Agent의 StorageBrowserConfig.provider와 일치해야 합니다.

name:

string
UI에 표시되는 사람이 읽기 쉬운 이름입니다.

description?:

string
Agent Builder의 브라우저 선택기에 표시되는 간단한 설명입니다.

configSchema?:

Record<string, unknown>
Provider별 구성을 설명하는 JSON Schema입니다. UI에서 구성 양식을 렌더링하는 데 사용됩니다.

createBrowser:

(config: TConfig) => MastraBrowser | Promise<MastraBrowser>
저장된 구성으로 런타임 MastraBrowser 인스턴스를 생성합니다. Agent 하이드레이션마다 한 번 호출되며, 생성된 인스턴스는 Agent와 함께 캐시됩니다.

공급자 구현
공급자 구현에 대한 직접 링크

src/providers/my-browser.ts
import type { BrowserProvider, MastraBrowser } from '@mastra/core/editor'

export const myBrowserProvider: BrowserProvider<{ apiKey: string }> = {
id: 'my-browser',
name: 'My Browser',
description: 'Headless browser for agent use.',
configSchema: {
type: 'object',
properties: {
apiKey: { type: 'string' },
},
required: ['apiKey'],
},
async createBrowser(config): Promise<MastraBrowser> {
// construct and return a MastraBrowser instance
return createMastraBrowser({ apiKey: config.apiKey })
},
}

등록되면 관리자는 다음을 통해 공급자를 빌더 기본값으로 고정할 수 있습니다.BuilderAgentDefaults.browser:

new MastraEditor({
browsers: { [myBrowserProvider.id]: myBrowserProvider },
builder: {
enabled: true,
configuration: {
agent: {
browser: { type: 'inline', config: { provider: 'my-browser' } },
},
},
},
})