DeepSeek - OpenClaw

Providers

DeepSeek

DeepSeek provides powerful AI models with an OpenAI-compatible API.

Property Value
Provider deepseek
Auth DEEPSEEK_API_KEY
API OpenAI-compatible
Base URL https://api.deepseek.com

Install plugin

Install the official plugin, then restart Gateway:

bash
openclaw plugins install @openclaw/deepseek-provideropenclaw gateway restart

Getting started

  • Get your API key

    Create an API key at platform.deepseek.com.

  • Run onboarding

    bash
    openclaw onboard --auth-choice deepseek-api-key

    Prompts for your API key and sets deepseek/deepseek-v4-pro as the default model.

  • Verify models are available

    bash
    openclaw models list --provider deepseek

    To inspect the plugin's static catalog without a running Gateway:

    bash
    openclaw models list --all --provider deepseek
  • Onboarding preserves your model entries and leaves generated catalog rows to discovery. With models.mode: "replace", it also writes the built-in catalog because that mode skips discovery.

    Non-interactive setup

    For scripted or headless installations, pass all flags directly:

    bash
    openclaw onboard --non-interactive \  --mode local \  --auth-choice deepseek-api-key \  --deepseek-api-key "$DEEPSEEK_API_KEY" \  --skip-health \  --accept-risk

    Built-in catalog

    Model ref Name Input Context Max output Notes
    deepseek/deepseek-v4-flash DeepSeek V4 Flash text 1,000,000 384,000 Fast V4 thinking-capable surface
    deepseek/deepseek-v4-pro DeepSeek V4 Pro text 1,000,000 384,000 Default; strongest V4 model
    deepseek/deepseek-v4-flash-vision-exp DeepSeek V4 Flash Vision (Experimental) text, image 1,000,000 384,000 Experimental image understanding

    OpenClaw's local costs are estimates. The vision model's bundled estimate uses DeepSeek's peak rates; its published off-peak rates are half those amounts. DeepSeek can change rates; its Models & Pricing page is authoritative for billing.

    For image inputs, select deepseek/deepseek-v4-flash-vision-exp. The regular Flash and Pro models are text-only. DeepSeek's experimental vision model accepts PNG, JPEG, GIF, and WebP images through the same API and API key. See DeepSeek vision for image limits.

    Thinking and tools

    DeepSeek V4 thinking sessions require replayed assistant messages from a thinking-enabled turn to include reasoning_content on follow-up requests. OpenClaw's DeepSeek plugin backfills that field automatically, so normal multi-turn tool use works on deepseek/deepseek-v4-flash, deepseek/deepseek-v4-flash-vision-exp, and deepseek/deepseek-v4-pro even when history came from another OpenAI-compatible provider (no native reasoning_content) or from a plain assistant message. No /new required after switching providers mid-session.

    When thinking is disabled (including the UI None selection), OpenClaw sends thinking: { type: "disabled" } and strips replayed reasoning_content from outgoing history, keeping the session on the non-thinking DeepSeek path.

    Fresh onboarding selects the stronger deepseek/deepseek-v4-pro model. Use deepseek/deepseek-v4-flash when lower cost or latency matters more than maximum capability.

    Live testing

    To run only the DeepSeek V4 direct-model checks from the modern model live suite:

    bash
    OPENCLAW_LIVE_PROVIDERS=deepseek \OPENCLAW_LIVE_MODELS="deepseek/deepseek-v4-flash,deepseek/deepseek-v4-pro" \pnpm test:live src/agents/models.profiles.live.test.ts

    Verifies both V4 models complete and that thinking/tool follow-up turns preserve the replay payload DeepSeek requires.

    To check the experimental vision model with the same DEEPSEEK_API_KEY:

    bash
    OPENCLAW_LIVE_DEEPSEEK_MODEL=deepseek-v4-flash-vision-exp \pnpm test:live extensions/deepseek/deepseek.live.test.ts

    This runs text, generated-image recognition, and thinking replay checks against the selected model.

    Config example

    json5
    {  env: { vars: { DEEPSEEK_API_KEY: "sk-..." } },  agents: {    defaults: {      model: { primary: "deepseek/deepseek-v4-pro" },    },  },}
    Was this useful?
    On this page

    On this page