Model providers

Using Deepgram with OpenClaw

3 min read

Browse more in Model providers.

All model providers guides →

This guide shows you how to wire Deepgram into OpenClaw so your agents can transcribe inbound audio and voice notes. audio`, so every uploaded file turns into a transcript injected into the reply pipeline.

By the end, you will have Deepgram transcription working with model selection, language hints, and provider-specific options like punctuation and smart formatting.

Setup flow

Prerequisites

  • A Deepgram account with an API key that starts with `dg_...`.
  • An existing OpenClaw setup where you can edit the agent or server config that defines `tools.media.audio`.
  • Audio or voice note input flowing through `tools.media.audio` in your OpenClaw agent so Deepgram has files to transcribe.

Steps

  1. 1

    Set your Deepgram API key

    Start by exposing your Deepgram credentials to OpenClaw so it can authenticate when uploading audio. The docs recommend using the `DEEPGRAM_API_KEY` environment variable, which follows the standard provider auth order and is the simplest path.

    bash
    DEEPGRAM_API_KEY=dg_...
  2. 2

    Enable Deepgram for inbound audio transcription

    Next, enable the audio tool and point it at Deepgram so OpenClaw knows which provider to call. audio` and sets Deepgram with the `nova-3` model as the backend for pre-recorded transcription.

    json
    {
      tools: {
        media: {
          audio: {
            enabled: true,
            models: [{ provider: "deepgram", model: "nova-3" }],
          },
        },
      },
    }
  3. 3

    Set a language hint for better transcripts

    If you know the primary language of your users, add a language hint so Deepgram can optimize recognition. This example keeps the same `nova-3` model but specifies English with `language: "en"` on the model entry.

    json
    {
      tools: {
        media: {
          audio: {
            enabled: true,
            models: [{ provider: "deepgram", model: "nova-3", language: "en" }],
          },
        },
      },
    }
  4. 4

    Tune Deepgram provider options

    Deepgram exposes extra toggles like language detection, punctuation, and smart formatting that you can control from OpenClaw. deepgram` to shape the transcript output your agents receive.

    json
    {
      tools: {
        media: {
          audio: {
            enabled: true,
            providerOptions: {
              deepgram: {
                detect_language: true,
                punctuate: true,
                smart_format: true,
              },
            },
            models: [{ provider: "deepgram", model: "nova-3" }],
          },
        },
      },
    }
  5. 5

    Override base URL or headers when using a proxy

    If you front Deepgram with a proxy or gateway, you may need to change where OpenClaw sends audio and which headers it includes. headers` so the same Deepgram config works through your proxy.

Configuration

OptionDescriptionExample
DEEPGRAM_API_KEYDeepgram API key used for authenticating audio uploads from OpenClaw.DEEPGRAM_API_KEY=dg_1234567890abcdef
tools.media.audio.enabledTurns inbound audio/voice note transcription on or off in OpenClaw.true
tools.media.audio.models[].providerSelects Deepgram as the provider for audio transcription.deepgram
tools.media.audio.models[].modelDeepgram model id used for transcription; defaults to `nova-3` if not set.nova-3
tools.media.audio.models[].languageOptional language hint passed to Deepgram to improve recognition.en
tools.media.audio.providerOptions.deepgram.detect_languageOptional flag to enable automatic language detection in Deepgram.true
tools.media.audio.providerOptions.deepgram.punctuateOptional flag to enable punctuation in the Deepgram transcript.true
tools.media.audio.providerOptions.deepgram.smart_formatOptional flag to enable smart formatting in the Deepgram transcript.true
tools.media.audio.baseUrlOptional override for the Deepgram endpoint when sending audio through a proxy.https://my-proxy.internal/deepgram
tools.media.audio.headersOptional custom headers to send when calling Deepgram via a proxy.{ "X-Forwarded-For": "openclaw-gateway" }

Troubleshooting

Transcripts are missing and the agent never sees `{{Transcript}}` or the `[Audio]` block.

enabled` is true and a Deepgram model is configured. Verify your config matches the docs example with `enabled: true` and `models: [{ provider: "deepgram", model: "nova-3" }]` so inbound audio goes through Deepgram.

bash
{
  tools: {
    media: {
      audio: {
        enabled: true,
        models: [{ provider: "deepgram", model: "nova-3" }],
      },
    },
  },
}

Deepgram never receives audio and transcription fails silently when using a proxy.

When you front Deepgram with a proxy, OpenClaw still points at the default endpoint unless you override it. headers` so audio uploads go to your proxy instead of the default Deepgram URL.

bash
{
  tools: {
    media: {
      audio: {
        // ...
        // baseUrl and headers should be set here when using a proxy
      },
    },
  },
}

Frequently asked questions

Powered by Mem0

Add persistent memory to OpenClaw

Official Mem0 plugin for OpenClaw keeps context across chats and tools. Smaller prompts, lower cost, better continuity for your agents.

More in Model providers