# create_sandbox

> **Function** in `deepagents_code`

📖 [View in docs](https://reference.langchain.com/python/deepagents-code/integrations/sandbox_factory/create_sandbox)

Create or connect to a sandbox of the specified provider.

This is the unified interface for sandbox creation using the
provider abstraction.

## Signature

```python
create_sandbox(
    provider: str,
    *,
    sandbox_id: str | None = None,
    snapshot_name: str | None = None,
    setup_script_path: str | None = None,
    params: dict[str, Any] | None = None,
) -> Generator[SandboxBackendProtocol, None, None]
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `provider` | `str` | Yes | Sandbox provider name. Built-ins (`'agentcore'`, `'daytona'`, `'langsmith'`, `'modal'`, `'runloop'`, `'vercel'`), entry-point providers, and config-declared providers are all resolved through the registry. |
| `sandbox_id` | `str \| None` | No | Optional existing sandbox ID to reuse (default: `None`) |
| `snapshot_name` | `str \| None` | No | Optional sandbox snapshot name to use or create. Honored by providers whose metadata sets `supports_snapshot_name` (built-ins: `'langsmith'` snapshot, `'runloop'` blueprint); must be `None` for other providers. (default: `None`) |
| `setup_script_path` | `str \| None` | No | Optional path to setup script to run after sandbox starts (default: `None`) |
| `params` | `dict[str, Any] \| None` | No | Extra keyword arguments forwarded to `provider.get_or_create()` (e.g. config-declared `[sandboxes.providers.<name>.params]`). (default: `None`) |

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/d1c6946218b4f0f86ab7b02b6bb6af1e4b75cede/libs/code/deepagents_code/integrations/sandbox_factory.py#L76)