본문으로 건너뛰기

샌드박스 제공자

SandboxProvider샌드박스를 등록하기 위해 패키지가 구현하는 인터페이스입니다.MastraEditor. 편집자가 전화함createSandbox(config)작업 공간 수분 공급 시간에provider저장된 이드에서StorageWorkspaceRefsandbox 구성을 조회 키로 사용합니다.

내장 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 하이드레이션 시점에 호출됩니다.

공급자 구현
공급자 구현에 대한 직접 링크

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 })
},
}

등록되면 관리자는 인라인 작업 공간 구성 또는 저장된 공급자를 참조할 수 있습니다.StorageWorkspaceRef.