Execution environments allow you to configure the runtime environment for your agent. It's where code is run and where processes are managed / commands are executed.

Any Agent which can perform IO (regular Agents & ACP Agents) can get assigned an execution environment.

Local Execution Environment

Local execution environment configuration.

Executes code in the same process. Fastest option but offers no isolation.

Local Execution Environment (YAML)
1
2
3
4
5
6
7
8
- type: local
  executable: null  # Python executable to use (if None, auto-detect based on language).
  language: python  # Programming language to use.
  isolated: false  # Whether to run code in a subprocess.
  root_path: null  # Path to become the root of the filesystem.
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

Docker Execution Environment

Docker execution environment configuration.

Executes code in Docker containers for strong isolation and reproducible environments.

Docker Execution Environment (YAML)
1
2
3
4
5
6
- type: docker
  image: python:3.13-slim  # Docker image to use.
  language: python  # Programming language to use.
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

E2B Execution Environment

E2B execution environment configuration.

Executes code in E2B sandboxes for secure, ephemeral execution environments.

E2B Execution Environment (YAML)
1
2
3
4
5
6
7
- type: e2b
  template: null  # E2B template to use.
  keep_alive: false  # Keep sandbox running after execution.
  language: python  # Programming language to use.
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

Beam Execution Environment

Beam execution environment configuration.

Executes code in Beam cloud sandboxes for scalable, serverless execution environments.

Beam Execution Environment (YAML)
1
2
3
4
5
6
7
8
- type: beam
  cpu: 1.0  # CPU cores allocated to the container.
  memory: 128  # Memory allocated to the container in MiB.
  keep_warm_seconds: 600  # Seconds to keep sandbox alive, -1 for no timeout.
  language: python  # Programming language to use.
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

Daytona Execution Environment

Daytona execution environment configuration.

Executes code in remote Daytona sandboxes for cloud-based development environments.

Daytona Execution Environment (YAML)
1
2
3
4
5
6
7
8
9
- type: daytona
  api_url: null  # Daytona API URL (optional, uses env vars if not provided).
  api_key: null  # API key for authentication.
  target: null  # Target configuration.
  image: python:3.13-slim  # Container image.
  keep_alive: false  # Keep sandbox running after execution.
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

SRT Execution Environment

Sandboxed execution environment using Anthropic's sandbox-runtime.

Executes code locally with OS-level sandboxing for network and filesystem restrictions. Requires srt CLI: npm install -g @anthropic-ai/sandbox-runtime

SRT Execution Environment (YAML)
- type: srt
  language: python  # Programming language to use.
  executable: null  # Executable to use (auto-detect if None).
  sandbox:  # Sandbox restrictions configuration.
    allowed_domains: []
    denied_domains: []
    allow_unix_sockets: []
    allow_all_unix_sockets: false
    allow_local_binding: false
    deny_read:
    - ~/.ssh
    - ~/.aws
    - ~/.gnupg
    allow_write:
    - .
    deny_write: []
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

Microsandbox Execution Environment

Microsandbox execution environment configuration.

Executes code in lightweight microVMs for strong isolation.

Microsandbox Execution Environment (YAML)
- type: microsandbox
  server_url: null  # Microsandbox server URL (uses MSB_SERVER_URL env var if None).
  namespace: default  # Sandbox namespace.
  api_key: null  # API key for authentication (uses MSB_API_KEY env var if None).
  memory: 512  # Memory limit in MB.
  cpus: 1.0  # CPU limit.
  language: python  # Programming language to use.
  image: null  # Custom Docker image (uses default for language if None).
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

Modal Execution Environment

Modal execution environment configuration.

Executes code in Modal serverless sandboxes for scalable cloud execution.

Modal Execution Environment (YAML)
- type: modal
  app_name: null  # Modal app name (creates if missing).
  cpu: null  # CPU allocation in cores.
  memory: null  # Memory allocation in MB.
  gpu: null  # GPU type.
  idle_timeout: null  # Idle timeout in seconds.
  workdir: /tmp  # Working directory in sandbox.
  language: python  # Programming language to use.
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

SSH Execution Environment

SSH execution environment configuration.

Executes code on a remote machine via SSH connection.

SSH Execution Environment (YAML)
- type: ssh
  host: 192.168.1.100  # Remote host to connect to.
  username: ubuntu  # SSH username.
  password: null  # SSH password (if not using key auth).
  private_key_path: null  # Path to SSH private key file.
  port: 22  # SSH port.
  language: python  # Programming language to use.
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

Vercel Execution Environment

Vercel execution environment configuration.

Executes code in Vercel cloud sandboxes for serverless execution.

Vercel Execution Environment (YAML)
- type: vercel
  runtime: null  # Vercel runtime to use.
  resources: null  # Resource configuration for the sandbox.
  ports:  # List of ports to expose.
  - 3000
  language: python  # Programming language to use.
  token: null  # Vercel API token (uses environment if None).
  project_id: null  # Vercel project ID (uses environment if None).
  team_id: null  # Vercel team ID (uses environment if None).
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

Pyodide Execution Environment

Pyodide execution environment configuration.

Executes Python code in WASM via Deno for sandboxed browser-like execution.

Pyodide Execution Environment (YAML)
- type: pyodide
  startup_timeout: 60.0  # Timeout for Pyodide initialization in seconds.
  allow_net: true  # Network access (True=all, list=specific hosts, False=none).
  allow_read: false  # File read access.
  allow_write: false  # File write access.
  allow_env: false  # Environment variable access.
  allow_run: false  # Subprocess execution (limited in WASM).
  allow_ffi: false  # Foreign function interface access.
  deno_executable: null  # Path to deno executable (auto-detected if None).
  dependencies: null  # List of packages to install (pip for Python, npm for JS/TS).
  timeout: 60.0  # Execution timeout in seconds.
  cwd: null  # Working directory for the environment (None means use default/auto).

Theres one more execution environment, the ACP environment. This one cannot get assigned manually, but it becomes to default execution environment for any agent participating in an ACP session. (its overridable though, an ACP agent can also work remotely!)