Environments define the sandbox configuration where your agent runs. You create an environment once, then reference its ID each time you start a session. Multiple sessions can share the same environment, but each session gets its own isolated sandbox (a fresh Linux container).
This page covers type: cloud environments. To run sandboxes on your own infrastructure, see Self-hosted sandboxes.
Managed Agents API requests require the managed-agents-2026-04-01 beta header, except memory store endpoints, which use agent-memory-2026-07-22 instead. The SDK sets the correct beta header automatically. See Beta headers.
eno beta:environments create \
--name "python-dev" \
--config '{type: cloud, networking: {type: unrestricted}}'Use a unique, descriptive name so you can tell environments apart.
Pass the environment ID as a string when creating a session.
eno beta:sessions create \
--agent "$AGENT_ID" \
--environment-id "$ENVIRONMENT_ID"The packages field pre-installs packages into the sandbox before the agent starts. Packages are installed by their respective package managers and cached across sessions that share the same environment. When multiple package managers are specified, they run in alphabetical order (apt, cargo, gem, go, npm, pip). You can optionally pin specific versions. Unpinned packages install the latest version.
eno beta:environments create <<'YAML'
name: data-analysis
config:
type: cloud
packages:
pip:
- pandas
- numpy
- scikit-learn
npm:
- express
networking:
type: unrestricted
YAMLSupported package managers:
| Field | Package manager | Example |
|---|---|---|
apt | System packages (apt-get) | "ffmpeg" |
cargo | Rust (cargo) | "[email protected]" |
gem | Ruby (gem) | "rails:7.1.0" |
go | Go modules | "golang.org/x/tools/cmd/goimports@latest" |
npm | Node.js (npm) | "[email protected]" |
pip | Python (pip) | "pandas==2.2.0" |
The networking field controls the sandbox's outbound network access. It does not affect the allowed domains for the web_search or web_fetch tools.
| Mode | Description |
|---|---|
unrestricted | Full outbound network access, except for a general safety blocklist. This is the default. |
limited | Restricts sandbox network access to the hosts in allowed_hosts. Set allow_package_managers and allow_mcp_servers to true to allow additional access. |
The following example creates an environment with limited networking:
eno beta:environments create <<'YAML'
name: api-access
config:
type: cloud
networking:
type: limited
allowed_hosts:
- api.example.com
allow_mcp_servers: true
allow_package_managers: true
YAMLFor production deployments, use limited networking with an explicit allowed_hosts list. Follow the principle of least privilege by granting only the minimum network access your agent requires, and regularly audit your allowed domains.
When using limited networking:
allowed_hosts specifies domains the sandbox can reach. Specify bare hostnames or wildcard patterns (such as *.example.com). Do not include a URL scheme, port, or path.allow_mcp_servers allows outbound access to MCP server endpoints configured on the agent, beyond those listed in the allowed_hosts array. Defaults to false.allow_package_managers allows outbound access to public package registries (such as PyPI and npm) beyond those listed in the allowed_hosts array. Defaults to false.# List environments
eno beta:environments list
# Retrieve a specific environment
eno beta:environments retrieve --environment-id "$ENVIRONMENT_ID"
# Archive an environment (read-only, existing sessions continue)
eno beta:environments archive --environment-id "$ENVIRONMENT_ID"
# Delete an environment (only if no sessions reference it)
eno beta:environments delete --environment-id "$ENVIRONMENT_ID"Cloud sandboxes include common runtimes out of the box. See Cloud sandbox reference for the full list of pre-installed languages, databases, and utilities.
Pre-installed packages, databases, and utilities available in cloud sandboxes.
Create a session to run your agent and start running tasks.
¿Te ha resultado útil esta página?