Configuración del entorno en la nube
Personaliza los sandboxes en la nube para tus sesiones.
Los entornos definen la configuración del sandbox donde se ejecuta tu agente. Creas un entorno una vez y luego haces referencia a su ID cada vez que inicias una sesión. Varias sesiones pueden compartir el mismo entorno, pero cada sesión obtiene su propio sandbox aislado (un contenedor Linux nuevo).
Esta página cubre los entornos type: cloud. Para ejecutar sandboxes en tu propia infraestructura, consulta Sandboxes autoalojados.
Crear un entorno
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 crea el entorno a partir de environment.yaml, imprime su ID y lo registra en claude-lock.json. Haz commit de claude-lock.json para que el siguiente ant apply actualice este entorno en lugar de intentar crearlo de nuevo.
Usa un name único y descriptivo para poder distinguir los entornos entre sí.
Usar el entorno en una sesión
Pasa el ID del entorno como una cadena al crear una sesión.
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
)Opciones de configuración
Paquetes
El campo packages preinstala paquetes en el sandbox antes de que el agente se inicie. Los paquetes se instalan mediante sus respectivos gestores de paquetes y se almacenan en caché entre las sesiones que comparten el mismo entorno. Cuando se especifican varios gestores de paquetes, se ejecutan en orden alfabético (apt, cargo, gem, go, npm, pip). Opcionalmente puedes fijar versiones específicas. Los paquetes sin versión fijada instalan la versión más reciente. Si el entorno usa redes en modo limited, establece también networking.allow_package_managers en true; de lo contrario, la solicitud se rechaza con un error 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: unrestrictedGestores de paquetes compatibles:
| Campo | Gestor de paquetes | Ejemplo |
|---|---|---|
apt | Paquetes del sistema (apt-get) | "graphviz" |
cargo | Rust (cargo) | "hyperfine@1.18.0" |
gem | Ruby (gem) | "rails:7.1.0" |
go | Módulos de Go | "golang.org/x/tools/cmd/goimports@latest" |
npm | Node.js (npm) | "express@4.18.0" |
pip | Python (pip) | "sqlalchemy==2.0.30" |
Redes
El campo networking controla el acceso de red saliente del sandbox. No afecta a las herramientas web_search ni web_fetch, que se ejecutan en los servidores de Anthropic; para restringir los sitios a los que esas herramientas pueden acceder, establece allowed_domains o blocked_domains en la entrada de la herramienta dentro del conjunto de herramientas del agente. Consulta Restringir los dominios de búsqueda web y obtención web.
| Modo | Descripción |
|---|---|
unrestricted | Acceso de red saliente completo, excepto por una lista de bloqueo general de seguridad. Este es el valor predeterminado. |
limited | Restringe el acceso de red del sandbox a los hosts en allowed_hosts. Establece allow_package_managers y allow_mcp_servers en true para permitir acceso adicional. |
El siguiente ejemplo crea un entorno con redes en modo 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: trueAl usar redes en modo limited:
allowed_hostsespecifica los dominios a los que el sandbox puede acceder. Especifica nombres de host simples o patrones con comodines (como*.example.com). No incluyas un esquema de URL, puerto ni ruta.allow_mcp_serverspermite el acceso saliente a los endpoints de servidores MCP configurados en el agente, además de los que figuran en el arregloallowed_hosts. El valor predeterminado esfalse.allow_package_managerspermite el acceso saliente a un conjunto de registros de paquetes públicos y servicios de alojamiento de código, además de los que figuran en el arregloallowed_hosts. Consulta Hosts de gestores de paquetes para ver la lista. El valor predeterminado esfalse. Establécelo entruesiempre que el entorno especifiquepackages; de lo contrario, la solicitud se rechaza con un error 400, incluso si los hosts del registro figuran enallowed_hosts.
Hosts de gestores de paquetes
Cuando allow_package_managers es true, el sandbox puede acceder a los siguientes hosts además de los que están en allowed_hosts. Anthropic mantiene esta lista y puede cambiarla.
| Ecosistema | Hosts |
|---|---|
| Alojamiento de código | 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 |
| Contenedores | registry-1.docker.io, auth.docker.io, production.cloudflare.docker.com, download.docker.com, ghcr.io |
Ciclo de vida del entorno
- Los entornos persisten hasta que se archivan o eliminan explícitamente.
- Cada sesión obtiene su propia instancia de sandbox, incluso cuando varias sesiones hacen referencia al mismo entorno. Las sesiones no comparten el estado del sistema de archivos.
- Los entornos no tienen versiones. Si actualizas un entorno con frecuencia, mantén tu propio registro de los cambios para poder saber qué configuración usó cada sesión.
Administrar entornos
# 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)Entornos de ejecución preinstalados
Los sandboxes en la nube incluyen de forma predeterminada entornos de ejecución de lenguajes comunes, bases de datos y herramientas de línea de comandos. Consulta la Referencia de sandboxes en la nube para ver la lista completa.
Próximos pasos
Paquetes preinstalados, bases de datos y utilidades disponibles en los sandboxes en la nube.
Crea una sesión para ejecutar tu agente y comenzar a ejecutar tareas.
Was this page helpful?