Configurazione dell'ambiente cloud
Personalizza le sandbox cloud per le tue sessioni.
Gli ambienti definiscono la configurazione della sandbox in cui viene eseguito il tuo agente. Crei un ambiente una sola volta, quindi fai riferimento al suo ID ogni volta che avvii una sessione. Più sessioni possono condividere lo stesso ambiente, ma ogni sessione ottiene la propria sandbox isolata (un nuovo container Linux).
Questa pagina tratta gli ambienti type: cloud. Per eseguire le sandbox sulla tua infrastruttura, consulta Sandbox self-hosted.
Crea un ambiente
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 l'ambiente a partire da environment.yaml, ne stampa l'ID e lo registra in claude-lock.json. Esegui il commit di claude-lock.json in modo che il successivo ant apply aggiorni questo ambiente invece di tentare di crearlo di nuovo.
Usa un name univoco e descrittivo in modo da poter distinguere gli ambienti tra loro.
Usa l'ambiente in una sessione
Passa l'ID dell'ambiente come stringa quando crei una sessione.
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
)Opzioni di configurazione
Pacchetti
Il campo packages preinstalla i pacchetti nella sandbox prima dell'avvio dell'agente. I pacchetti vengono installati dai rispettivi gestori di pacchetti e memorizzati nella cache tra le sessioni che condividono lo stesso ambiente. Quando vengono specificati più gestori di pacchetti, questi vengono eseguiti in ordine alfabetico (apt, cargo, gem, go, npm, pip). Puoi facoltativamente fissare versioni specifiche. I pacchetti senza versione fissata installano la versione più recente. Se l'ambiente usa il networking limited, imposta anche networking.allow_package_managers su true; in caso contrario la richiesta viene rifiutata con un errore 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: unrestrictedGestori di pacchetti supportati:
| Campo | Gestore di pacchetti | Esempio |
|---|---|---|
apt | Pacchetti di sistema (apt-get) | "graphviz" |
cargo | Rust (cargo) | "hyperfine@1.18.0" |
gem | Ruby (gem) | "rails:7.1.0" |
go | Moduli Go | "golang.org/x/tools/cmd/goimports@latest" |
npm | Node.js (npm) | "express@4.18.0" |
pip | Python (pip) | "sqlalchemy==2.0.30" |
Networking
Il campo networking controlla l'accesso di rete in uscita della sandbox. Non influisce sugli strumenti web_search o web_fetch, che vengono eseguiti sui server di Anthropic; per limitare i siti che tali strumenti possono raggiungere, imposta allowed_domains o blocked_domains nella voce dello strumento nel toolset dell'agente. Consulta Limita i domini di web search e web fetch.
| Modalità | Descrizione |
|---|---|
unrestricted | Accesso di rete in uscita completo, ad eccezione di una blocklist di sicurezza generale. Questa è l'impostazione predefinita. |
limited | Limita l'accesso di rete della sandbox agli host in allowed_hosts. Imposta allow_package_managers e allow_mcp_servers su true per consentire accessi aggiuntivi. |
L'esempio seguente crea un ambiente con networking 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: trueQuando usi il networking limited:
allowed_hostsspecifica i domini che la sandbox può raggiungere. Specifica nomi host semplici o pattern con wildcard (come*.example.com). Non includere uno schema URL, una porta o un percorso.allow_mcp_serversconsente l'accesso in uscita agli endpoint dei server MCP configurati sull'agente, oltre a quelli elencati nell'arrayallowed_hosts. Il valore predefinito èfalse.allow_package_managersconsente l'accesso in uscita a un insieme di registri di pacchetti pubblici e host di codice oltre a quelli elencati nell'arrayallowed_hosts. Consulta Host dei gestori di pacchetti per l'elenco. Il valore predefinito èfalse. Impostalo sutrueogni volta che l'ambiente specificapackages; altrimenti la richiesta viene rifiutata con un errore 400, anche se gli host dei registri sono elencati inallowed_hosts.
Host dei gestori di pacchetti
Quando allow_package_managers è true, la sandbox può raggiungere i seguenti host oltre a quelli in allowed_hosts. Anthropic gestisce questo elenco e può modificarlo.
| Ecosistema | Host |
|---|---|
| Hosting del codice | 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 |
| Container | registry-1.docker.io, auth.docker.io, production.cloudflare.docker.com, download.docker.com, ghcr.io |
Ciclo di vita dell'ambiente
- Gli ambienti persistono finché non vengono esplicitamente archiviati o eliminati.
- Ogni sessione ottiene la propria istanza di sandbox, anche quando più sessioni fanno riferimento allo stesso ambiente. Le sessioni non condividono lo stato del filesystem.
- Gli ambienti non sono versionati. Se aggiorni un ambiente frequentemente, tieni un tuo registro delle modifiche in modo da poter sapere quale configurazione ha usato ciascuna sessione.
Gestisci gli ambienti
# 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)Runtime preinstallati
Le sandbox cloud includono fin da subito i runtime dei linguaggi più comuni, database e strumenti da riga di comando. Consulta il Riferimento delle sandbox cloud per l'elenco completo.
Passaggi successivi
Pacchetti preinstallati, database e utilità disponibili nelle sandbox cloud.
Crea una sessione per eseguire il tuo agente e iniziare a svolgere attività.
Was this page helpful?