Aller au contenu principal

VercelServerlessSandbox

Exécute des commandes sous forme de fonctions serverless Vercel. Fournit une exécution distribuée à l’échelle mondiale, sans infrastructure et avec mise à l’échelle automatique. Pour en savoir plus sur l’interface, consultez l’interface WorkspaceSandbox.

attention

VercelServerlessSandbox est sans état. Il ne fournit ni système de fichiers persistant, ni shell interactif, ni processus d’arrière-plan de longue durée. Seul /tmp est accessible en écriture et son contenu est éphémère entre les appels.

remarque

Pour disposer d’une MicroVM Linux complète avec un système de fichiers persistant, un accès sudo, des ports exposés et des processus d’arrière-plan, utilisez VercelSandbox, qui repose sur le produit Vercel Sandbox.

Installation
Lien direct vers Installation

npm install @mastra/vercel

Utilisation
Lien direct vers Utilisation

Ajoutez un VercelServerlessSandbox à un Workspace et attribuez-le à un Agent :

import { Agent } from '@mastra/core/agent'
import { Workspace } from '@mastra/core/workspace'
import { VercelServerlessSandbox } from '@mastra/vercel'

const workspace = new Workspace({
sandbox: new VercelServerlessSandbox({
token: process.env.VERCEL_TOKEN,
}),
})

const agent = new Agent({
id: 'dev-agent',
name: 'dev-agent',
instructions: 'You are a coding assistant working in this workspace.',
model: 'anthropic/claude-sonnet-4-6',
workspace,
})

Déploiement limité à une équipe avec des ressources personnalisées
Lien direct vers Déploiement limité à une équipe avec des ressources personnalisées

const workspace = new Workspace({
sandbox: new VercelServerlessSandbox({
token: process.env.VERCEL_TOKEN,
teamId: 'team_abc123',
regions: ['iad1', 'sfo1'],
maxDuration: 120,
memory: 3008,
env: {
NODE_ENV: 'production',
},
}),
})

Paramètres du constructeur
Lien direct vers Paramètres du constructeur

token?:

string
Token d’API Vercel. Utilise par défaut la variable d’environnement VERCEL_TOKEN.

teamId?:

string
ID de l’équipe Vercel pour les déploiements limités à une équipe.

projectName?:

string
Nom d’un projet Vercel existant. Généré automatiquement s’il est omis.

regions?:

string[]
= ['iad1']
Régions de déploiement.

maxDuration?:

number
= 60
Durée maximale de la fonction, en secondes.

memory?:

number
= 1024
Mémoire de la fonction, en Mo.

env?:

Record<string, string>
Variables d’environnement intégrées au code source de la fonction déployée. Elles sont incorporées au moment du déploiement et ne sont pas définies dynamiquement.

commandTimeout?:

number
= 55000
Délai d’expiration des commandes pour chaque appel, en millisecondes.

instructions?:

string | ((opts) => string)
Instructions personnalisées qui remplacent les instructions par défaut renvoyées par getInstructions(). Transmettez une chaîne pour les remplacer entièrement, ou une fonction pour compléter les valeurs par défaut.

onStart?:

SandboxLifecycleHook
Hook de cycle de vie appelé une fois que le Sandbox atteint l’état running.

onStop?:

SandboxLifecycleHook
Hook de cycle de vie appelé avant l’arrêt du Sandbox.

onDestroy?:

SandboxLifecycleHook
Hook de cycle de vie appelé avant la destruction du Sandbox.

Propriétés
Lien direct vers Propriétés

id:

string
Identifiant unique de cette instance de Sandbox.

name:

'VercelServerlessSandbox'
Nom lisible.

provider:

'vercel-serverless'
Identifiant du type de Provider.

status:

ProviderStatus
État actuel du cycle de vie : 'pending', 'starting', 'running', 'stopping', 'stopped', 'destroying', 'destroyed' ou 'error'.

Limites
Lien direct vers Limites

VercelServerlessSandbox utilise des fonctions serverless en interne, ce qui implique les limites suivantes :

  • Aucun système de fichiers persistant : les fichiers écrits dans /tmp sont éphémères et supprimés entre les appels.
  • Aucun shell interactif : les commandes sont exécutées au moyen de /bin/sh -c, sans streaming de stdin.
  • Aucun processus d’arrière-plan : aucun gestionnaire de processus, PID ou tâche de longue durée.
  • Aucun montage : le montage de stockages cloud (S3, GCS) n’est pas pris en charge.
  • Limites de délai d’expiration : la durée maximale d’exécution est limitée par maxDuration (60 s par défaut).