> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # BlaxelSandbox 分離された [Blaxel](https://blaxel.ai/) クラウド Sandbox でコマンドを実行します。FUSE によるクラウドストレージ(S3、GCS)のマウントに対応した、安全で分離されたコード実行環境を提供します。インターフェースの詳細は、[WorkspaceSandbox インターフェース](https://mastra.zisheng.pro/ja/reference/workspace/sandbox)を参照してください。 ## インストール **npm**: ```bash npm install @mastra/blaxel ``` **pnpm**: ```bash pnpm add @mastra/blaxel ``` **Yarn**: ```bash yarn add @mastra/blaxel ``` **Bun**: ```bash bun add @mastra/blaxel ``` ## 使用方法 Workspace に `BlaxelSandbox` を追加して Agent に割り当てます。 ```typescript import { Agent } from '@mastra/core/agent' import { Workspace } from '@mastra/core/workspace' import { BlaxelSandbox } from '@mastra/blaxel' const workspace = new Workspace({ sandbox: new BlaxelSandbox(), }) const agent = new Agent({ id: 'code-agent', name: 'Code Agent', instructions: 'You are a coding assistant working in this workspace.', model: 'anthropic/claude-sonnet-4-6', workspace, }) ``` ### リソースを指定したカスタムイメージ 追加メモリを指定してカスタム Docker イメージを使用します。 ```typescript const workspace = new Workspace({ sandbox: new BlaxelSandbox({ image: 'node:20-slim', memory: 8192, region: 'auto', timeout: '10m', }), }) ``` ## コンストラクターパラメーター **id** (`string`): この Sandbox インスタンスの一意な識別子。 (Default: `Auto-generated`) **image** (`string`): Sandbox で使用する Docker イメージ。Debian ベースのイメージは S3 と GCS のマウント、Alpine ベースのイメージは S3 のマウントに対応します。 (Default: `'blaxel/ts-app:latest'`) **memory** (`number`): 割り当てるメモリ容量(MB)。 (Default: `4096`) **timeout** (`string`): 期間文字列で指定する実行タイムアウト(例:'5m'、'1h')。Blaxel Sandbox の TTL に対応します。 **region** (`string`): Sandbox を作成する Blaxel リージョン。リージョンを自動選択するには 'auto'、明示するには 'us-pdx-1' などを指定します。 (Default: `process.env.BL_REGION || 'auto'`) **env** (`Record`): Sandbox に設定する環境変数。 **labels** (`Record`): Sandbox のカスタムラベル。 **runtimes** (`SandboxRuntime[]`): 対応ランタイム。有効な値:'node'、'python'、'bash'、'ruby'、'go'、'rust'、'java'、'cpp'、'r'。 (Default: `['node', 'python', 'bash']`) **ports** (`Array<{ name?: string; target: number; protocol?: 'HTTP' | 'TCP' | 'UDP' }>`): Sandbox から公開するポート。 ## プロパティ **id** (`string`): Sandbox インスタンスの識別子。 **name** (`string`): 'BlaxelSandbox' **provider** (`string`): 'blaxel' **status** (`ProviderStatus`): 'pending' | 'initializing' | 'running' | 'stopped' | 'error' **instance** (`SandboxInstance`): Blaxel API へ直接アクセスするための基盤となる Blaxel SandboxInstance。Sandbox が起動していない場合は SandboxNotReadyError をスローします。 **processes** (`BlaxelProcessManager`): バックグラウンドプロセスマネージャー。SandboxProcessManager リファレンスを参照してください。 ## バックグラウンドプロセス `BlaxelSandbox` には、バックグラウンドプロセスを起動・管理するプロセスマネージャーが組み込まれています。 ```typescript const sandbox = new BlaxelSandbox({ id: 'dev-sandbox' }) await sandbox.start() // Spawn a background process const handle = await sandbox.processes.spawn('node server.js', { env: { PORT: '3000' }, onStdout: data => console.log(data), }) // Interact with the process console.log(handle.stdout) await handle.kill() ``` > **注記:** Blaxel Sandbox は stdin に対応していません。`handle.sendStdin()` を呼び出すとエラーがスローされます。 完全な API は、[`SandboxProcessManager` リファレンス](https://mastra.zisheng.pro/ja/reference/workspace/process-manager)を参照してください。 ## クラウドストレージのマウント Blaxel Sandbox は S3 または GCS Filesystem をマウントし、クラウドストレージを Sandbox 内のローカルディレクトリとして利用できます。 ### S3 ```typescript import { Workspace } from '@mastra/core/workspace' import { S3Filesystem } from '@mastra/s3' import { BlaxelSandbox } from '@mastra/blaxel' const workspace = new Workspace({ mounts: { '/data': new S3Filesystem({ bucket: 'my-bucket', region: 'us-east-1', accessKeyId: process.env.AWS_ACCESS_KEY_ID, secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, }), }, sandbox: new BlaxelSandbox(), }) ``` ### GCS ```typescript import { Workspace } from '@mastra/core/workspace' import { GCSFilesystem } from '@mastra/gcs' import { BlaxelSandbox } from '@mastra/blaxel' const workspace = new Workspace({ mounts: { '/data': new GCSFilesystem({ bucket: 'my-bucket', credentials: JSON.parse(process.env.GCS_SERVICE_ACCOUNT_KEY!), }), }, sandbox: new BlaxelSandbox(), }) ```