メインコンテンツへ移動

BrowserProvider

BrowserProvider は、パッケージが MastraEditor にブラウザーを登録するために実装するインターフェースです。Editor は Agent のハイドレーション時に createBrowser(config) を呼び出します。その際、provider ID を検索キーとして保存済みの StorageBrowserRef から取得します。

組み込みの Browser 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 とともにキャッシュされます。

Provider の実装
Provider の実装への直接リンク

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 を介して、この Provider を Builder のデフォルトとして固定できます。

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