BlaxelSandbox
Exécute des commandes dans des Sandboxes cloud Blaxel 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.
InstallationLien direct vers Installation
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/blaxel
pnpm add @mastra/blaxel
yarn add @mastra/blaxel
bun add @mastra/blaxel
UtilisationLien direct vers Utilisation
Ajoutez un BlaxelSandbox à un Workspace et attribuez-le à un Agent :
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 ressourcesLien direct vers Image personnalisée avec des ressources
Utilisez une image Docker personnalisée avec de la mémoire supplémentaire :
const workspace = new Workspace({
sandbox: new BlaxelSandbox({
image: 'node:20-slim',
memory: 8192,
region: 'auto',
timeout: '10m',
}),
})
Paramètres du constructeurLien direct vers Paramètres du constructeur
id?:
image?:
memory?:
timeout?:
region?:
env?:
labels?:
runtimes?:
ports?:
PropriétésLien direct vers Propriétés
id:
name:
provider:
status:
instance:
processes:
Processus en arrière-planLien direct vers 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.
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()
Les Sandboxes Blaxel ne prennent pas en charge stdin. L'appel à handle.sendStdin() lève une erreur.
Consultez la référence de SandboxProcessManager pour découvrir l'API complète.
Montage d'un stockage cloudLien direct vers 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.
S3Lien direct vers S3
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(),
})
GCSLien direct vers GCS
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(),
})