openclaw/docs/providers/deepgram.md
Jon Shapiro 92697edb7c fix(venice): add compat settings to prevent HTTP 400 errors
Venice's API doesn't support certain OpenAI-compatible parameters that
Clawdbot sends by default:

- `store`: Venice returns HTTP 400 with no body when this is present
- `developer` role: Not supported by Venice's API

This adds VENICE_COMPAT settings (supportsStore: false,
supportsDeveloperRole: false) to all Venice model definitions, both
from the static catalog and dynamically discovered models.

Fixes issues reported in PR #1666 where users experienced silent
failures (HTTP 400, no body) when using Venice models.

Co-authored-by: jonisjongithub <jonisjongithub@users.noreply.github.com>
Co-authored-by: Clawdbot <bot@clawd.bot>
2026-01-26 17:56:01 -08:00

2.1 KiB

summary read_when
Deepgram transcription for inbound voice notes
You want Deepgram speech-to-text for audio attachments
You need a quick Deepgram config example

Deepgram (Audio Transcription)

Deepgram is a speech-to-text API. In Clawdbot it is used for inbound audio/voice note transcription via tools.media.audio.

When enabled, Clawdbot uploads the audio file to Deepgram and injects the transcript into the reply pipeline ({{Transcript}} + [Audio] block). This is not streaming; it uses the pre-recorded transcription endpoint.

Website: https://deepgram.com
Docs: https://developers.deepgram.com

Quick start

  1. Set your API key:
DEEPGRAM_API_KEY=dg_...
  1. Enable the provider:
{
  tools: {
    media: {
      audio: {
        enabled: true,
        models: [{ provider: "deepgram", model: "nova-3" }]
      }
    }
  }
}

Options

  • model: Deepgram model id (default: nova-3)
  • language: language hint (optional)
  • tools.media.audio.providerOptions.deepgram.detect_language: enable language detection (optional)
  • tools.media.audio.providerOptions.deepgram.punctuate: enable punctuation (optional)
  • tools.media.audio.providerOptions.deepgram.smart_format: enable smart formatting (optional)

Example with language:

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

Example with Deepgram options:

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

Notes

  • Authentication follows the standard provider auth order; DEEPGRAM_API_KEY is the simplest path.
  • Override endpoints or headers with tools.media.audio.baseUrl and tools.media.audio.headers when using a proxy.
  • Output follows the same audio rules as other providers (size caps, timeouts, transcript injection).