SandboxProvider
SandboxProvider 是套件用來向 MastraEditor 註冊 Sandbox 的介面。Editor 會在 Workspace 具現化時呼叫 createSandbox(config),並將已儲存 StorageWorkspaceRef Sandbox 設定中的 provider ID 作為查詢鍵。
內建的 local Sandbox Provider 會自動註冊。外部 Provider(例如 E2B)則透過 MastraEditorConfig.sandboxes 提供。
使用範例「使用範例」的直接連結
src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'
import { e2bSandboxProvider } from '@mastra/e2b'
new MastraEditor({
sandboxes: {
[e2bSandboxProvider.id]: e2bSandboxProvider,
},
})
屬性「屬性」的直接連結
id:
string
唯一的 Provider 識別碼(例如
"local"、"e2b")。每個使用此 Provider 的已儲存 Workspace,其 StorageSandboxConfig.provider 都必須與此值相符。name:
string
供 UI 顯示、方便使用者閱讀的名稱。
description?:
string
Workspace Sandbox 選擇器中顯示的簡短說明。
configSchema?:
Record<string, unknown>
描述 Provider 專屬設定的 JSON Schema。UI 會用它呈現設定表單。
createSandbox:
(config: TConfig) => WorkspaceSandbox | Promise<WorkspaceSandbox>
從已儲存的設定建立執行階段
WorkspaceSandbox 執行個體。在 Workspace 具現化時呼叫。實作 Provider「實作 Provider」的直接連結
src/providers/my-sandbox.ts
import type { SandboxProvider, WorkspaceSandbox } from '@mastra/core/editor'
export const mySandboxProvider: SandboxProvider<{ apiKey: string }> = {
id: 'my-sandbox',
name: 'My Sandbox',
description: 'Cloud sandbox for command execution.',
configSchema: {
type: 'object',
required: ['apiKey'],
properties: {
apiKey: { type: 'string' },
},
},
async createSandbox(config): Promise<WorkspaceSandbox> {
return createMySandbox({ apiKey: config.apiKey })
},
}
註冊後,管理員可在內嵌 Workspace 設定或已儲存的 StorageWorkspaceRef 中參照此 Provider。
相關內容「相關內容」的直接連結
- Workspace:概念與完整範例。
- StorageWorkspaceRef:
createSandbox使用的已儲存設定。 - FilesystemProvider:用於存取檔案的同類 Provider。
- MastraEditor 類別:Provider 登錄表。