Was this page helpful?
Les environnements définissent la configuration du conteneur dans lequel votre agent s'exécute. Vous créez un environnement une seule fois, puis 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 sa propre instance de conteneur isolée.
Toutes les requêtes de l'API Managed Agents nécessitent l'en-tête bêta managed-agents-2026-04-01. Le SDK définit automatiquement l'en-tête bêta.
environment=$(curl -fsS https://api.anthropic.com/v1/environments \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
--data @- <<'EOF'
{
"name": "python-dev",
"config": {
"type": "cloud",
"networking": {"type": "unrestricted"}
}
}
EOF
)
environment_id=$(jq -r '.id' <<< "$environment")
echo "Environment ID: $environment_id"Le name doit être unique au sein de votre organisation et de votre espace de travail.
Passez l'ID de l'environnement sous forme de chaîne lors de la création d'une session.
Le champ packages pré-installe des packages dans le conteneur avant le démarrage de l'agent. Les packages sont installés par leurs gestionnaires de packages respectifs et mis en cache entre les sessions qui partagent le même environnement. Lorsque plusieurs gestionnaires de packages 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 ; la valeur par défaut est la dernière version.
Gestionnaires de packages pris en charge :
| Champ | Gestionnaire de packages | Exemple |
|---|---|---|
apt | Packages système (apt-get) | "ffmpeg" |
cargo | Rust (cargo) | "[email protected]" |
gem | Ruby (gem) | "rails:7.1.0" |
go | Modules Go | "golang.org/x/tools/cmd/goimports@latest" |
npm | Node.js (npm) | "[email protected]" |
Le champ networking contrôle l'accès réseau sortant du conteneur. Il n'affecte pas les domaines autorisés des outils web_search ou web_fetch.
| Mode | Description |
|---|---|
unrestricted | Accès réseau sortant complet, à l'exception d'une liste de blocage de sécurité générale. C'est la valeur par défaut. |
limited | Restreint l'accès réseau du conteneur à la liste allowed_hosts. Un accès supplémentaire est activé via les booléens allow_package_managers et allow_mcp_servers. |
Pour les déploiements en production, utilisez le réseau limited avec une liste allowed_hosts explicite. Suivez le principe du moindre privilège en n'accordant que l'accès réseau minimum requis par votre agent, et auditez régulièrement vos domaines autorisés.
Lors de l'utilisation du réseau limited :
allowed_hosts spécifie les domaines que le conteneur peut atteindre. Ceux-ci doivent être préfixés par HTTPS.allow_mcp_servers autorise l'accès sortant aux points de terminaison du serveur MCP configurés sur l'agent, au-delà de ceux listés dans le tableau allowed_hosts. La valeur par défaut est false.allow_package_managers autorise l'accès sortant aux registres de packages publics (PyPI, npm, etc.) au-delà de ceux listés dans le tableau allowed_hosts. La valeur par défaut est false.Les conteneurs cloud incluent des runtimes courants prêts à l'emploi. Consultez la référence des conteneurs pour la liste complète des langages, bases de données et utilitaires pré-installés.
session=$(curl -fsS https://api.anthropic.com/v1/sessions \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
--data @- <<EOF
{
"agent": "$agent_id",
"environment_id": "$environment_id"
}
EOF
)environment=$(curl -fsS https://api.anthropic.com/v1/environments \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01" \
-H "content-type: application/json" \
--data @- <<'EOF'
{
"name": "data-analysis",
"config": {
"type": "cloud",
"packages": {
"pip": ["pandas", "numpy", "scikit-learn"],
"npm": ["express"]
},
"networking": {"type": "unrestricted"}
}
}
EOF
)pip | Python (pip) | "pandas==2.2.0" |
config=$(cat <<'EOF'
{
"type": "cloud",
"networking": {
"type": "limited",
"allowed_hosts": ["api.example.com"],
"allow_mcp_servers": true,
"allow_package_managers": true
}
}
EOF
)# List environments
environments=$(curl -fsS https://api.anthropic.com/v1/environments \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01")
# Retrieve a specific environment
env=$(curl -fsS "https://api.anthropic.com/v1/environments/$environment_id" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01")
# Archive an environment (read-only, existing sessions continue)
curl -fsS -X POST "https://api.anthropic.com/v1/environments/$environment_id/archive" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01"
# Delete an environment (only if no sessions reference it)
curl -fsS -X DELETE "https://api.anthropic.com/v1/environments/$environment_id" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01"