Skip to content

Sandbox Agents - #2889

Merged
sdcoffey merged 1 commit into
mainfrom
feat/sandbox-agents
Apr 15, 2026
Merged

sdcoffey merged 1 commit into
mainfrom
feat/sandbox-agents

Conversation

@sdcoffey

@sdcoffey sdcoffey commented Apr 15, 2026 •

Copy link
Copy Markdown
Collaborator

Sandbox Agents

This release adds Sandbox Agents, a beta SDK surface for running agents with a persistent, isolated workspace. Sandbox agents keep the normal Agent and Runner flow, but add workspace manifests, sandbox-native capabilities, sandbox clients, snapshots, and resume support so agents can work over real files, run commands, edit repositories, generate artifacts, and continue work across runs.

Key pieces:

  • SandboxAgent: an Agent with sandbox defaults such as default_manifest, sandbox instructions, capabilities, and run_as.
  • Manifest: a fresh-workspace contract for files, directories, local files, local directories, Git repos, environment, users, groups, and mounts.
  • SandboxRunConfig: per-run sandbox wiring for client creation, live session injection, serialized session resume, manifest overrides, snapshots, and materialization concurrency limits.
  • Built-in capabilities for shell access, filesystem editing and image inspection, skills, memory, and compaction.
  • Workspace snapshots and serialized sandbox session state for reconnecting to existing work or seeding a fresh sandbox from saved contents.

Sandbox clients and hosted providers

Sandbox agents now support local, containerized, and hosted execution backends:

  • UnixLocalSandboxClient for fast local development.
  • DockerSandboxClient for container isolation and image parity.
  • Hosted sandbox clients for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, and Vercel through optional extras.

The release also adds provider-specific examples and mount strategies for common storage backends, including S3, Cloudflare R2, Google Cloud Storage, Azure Blob Storage, and S3 Files where supported by the selected backend.

Sandbox memory

Adds a sandbox memory capability that lets future sandbox-agent runs learn from prior runs. Memory stores extracted lessons in the sandbox workspace, injects a concise summary into later runs, and uses progressive disclosure so agents can search deeper rollout summaries only when useful.

Memory supports:

  • Read-only or generate-only modes.
  • Live updates when the agent discovers stale memory.
  • Multi-turn grouping through conversation_id, SDK Session, RunConfig.group_id, or generated run IDs.
  • Separate memory layouts for isolating memory across agents or workflows.
  • S3-backed examples for persisted memory across runs.

Workspace mounts, snapshots, and resume

This release adds a full workspace entry and mount model for sandbox sessions:

  • Local files and directories.
  • Synthetic files and directories.
  • Git repository entries.
  • Remote storage mounts for S3, R2, GCS, Azure Blob Storage, and S3 Files.
  • Provider-specific mount strategies across Docker, Modal, Cloudflare, Blaxel, Daytona, E2B, and Runloop.
  • Portable snapshots with path normalization, symlink preservation, mount-safe snapshotting, and remote snapshot support.
  • Resume paths through runner-managed RunState, explicit SandboxSessionState, or saved snapshots.

Examples and tutorials

Adds a large examples/sandbox/ suite covering:

  • Local Unix and Docker sandbox runners.
  • Docker mount smoke tests for S3, GCS, Azure Blob Storage, and S3 Files.
  • Sandbox coding tasks with skills.
  • Sandbox agents as tools and handoff patterns.
  • Memory examples, including multi-agent/multi-turn memory and S3-backed memory.
  • Tax-prep and healthcare-support workflows.
  • Dataroom QA and metric extraction tutorials.
  • Repository code review tutorial.
  • Vision website clone tutorial.
  • Provider examples for Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Temporal, and Vercel.

Runtime, tracing, and model plumbing

The release includes the runtime plumbing needed to make sandbox agents work naturally inside the existing SDK:

  • Runner-managed sandbox preparation, capability binding, session lifecycle, state serialization, and resume behavior.
  • Sandbox-aware RunState serialization.
  • Unified sandbox tracing with SDK spans.
  • Token usage on tracing spans.
  • Runner-managed prompt cache key defaults.
  • OpenAI agent registration and harness ID configuration.
  • Safer redaction of sensitive MCP tool outputs when sensitive tracing is disabled.
  • Additional OpenAI client/model utilities and Chat Completions coverage.

