BrowserProvider
BrowserProvider 是套件用來向 MastraEditor 註冊瀏覽器的介面。Editor 會在 Agent hydrate 時呼叫 createBrowser(config),並以已儲存 StorageBrowserRef 的 provider id 作為查找鍵。
目前沒有內置 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 hydrate 時呼叫一次;產生的實例會連同 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' } },
},
},
},
})
相關內容相關內容 的直接連結
- Browser:概念及完整範例。
- StorageBrowserRef:
createBrowser使用的已儲存配置。 - MastraEditor 類別:Provider registry。