跳至主要內容

BrowserProvider

BrowserProvider 是套件用來向 MastraEditor 註冊瀏覽器的介面。Editor 會在 Agent 具現化時呼叫 createBrowser(config),並將已儲存 StorageBrowserRef 中的 provider ID 作為查詢鍵。

目前沒有內建的瀏覽器 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' } },
},
},
},
})