Mistral sandbox
MistralSandbox() fournit à chaque session son propre conteneur Linux, exécuté sur Mistral Cloud. Le
conteneur dispose de Python, d'un shell et d'un répertoire /workspace accessible en écriture. Il est supprimé à la fermeture de la
session. Utilisez-le pour chaque agent déployé qui a besoin d'une sandbox : c'est la seule sandbox intégrée avec
isolation par conteneur qui fonctionne dans un déploiement géré par Mistral.
from mistralai import agents
agent = agents.Agent(
model="mistral-large-4",
name="data-agent",
environment=agents.MistralSandbox(),
)Prérequis
Installez la dépendance optionnelle pour la sandbox :
uv add 'mistralai-agents[koyeb]'Sans cette dépendance, agents info et agents serve s'arrêtent et vous demandent de l'installer. agent.run()
lève une erreur qui indique son nom.
L'identité qui crée la sandbox doit disposer du rôle cloud_user dans l'espace de travail : le propriétaire de
MISTRAL_API_KEY dans votre processus et avec agents serve, et le compte de service du déploiement
avec agents deploy. Demandez à un administrateur de vous attribuer ce rôle dans la console d'administration
(Organisation > espaces de travail > votre espace de travail > Membres), où il apparaît sous le nom Mistral Cloud
User. agents deploy attribue ce rôle au compte de service si vous en disposez au moment du déploiement.
Taille et durée de vie
Chaque session qui utilise la sandbox exécute une instance Mistral Cloud. Trois options définissent sa taille et sa durée de fonctionnement :
agents.MistralSandbox(
instance_type="large", # instance size; defaults to "medium"
idle_timeout_seconds=300, # sleep after 5 idle minutes; 0 (the default) never sleeps
ttl_seconds=2 * 60 * 60, # delete after 2 hours at most; defaults to 24 hours
)ttl_seconds sert de garde-fou : une
session supprime sa sandbox à sa fermeture. Si elle ne se ferme jamais, par exemple parce que le déploiement n'a pas
redémarré après un plantage, Mistral Cloud supprime la sandbox après ttl_seconds. Une session dont la sandbox
est supprimée en cours d'exécution échoue. Définissez donc ttl_seconds au-delà de la durée de votre session la plus longue.
Les Références de MistralSandbox présentent toutes les
options.
Régions
Seule la région par défaut, nl-north-1, peut bloquer le trafic. Dans toute autre region, la sandbox fonctionne
uniquement avec network=agents.Network.all(). Toute autre politique empêche le démarrage de la session.
Choisissez donc une autre région uniquement pour un agent autorisé à accéder à tous les réseaux :
agents.MistralSandbox(region="...", network=agents.Network.all())Problèmes courants
| Message affiché | Cause | Solution |
|---|---|---|
Mistral Cloud refused to create the sandbox (HTTP 401) ou (HTTP 403) | L'identité Mistral ne dispose pas du rôle cloud_user dans l'espace de travail. | Obtenez le rôle, puis redémarrez la session. Pour un agent déployé, déployez-le à nouveau après avoir obtenu le rôle. Consultez les Prérequis. |
The deploying user does not hold the requested workspace roles: cloud_user | Vous déployez un agent avec une MistralSandbox sans disposer du rôle cloud_user. | Obtenez le rôle, puis relancez le déploiement. |
This network policy is not supported in region 'fra'; it is supported only in nl-north-1. Pass network=Network.all() or a supported region. | Seule la région nl-north-1 peut bloquer le trafic. | Utilisez la région par défaut ou passez network=agents.Network.all(). |
Aller plus loin
Sandboxes locales : exécutez une sandbox sur votre machine pour les tests et la CI.