I wanted NVIDIA DeepSeek V4 Flash to be my default model in OpenClaw. I also wanted another NVIDIA model to take over if DeepSeek failed.

It took a few changes before tools and follow-up requests worked properly. Here is the setup that worked for me with OpenClaw 2026.6.11:

  • Endpoint: https://integrate.api.nvidia.com/v1
  • NVIDIA model: deepseek-ai/deepseek-v4-flash
  • OpenClaw reference: nvidia/deepseek-ai/deepseek-v4-flash
  • Fallback: nvidia/z-ai/glm-5.1

You can find the model details and API examples in NVIDIA’s DeepSeek V4 Flash API reference.

Configure OpenClaw

Add this to ~/.openclaw/openclaw.json:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "nvidia/deepseek-ai/deepseek-v4-flash",
        "fallbacks": [
          "nvidia/z-ai/glm-5.1"
        ]
      }
    }
  },
  "models": {
    "providers": {
      "nvidia": {
        "baseUrl": "https://integrate.api.nvidia.com/v1",
        "api": "openai-completions",
        "models": [
          {
            "id": "deepseek-ai/deepseek-v4-flash",
            "name": "DeepSeek V4 Flash",
            "reasoning": false,
            "input": ["text"],
            "contextWindow": 1000000,
            "maxTokens": 16384,
            "params": {
              "chat_template_kwargs": {
                "thinking": false
              }
            },
            "compat": {
              "requiresStringContent": true,
              "thinkingFormat": "openai"
            }
          }
        ]
      }
    }
  }
}

OpenClaw uses the provider/model format for model names. NVIDIA provides an OpenAI-compatible chat endpoint, so I use openai-completions here. You can read more in the OpenClaw custom provider documentation.

Store the NVIDIA API Key Securely

Do not save the NVIDIA API key inside openclaw.json. Store it in OpenClaw’s authentication store instead:

openclaw models auth --agent main paste-api-key \
  --provider nvidia \
  --profile-id nvidia:default

OpenClaw will ask you to paste the key. It stores the key in:

~/.openclaw/agents/main/agent/openclaw-agent.sqlite

Check that the profile is available without showing the secret:

openclaw models status --agent main

The OpenClaw models CLI reference has more information about these commands.

Why I Disabled Thinking

NVIDIA’s example turns thinking on. That did not work well with my OpenClaw setup. I received provider 400 errors, and some requests stopped after a tool call.

I fixed this by turning thinking off:

"chat_template_kwargs": {
  "thinking": false
}

The reasoning: false setting tells OpenClaw not to treat this as a reasoning model. The requiresStringContent and thinkingFormat settings help OpenClaw send and receive messages in the format expected by NVIDIA.

This change was needed for my OpenClaw setup. It does not mean that thinking must always be disabled when using the NVIDIA API.

Keep the Fallback on NVIDIA

I use NVIDIA GLM 5.1 as the fallback:

"fallbacks": [
  "nvidia/z-ai/glm-5.1"
]

My OpenRouter login is still installed, but I did not add an OpenRouter model to this fallback list. If DeepSeek fails, I want OpenClaw to try GLM 5.1 on NVIDIA.

One thing caught me out. If you use /model in Telegram or select a model in the TUI, OpenClaw may treat that as a fixed model choice for the session. In that case, the normal fallback list may not run. The OpenClaw model failover documentation explains this behavior.

Local Compatibility Patch

I also had to patch this OpenClaw file on my machine:

~/.npm-global/lib/node_modules/openclaw/dist/result-fallback-classifier-D13pndqO.js

The patch treats some NVIDIA DeepSeek V4 errors as temporary overload errors. These include provider 400 errors, empty assistant replies, and some requests that stop after a tool call. This gives OpenClaw a chance to continue with GLM 5.1.

This is a file inside the installed OpenClaw package. An OpenClaw update may overwrite it or change the filename, so I need to check the patch again after every update. The better long-term fix is to put this behavior in a provider plugin or fix it in OpenClaw itself.

Restart and Verify

After changing the configuration, restart the gateway and check the status:

systemctl --user restart openclaw-gateway.service
openclaw models status --json
openclaw status --deep
journalctl --user -u openclaw-gateway.service -f

I expect to see:

Default:  nvidia/deepseek-ai/deepseek-v4-flash
Fallback: nvidia/z-ai/glm-5.1
Auth:     nvidia:default
Thinking: off

I also updated my restore_openclaw_to_lkg.sh script. It restores my last working openclaw.json, checks the file, backs up the current configuration, and restarts the gateway. This gives me a quick way to recover if I break the configuration later.

Telegram Troubleshooting

If Telegram stops responding with 403 Forbidden: bot was blocked by the user, the problem is with the Telegram account rather than NVIDIA. Unblock the bot and send /start again.

When testing the default model and fallback, remove any permanent /model choice from Telegram or the TUI. If you want to select DeepSeek manually, use the full model name:

nvidia/deepseek-ai/deepseek-v4-flash

After turning thinking off, adding the NVIDIA login, and setting GLM 5.1 as the fallback, DeepSeek V4 Flash is now working as my default OpenClaw model.