Configuration de l'environnement cloud
Personnalisez les sandboxes cloud pour vos sessions.
Les environnements définissent la configuration du « sandbox » (bac à sable) dans lequel votre agent s'exécute. Vous créez un environnement une seule fois, puis vous référencez son ID chaque fois que vous démarrez une session. Plusieurs sessions peuvent partager le même environnement, mais chaque session obtient son propre sandbox isolé (un conteneur Linux neuf).
Cette page couvre les environnements type: cloud. Pour exécuter des sandboxes sur votre propre infrastructure, consultez Sandboxes auto-hébergés.
Créer un environnement
ant apply environment.yaml# yaml-language-server: $schema=https://platform.claude.com/schemas/ant/beta/environment.json
name: python-dev
config:
type: cloud
networking:
type: limited
allow_package_managers: trueant apply crée l'environnement à partir de environment.yaml, affiche son ID et l'enregistre dans claude-lock.json. Validez (commit) claude-lock.json afin que le prochain ant apply mette à jour cet environnement au lieu d'essayer de le créer à nouveau.
Utilisez un name unique et descriptif afin de pouvoir distinguer les environnements les uns des autres.
Utiliser l'environnement dans une session
Transmettez l'ID de l'environnement sous forme de chaîne de caractères lors de la création d'une session.
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
)Options de configuration
Paquets
Le champ packages préinstalle des paquets dans le sandbox avant le démarrage de l'agent. Les paquets sont installés par leurs gestionnaires de paquets respectifs et mis en cache entre les sessions qui partagent le même environnement. Lorsque plusieurs gestionnaires de paquets sont spécifiés, ils s'exécutent par ordre alphabétique (apt, cargo, gem, go, npm, pip). Vous pouvez éventuellement épingler des versions spécifiques. Les paquets non épinglés installent la dernière version. Si l'environnement utilise le réseau limited, définissez également networking.allow_package_managers sur true ; sinon, la requête est rejetée avec une erreur 400.
ant apply environment.yaml# yaml-language-server: $schema=https://platform.claude.com/schemas/ant/beta/environment.json
name: data-analysis
config:
type: cloud
packages:
pip:
- pandas
- numpy
- scikit-learn
npm:
- express
networking:
type: unrestrictedGestionnaires de paquets pris en charge :
| Champ | Gestionnaire de paquets | Exemple |
|---|---|---|
apt | Paquets système (apt-get) | "graphviz" |
cargo | Rust (cargo) | "hyperfine@1.18.0" |
gem | Ruby (gem) | "rails:7.1.0" |
go | Modules Go | "golang.org/x/tools/cmd/goimports@latest" |
npm | Node.js (npm) | "express@4.18.0" |
pip | Python (pip) | "sqlalchemy==2.0.30" |
Réseau
Le champ networking contrôle l'accès réseau sortant du sandbox. Il n'affecte pas les outils web_search ou web_fetch, qui s'exécutent sur les serveurs d'Anthropic ; pour restreindre les sites que ces outils peuvent atteindre, définissez allowed_domains ou blocked_domains sur l'entrée de l'outil dans l'ensemble d'outils de l'agent. Consultez Restreindre les domaines de recherche web et de récupération web.
| Mode | Description |
|---|---|
unrestricted | Accès réseau sortant complet, à l'exception d'une liste de blocage de sécurité générale. Il s'agit de la valeur par défaut. |
limited | Restreint l'accès réseau du sandbox aux hôtes figurant dans allowed_hosts. Définissez allow_package_managers et allow_mcp_servers sur true pour autoriser des accès supplémentaires. |
L'exemple suivant crée un environnement avec le réseau limited :
ant apply environment.yaml# yaml-language-server: $schema=https://platform.claude.com/schemas/ant/beta/environment.json
name: api-access
config:
type: cloud
networking:
type: limited
allowed_hosts:
- api.example.com
allow_mcp_servers: true
allow_package_managers: trueLors de l'utilisation d'un réseau limited :
allowed_hostsspécifie les domaines que le sandbox peut atteindre. Spécifiez des noms d'hôte simples ou des motifs génériques (tels que*.example.com). N'incluez pas de schéma d'URL, de port ni de chemin.allow_mcp_serversautorise l'accès sortant aux points de terminaison des serveurs MCP configurés sur l'agent, au-delà de ceux répertoriés dans le tableauallowed_hosts. La valeur par défaut estfalse.allow_package_managersautorise l'accès sortant à un ensemble de registres de paquets publics et d'hébergeurs de code au-delà de ceux répertoriés dans le tableauallowed_hosts. Consultez Hôtes des gestionnaires de paquets pour la liste. La valeur par défaut estfalse. Définissez-le surtruechaque fois que l'environnement spécifiepackages; sinon, la requête est rejetée avec une erreur 400, même si les hôtes des registres sont répertoriés dansallowed_hosts.
Hôtes des gestionnaires de paquets
Lorsque allow_package_managers est true, le sandbox peut atteindre les hôtes suivants en plus de ceux figurant dans allowed_hosts. Anthropic maintient cette liste et peut la modifier.
| Écosystème | Hôtes |
|---|---|
| Hébergement de code | github.com, api.github.com, codeload.github.com, raw.githubusercontent.com, objects.githubusercontent.com, release-assets.githubusercontent.com, gitlab.com, bitbucket.org |
| Node.js | registry.npmjs.org, registry.yarnpkg.com, nodejs.org |
| Python | pypi.org, files.pythonhosted.org |
| Rust | crates.io, index.crates.io, static.crates.io, static.rust-lang.org |
| Go | proxy.golang.org, sum.golang.org |
| Java | repo1.maven.org, repo.maven.apache.org, services.gradle.org, plugins.gradle.org, plugins-artifacts.gradle.org |
| Ruby | rubygems.org, index.rubygems.org |
| PHP | packagist.org, repo.packagist.org |
| Ubuntu (apt) | archive.ubuntu.com, security.ubuntu.com, ppa.launchpad.net |
| Conteneurs | registry-1.docker.io, auth.docker.io, production.cloudflare.docker.com, download.docker.com, ghcr.io |
Cycle de vie de l'environnement
- Les environnements persistent jusqu'à ce qu'ils soient explicitement archivés ou supprimés.
- Chaque session obtient sa propre instance de sandbox, même lorsque plusieurs sessions référencent le même environnement. Les sessions ne partagent pas l'état du système de fichiers.
- Les environnements ne sont pas versionnés. Si vous mettez fréquemment à jour un environnement, conservez votre propre registre des modifications afin de pouvoir déterminer quelle configuration chaque session a utilisée.
Gérer les environnements
# List environments
environments = client.beta.environments.list()
# Retrieve a specific environment
env = client.beta.environments.retrieve(environment.id)
# Archive an environment (read-only, existing sessions continue)
client.beta.environments.archive(environment.id)
# Delete an environment (only if no sessions reference it)
client.beta.environments.delete(environment.id)Runtimes préinstallés
Les sandboxes cloud incluent d'emblée des « runtimes » (environnements d'exécution) de langages courants, des bases de données et des outils en ligne de commande. Consultez la Référence des sandboxes cloud pour la liste complète.
Étapes suivantes
Paquets, bases de données et utilitaires préinstallés disponibles dans les sandboxes cloud.
Créez une session pour exécuter votre agent et commencer à exécuter des tâches.
Was this page helpful?