> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# nemo_gym.sandbox.config

Resolve a sandbox provider reference into a provider config.

An agent selects a sandbox by name (`sandbox_provider: sandbox`). The named
block lives in its own provider config file, so swapping providers is swapping a
`config_paths` entry, not editing the agent config::

# nemo\_gym/sandbox/providers/opensandbox/configs/opensandbox.yaml

sandbox:
opensandbox:
connection: \{ ... }

# agent config

sandbox\_provider: sandbox

An inline single-key mapping (`&#123;provider_name: &#123;...&#125;&#125;`) is also accepted for
keeping everything in one file.

## Module Contents

### Functions

| Name                                                                            | Description                                                                |
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| [`_candidate_sandbox_names`](#nemo_gym-sandbox-config-_candidate_sandbox_names) | List top-level config keys that look like named sandbox provider blocks.   |
| [`_to_plain_dict`](#nemo_gym-sandbox-config-_to_plain_dict)                     | Return a plain `dict` for mappings, including OmegaConf `DictConfig`.      |
| [`resolve_provider_config`](#nemo_gym-sandbox-config-resolve_provider_config)   | Resolve a `sandbox_provider` field into a single-key provider config dict. |

### API

```python
nemo_gym.sandbox.config._candidate_sandbox_names(
    named_configs: collections.abc.Mapping[str, typing.Any] | None
) -> list[str]
```

List top-level config keys that look like named sandbox provider blocks.

```python
nemo_gym.sandbox.config._to_plain_dict(
    value: typing.Any
) -> typing.Any
```

Return a plain `dict` for mappings, including OmegaConf `DictConfig`.

```python
nemo_gym.sandbox.config.resolve_provider_config(
    sandbox_provider: str | collections.abc.Mapping[str, typing.Any],
    named_configs: collections.abc.Mapping[str, typing.Any] | None = None
) -> dict[str, typing.Any]
```

Resolve a `sandbox_provider` field into a single-key provider config dict.

**Parameters:**

Either the name of a top-level sandbox config block
(resolved from `named_configs`) or an inline single-key provider
mapping of the form `&#123;provider_name: &#123;...&#125;&#125;`.

Mapping of top-level config name to config block, typically
the merged global config dict. Required when `sandbox_provider` is a
name reference.

**Returns:** `dict[str, Any]`

A plain `&#123;provider_name: provider_kwargs&#125;` dict suitable for

**Raises:**

* `TypeError`: If `sandbox_provider` is neither a string nor a mapping.
* `ValueError`: If a named reference cannot be found, or if the resolved block
  is not a single-key provider mapping.