跳至主要內容

StorageBrowserRef

StorageBrowserRef 是附加至已儲存 Agent 的內嵌瀏覽器設定。具現化時,會使用在 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 }

瀏覽器不提供 { type: 'id' } 變體,一律使用內嵌設定。

屬性
「屬性」的直接連結

type:

'inline'
判別欄位。必須是常值 "inline"

config:

StorageBrowserConfig
Provider ID 與各執行個體的瀏覽器設定。請參閱下一節。

StorageBrowserConfig
「storagebrowserconfig」的直接連結

內嵌於 config 下的資料結構,定義於 @mastra/core/storage

provider:

string
Provider 識別碼(例如 "stagehand")。必須與 MastraEditor.browsers 上註冊的 BrowserProvider.id 相符。目前沒有內建 Provider。

headless?:

boolean
= true
以 headless 模式執行瀏覽器(不顯示 UI)。

viewport?:

{ width: number; height: number }
瀏覽器檢視區尺寸,控制視窗大小與頁面呈現方式。

timeout?:

number
= 10000
瀏覽器操作的預設逾時時間,以毫秒為單位。

screencast?:

ScreencastOptions
將瀏覽器畫面串流至 UI 的螢幕錄製選項。
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 仍會載入,但不含瀏覽器。