docs/providers/nvidia.md
NVIDIA serves open models for free through an OpenAI-compatible API at
https://integrate.api.nvidia.com/v1, authenticated with an API key from
build.nvidia.com. OpenClaw
defaults the NVIDIA provider to Nemotron 3 Ultra, NVIDIA's 550B total / 55B
active reasoning model for long-context agentic work.
For non-interactive setup, pass the key directly:
openclaw onboard --auth-choice nvidia-api-key --nvidia-api-key "nvapi-..."
{
env: { NVIDIA_API_KEY: "nvapi-..." },
models: {
providers: {
nvidia: {
baseUrl: "https://integrate.api.nvidia.com/v1",
api: "openai-completions",
},
},
},
agents: {
defaults: {
model: { primary: "nvidia/nvidia/nemotron-3-ultra-550b-a55b" },
},
},
}
When an NVIDIA API key is configured, setup and model-selection paths fetch
NVIDIA's public featured-model catalog from
https://assets.ngc.nvidia.com/products/api-catalog/featured-models.json and
cache the result for 24 hours (first 32 entries, imported as free text-input
rows). New featured models from build.nvidia.com therefore appear in setup and
model-selection surfaces without waiting for an OpenClaw release. When the
live feed is available, the first returned model is the preselected option
during NVIDIA setup.
The fetch uses a fixed HTTPS host policy for assets.ngc.nvidia.com. If no
NVIDIA API key is configured, or if the feed is unavailable or malformed,
OpenClaw falls back to the bundled catalog and bundled default below.
Nemotron 3 Ultra is the default NVIDIA model in OpenClaw. NVIDIA's build page for
nvidia/nemotron-3-ultra-550b-a55b
lists it as an available free endpoint with a 1M-token context specification.
The bundled catalog records a 16,384-token max output to match NVIDIA's current
OpenAI-compatible sample request for the hosted endpoint.
The bundled Ultra row sends
chat_template_kwargs: { enable_thinking: false, force_nonempty_content: true }
by default so normal chat output stays in the visible answer instead of
exposing reasoning text.
Use Ultra for the highest-capability NVIDIA default. Keep Super selected when you want the smaller Nemotron 3 option, or choose one of the third-party models hosted in NVIDIA's catalog when their context, latency, or behavior fits better.
| Model ref | Name | Context | Max output | Notes |
|---|---|---|---|---|
nvidia/nvidia/nemotron-3-ultra-550b-a55b | NVIDIA Nemotron 3 Ultra 550B | 1,000,000 | 16,384 | Default |
nvidia/nvidia/nemotron-3-super-120b-a12b | NVIDIA Nemotron 3 Super 120B | 1,048,576 | 8,192 | |
nvidia/moonshotai/kimi-k2.5 | Kimi K2.5 | 262,144 | 8,192 | |
nvidia/minimaxai/minimax-m2.7 | Minimax M2.7 | 196,608 | 8,192 | |
nvidia/z-ai/glm-5.1 | GLM 5.1 | 202,752 | 8,192 | |
nvidia/minimaxai/minimax-m2.5 | MiniMax M2.5 | 196,608 | 8,192 | Deprecated; use minimaxai/minimax-m2.7 |
nvidia/z-ai/glm5 | GLM-5 | 202,752 | 8,192 | Deprecated; use z-ai/glm-5.1 |
```json5
{
agents: {
defaults: {
models: {
"nvidia/nvidia/nemotron-3-ultra-550b-a55b": {
params: {
chat_template_kwargs: { enable_thinking: true },
extra_body: { reasoning_budget: 16384 },
},
},
},
},
},
}
```
`params.chat_template_kwargs` merges into any `chat_template_kwargs`
already on the request instead of replacing the whole object.
`params.extra_body` is the final OpenAI-compatible request-body override
and overwrites colliding payload keys, so use it only for fields NVIDIA
documents for the selected endpoint.
```json5
{
models: {
providers: {
"custom-integrate-api-nvidia-com": {
baseUrl: "https://integrate.api.nvidia.com/v1",
api: "openai-completions",
apiKey: "NVIDIA_API_KEY",
timeoutSeconds: 300,
},
},
},
agents: {
defaults: {
models: {
"custom-integrate-api-nvidia-com/meta/llama-3.1-70b-instruct": {
params: { thinking: "off" },
},
},
},
},
}
```