跳到主要内容

StorageBrowserRef

StorageBrowserRef 是附加到已存储 Agent 的内联 browser 配置。实例化时,会根据在 MastraEditor.browsers 上注册的 BrowserProvider 解析 provider id。

BuilderAgentDefaults.browser 和已存储 Agent 记录均使用此类型。

使用示例
使用示例的直接链接

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

new MastraEditor({
browsers: { [stagehandBrowserProvider.id]: stagehandBrowserProvider },
builder: {
enabled: true,
configuration: {
agent: {
browser: {
type: 'inline',
config: {
provider: 'stagehand',
headless: true,
viewport: { width: 1280, height: 720 },
},
},
},
},
},
})

类型
类型的直接链接

type StorageBrowserRef = { type: 'inline'; config: StorageBrowserConfig }

Browser 不支持 { type: 'id' } 变体:它们始终以内联方式存储。

属性
属性的直接链接

type:

'inline'
判别字段。必须是字面量 "inline"

config:

StorageBrowserConfig
Provider id 和每个实例的 browser 配置。请参阅下文。

StorageBrowserConfig
storagebrowserconfig的直接链接

嵌入在 config 下的数据结构。定义于 @mastra/core/storage

provider:

string
Provider 标识符(例如 "stagehand")。必须与在 MastraEditor.browsers 上注册的 BrowserProvider.id 一致。没有内置 Provider。

headless?:

boolean
= true
以无头模式运行 browser(无可见 UI)。

viewport?:

{ width: number; height: number }
Browser viewport 尺寸。用于控制窗口大小以及页面的渲染方式。

timeout?:

number
= 10000
Browser 操作的默认超时时间(毫秒)。

screencast?:

ScreencastOptions
用于将 browser 帧流式传输到 UI 的 screencast 选项。
ScreencastOptions

format?:

'jpeg' | 'png'
图像格式。

quality?:

number
JPEG 质量,范围为 0–100。

maxWidth?:

number
最大宽度(像素)。

maxHeight?:

number
最大高度(像素)。

everyNthFrame?:

number
每隔 N 帧捕获一次。

实例化
实例化的直接链接

StorageBrowserRef 会在调用 mastra.editor.agent.getById() 时延迟解析。Editor 在 MastraEditor.browsers 中查找 config.provider,然后调用 provider.createBrowser(config)。如果 Provider 未注册,Editor 会记录警告并返回 undefined:Agent 仍会加载,但不包含 browser。