Documentation & Other Changes

  • docs: add Asqav to external tracing processors list.
  • docs: update translated document pages.

Co-authored-by: Abdulrahman Alfozan <[email protected]>
Co-authored-by: Aditya Singh <[email protected]>
Co-authored-by: Andi Liu <[email protected]>
Co-authored-by: Aron <[email protected]>
Co-authored-by: ashwinnathan-openai <[email protected]>
Co-authored-by: Codex <[email protected]>
Co-authored-by: cploujoux <[email protected]>
Co-authored-by: elainegan-openai <[email protected]>
Co-authored-by: Elias Freider <[email protected]>
Co-authored-by: Erik Dunteman <[email protected]>
Co-authored-by: Jason Liu <[email protected]>
Co-authored-by: Jason Steving <[email protected]>
Co-authored-by: Kazuhiro Sera <[email protected]>
Co-authored-by: Lovre Pešut <[email protected]>
Co-authored-by: Lucas Wang <[email protected]>
Co-authored-by: Matt Brockman <[email protected]>
Co-authored-by: Mish Ushakov <[email protected]>
Co-authored-by: Naresh <[email protected]>
Co-authored-by: nicholasclark-openai <[email protected]>
Co-authored-by: qiyaoq-oai <[email protected]>
Co-authored-by: Scott Trinh <[email protected]>
Co-authored-by: Steve Coffey <[email protected]>
Co-authored-by: tode-rl <[email protected]>
Co-authored-by: Wendy Jiao <[email protected]>
@github-actions github-actions Bot added dependencies documentation Improvements or additions to documentation enhancement New feature or request feature:core project labels Apr 15, 2026
@seratch seratch added this to the 0.14.x milestone Apr 15, 2026
@sdcoffey
sdcoffey merged commit 2d665c9 into main Apr 15, 2026
9 checks passed
@sdcoffey
sdcoffey deleted the feat/sandbox-agents branch April 15, 2026 17:00
@alfozan
alfozan self-requested a review April 15, 2026 17:27
RudrenduPaul pushed a commit to RudrenduPaul/openai-agents-python that referenced this pull request Jun 21, 2026
### Sandbox Agents

This release adds **Sandbox Agents**, a beta SDK surface for running
agents with a persistent, isolated workspace. Sandbox agents keep the
normal `Agent` and `Runner` flow, but add workspace manifests,
sandbox-native capabilities, sandbox clients, snapshots, and resume
support so agents can work over real files, run commands, edit
repositories, generate artifacts, and continue work across runs.

Key pieces:

- `SandboxAgent`: an `Agent` with sandbox defaults such as
`default_manifest`, sandbox instructions, capabilities, and `run_as`.
- `Manifest`: a fresh-workspace contract for files, directories, local
files, local directories, Git repos, environment, users, groups, and
mounts.
- `SandboxRunConfig`: per-run sandbox wiring for client creation, live
session injection, serialized session resume, manifest overrides,
snapshots, and materialization concurrency limits.
- Built-in capabilities for shell access, filesystem editing and image
inspection, skills, memory, and compaction.
- Workspace snapshots and serialized sandbox session state for
reconnecting to existing work or seeding a fresh sandbox from saved
contents.

### Sandbox clients and hosted providers

Sandbox agents now support local, containerized, and hosted execution
backends:

- `UnixLocalSandboxClient` for fast local development.
- `DockerSandboxClient` for container isolation and image parity.
- Hosted sandbox clients for Blaxel, Cloudflare, Daytona, E2B, Modal,
Runloop, and Vercel through optional extras.

The release also adds provider-specific examples and mount strategies
for common storage backends, including S3, Cloudflare R2, Google Cloud
Storage, Azure Blob Storage, and S3 Files where supported by the
selected backend.

