> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # BlaxelSandbox Exécute des commandes dans des Sandboxes cloud [Blaxel](https://blaxel.ai/) isolés. Fournit des environnements sécurisés et isolés d'exécution de code qui prennent en charge le montage de stockages cloud (S3, GCS) au moyen de FUSE. Pour en savoir plus sur l'interface, consultez l'[interface WorkspaceSandbox](https://mastra.zisheng.pro/fr/reference/workspace/sandbox). ## Installation **npm**: ```bash npm install @mastra/blaxel ``` **pnpm**: ```bash pnpm add @mastra/blaxel ``` **Yarn**: ```bash yarn add @mastra/blaxel ``` **Bun**: ```bash bun add @mastra/blaxel ``` ## Utilisation Ajoutez un `BlaxelSandbox` à un Workspace et attribuez-le à un 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, }) ``` ### Image personnalisée avec des ressources Utilisez une image Docker personnalisée avec de la mémoire supplémentaire : ```typescript const workspace = new Workspace({ sandbox: new BlaxelSandbox({ image: 'node:20-slim', memory: 8192, region: 'auto', timeout: '10m', }), }) ``` ## Paramètres du constructeur **id** (`string`): Identifiant unique de cette instance de Sandbox. (Default: `Généré automatiquement`) **image** (`string`): Image Docker à utiliser pour le Sandbox. Les images basées sur Debian prennent en charge les montages S3 et GCS. Les images basées sur Alpine prennent uniquement en charge les montages S3. (Default: `'blaxel/ts-app:latest'`) **memory** (`number`): Mémoire allouée en Mo. (Default: `4096`) **timeout** (`string`): Délai d'expiration de l'exécution sous la forme d'une chaîne de durée (par exemple, '5m' ou '1h'). Correspond à la durée de vie du Sandbox Blaxel. **region** (`string`): Région Blaxel dans laquelle le Sandbox doit être créé. Utilisez 'auto' pour choisir automatiquement une région, ou définissez une région précise telle que 'us-pdx-1'. (Default: `process.env.BL_REGION || 'auto'`) **env** (`Record`): Variables d'environnement à définir dans le Sandbox. **labels** (`Record`): Étiquettes personnalisées du Sandbox. **runtimes** (`SandboxRuntime[]`): Environnements d'exécution pris en charge. Valeurs valides : 'node', 'python', 'bash', 'ruby', 'go', 'rust', 'java', 'cpp', 'r'. (Default: `['node', 'python', 'bash']`) **ports** (`Array<{ name?: string; target: number; protocol?: 'HTTP' | 'TCP' | 'UDP' }>`): Ports à exposer depuis le Sandbox. ## Propriétés **id** (`string`): Identifiant de l'instance du Sandbox. **name** (`string`): 'BlaxelSandbox' **provider** (`string`): 'blaxel' **status** (`ProviderStatus`): 'pending' | 'initializing' | 'running' | 'stopped' | 'error' **instance** (`SandboxInstance`): SandboxInstance Blaxel sous-jacente permettant d'accéder directement aux API Blaxel. Lève SandboxNotReadyError si le Sandbox n'a pas été démarré. **processes** (`BlaxelProcessManager`): Gestionnaire des processus en arrière-plan. Consultez la référence de SandboxProcessManager. ## Processus en arrière-plan `BlaxelSandbox` comprend un gestionnaire de processus intégré permettant de lancer et de gérer des processus en arrière-plan. ```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() ``` > **Remarque:** Les Sandboxes Blaxel ne prennent pas en charge stdin. L'appel à `handle.sendStdin()` lève une erreur. Consultez la [référence de `SandboxProcessManager`](https://mastra.zisheng.pro/fr/reference/workspace/process-manager) pour découvrir l'API complète. ## Montage d'un stockage cloud Les Sandboxes Blaxel peuvent monter des systèmes de fichiers S3 ou GCS, ce qui rend le stockage cloud accessible sous la forme d'un répertoire local dans le 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(), }) ```