BrowserProvider
BrowserProvider 是包用来向 MastraEditor 注册 browser 的接口。Editor 会在 Agent 实例化时调用 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 browser 选择器中显示的简短描述。
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' } },
},
},
},
})
相关内容相关内容的直接链接
- Browser:概念和完整示例。
- StorageBrowserRef:由
createBrowser使用的已存储配置。 - MastraEditor 类:Provider 注册表。