### Sandbox memory

Adds a sandbox memory capability that lets future sandbox-agent runs
learn from prior runs. Memory stores extracted lessons in the sandbox
workspace, injects a concise summary into later runs, and uses
progressive disclosure so agents can search deeper rollout summaries
only when useful.

Memory supports:

- Read-only or generate-only modes.
- Live updates when the agent discovers stale memory.
- Multi-turn grouping through `conversation_id`, SDK `Session`,
`RunConfig.group_id`, or generated run IDs.
- Separate memory layouts for isolating memory across agents or
workflows.
- S3-backed examples for persisted memory across runs.

### Workspace mounts, snapshots, and resume

This release adds a full workspace entry and mount model for sandbox
sessions:

- Local files and directories.
- Synthetic files and directories.
- Git repository entries.
- Remote storage mounts for S3, R2, GCS, Azure Blob Storage, and S3
Files.
- Provider-specific mount strategies across Docker, Modal, Cloudflare,
Blaxel, Daytona, E2B, and Runloop.
- Portable snapshots with path normalization, symlink preservation,
mount-safe snapshotting, and remote snapshot support.
- Resume paths through runner-managed `RunState`, explicit
`SandboxSessionState`, or saved snapshots.

### Examples and tutorials

Adds a large `examples/sandbox/` suite covering:

- Local Unix and Docker sandbox runners.
- Docker mount smoke tests for S3, GCS, Azure Blob Storage, and S3
Files.
- Sandbox coding tasks with skills.
- Sandbox agents as tools and handoff patterns.
- Memory examples, including multi-agent/multi-turn memory and S3-backed
memory.
- Tax-prep and healthcare-support workflows.
- Dataroom QA and metric extraction tutorials.
- Repository code review tutorial.
- Vision website clone tutorial.
- Provider examples for Blaxel, Cloudflare, Daytona, E2B, Modal,
Runloop, Temporal, and Vercel.

### Runtime, tracing, and model plumbing

The release includes the runtime plumbing needed to make sandbox agents
work naturally inside the existing SDK:

- Runner-managed sandbox preparation, capability binding, session
lifecycle, state serialization, and resume behavior.
- Sandbox-aware `RunState` serialization.
- Unified sandbox tracing with SDK spans.
- Token usage on tracing spans.
- Runner-managed prompt cache key defaults.
- OpenAI agent registration and harness ID configuration.
- Safer redaction of sensitive MCP tool outputs when sensitive tracing
is disabled.
- Additional OpenAI client/model utilities and Chat Completions
coverage.


## Documentation & Other Changes

- docs: add Asqav to external tracing processors list.
- docs: update translated document pages.

Co-authored-by: Abdulrahman Alfozan <[email protected]>
Co-authored-by: Aditya Singh <[email protected]>
Co-authored-by: Andi Liu <[email protected]>
Co-authored-by: Aron <[email protected]>
Co-authored-by: ashwinnathan-openai <[email protected]>
Co-authored-by: Codex <[email protected]>
Co-authored-by: cploujoux <[email protected]>
Co-authored-by: elainegan-openai <[email protected]>
Co-authored-by: Elias Freider <[email protected]>
Co-authored-by: Erik Dunteman <[email protected]>
Co-authored-by: Jason Liu <[email protected]>
Co-authored-by: Jason Steving <[email protected]>
Co-authored-by: Kazuhiro Sera <[email protected]>
Co-authored-by: Lovre Pešut <[email protected]>
Co-authored-by: Lucas Wang <[email protected]>
Co-authored-by: Matt Brockman <[email protected]>
Co-authored-by: Mish Ushakov <[email protected]>
Co-authored-by: Naresh <[email protected]>
Co-authored-by: nicholasclark-openai <[email protected]>
Co-authored-by: qiyaoq-oai <[email protected]>
Co-authored-by: Scott Trinh <[email protected]>
Co-authored-by: tode-rl <[email protected]>
Co-authored-by: Wendy Jiao <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies documentation Improvements or additions to documentation enhancement New feature or request feature:core project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants