UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

138 lines (109 loc) 6.82 kB
--- summary: "Use DeepInfra's unified API to access the most popular open source and frontier models in OpenClaw" read_when: - You want a single API key for the top open source LLMs - You want to run models via DeepInfra's API in OpenClaw title: "DeepInfra" --- DeepInfra routes requests to popular open source and frontier models behind a single OpenAI-compatible endpoint and API key. Most OpenAI SDKs work against it by switching the base URL. ## Install plugin ```bash openclaw plugins install @openclaw/deepinfra-provider openclaw gateway restart ``` ## Get an API key 1. Sign in at [deepinfra.com](https://deepinfra.com/) 2. Go to Dashboard / Keys and generate a key, or use the auto-created one ## CLI setup ```bash openclaw onboard --deepinfra-api-key <key> ``` Or set the environment variable: ```bash export DEEPINFRA_API_KEY="<your-deepinfra-api-key>" # pragma: allowlist secret ``` ## Config snippet ```json5 { env: { vars: { DEEPINFRA_API_KEY: "<your-deepinfra-api-key>" } }, // pragma: allowlist secret agents: { defaults: { model: { primary: "deepinfra/deepseek-ai/DeepSeek-V4-Flash" }, }, }, } ``` ## Supported surfaces Chat, image generation, and video generation refresh their model catalogs live from `https://api.deepinfra.com/v1/openai/models?sort_by=openclaw&filter=with_meta` once `DEEPINFRA_API_KEY` is configured. Live discovery expands the list of selectable models; the default model per surface stays the static value below. Other surfaces use static catalogs until they move onto the same live catalog. | Surface | Default model | OpenClaw config/tool | | ------------------------ | ------------------------------------------------------------------------------ | ----------------------------------------------------- | | Chat / model provider | `deepseek-ai/DeepSeek-V4-Flash` (live catalog adds more chat models) | `agents.defaults.model` | | Image generation/editing | `black-forest-labs/FLUX-1-schnell` (live catalog adds more `image-gen` models) | `image_generate`, `agents.defaults.mediaModels.image` | | Media understanding | `moonshotai/Kimi-K2.5` for images | inbound image understanding | | Speech-to-text | `openai/whisper-large-v3-turbo` | inbound audio transcription | | Text-to-speech | `hexgrad/Kokoro-82M` | `tts.provider: "deepinfra"` | | Video generation | `Pixverse/Pixverse-T2V` (live catalog adds more `video-gen` models) | `video_generate`, `agents.defaults.mediaModels.video` | | Memory embeddings | `BAAI/bge-m3` | `memory.search.provider: "deepinfra"` | DeepInfra also exposes reranking, classification, object-detection, and other native model types. OpenClaw has no provider contract for those categories yet, so this plugin does not register them. ## Available models OpenClaw discovers DeepInfra models dynamically once a key is configured. Use `/models deepinfra` or `openclaw models list --provider deepinfra` to see the current list. Any model on [deepinfra.com](https://deepinfra.com/) works with the `deepinfra/` prefix: ```text deepinfra/deepseek-ai/DeepSeek-V4-Flash deepinfra/deepseek-ai/DeepSeek-V4-Pro deepinfra/zai-org/GLM-5.2 deepinfra/stepfun-ai/Step-3.7-Flash deepinfra/moonshotai/Kimi-K2.7-Code deepinfra/moonshotai/Kimi-K2.6 deepinfra/nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B deepinfra/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B ...and many more ``` ## Price estimates Chat discovery keeps model membership, order, tags, and limits from DeepInfra's agent projection. Prices come separately from the anonymous native [`/models/list`](https://docs.deepinfra.com/api-reference/models/models-list) catalog. The plugin converts cents per token to USD per million tokens, applies the advertised numeric discount once, and uses the native cached-input ratio. Both requests share the existing five-minute live-catalog cache and run concurrently only for configured chat discovery. Image and video discovery do not request chat prices. Schedules qualified by pricing prose, a nonempty pricing table, or a scheduled discount expiry remain unknown; OpenClaw does not guess context tiers or parse promotion dates. A declared generic cache-write rate also remains unsupported because its numeric semantics are not documented. Explicit 5-minute/1-hour retention and priority/flex rates are separate contracts and are not included in standard estimates. See DeepInfra's [prompt caching](https://docs.deepinfra.com/chat/prompt-caching) and [cache retention](https://docs.deepinfra.com/chat/prompt-cache-retention) docs. Missing, malformed, or unavailable native prices never restore the projection's flat prices. Models remain selectable; the required runtime zero-cost placeholder means unknown, not verified free billing. If metadata discovery fails, OpenClaw keeps bundled model metadata and applies any available native prices. The complete bundled fallback, including prices, is used only when both sources fail or live discovery is skipped. Onboarding adds the model alias without pinning provider prices, and explicitly configured model costs remain authoritative. Hosted publication uses the same native parser. It preserves metadata without cost for unsupported or absent schedules, retains declared zero prices, and leaves the previous hosted catalog intact if the native feed fails validation. The existing [hosted catalog refresh and Gateway restart lifecycle](/concepts/models#hosted-catalog-updates) is unchanged. ## Notes - Model refs are `deepinfra/<provider>/<model>` (for example `deepinfra/Qwen/Qwen3-Max`). - Default chat model: `deepinfra/deepseek-ai/DeepSeek-V4-Flash` - Base URL: `https://api.deepinfra.com/v1/openai` - Video generation uses the OpenAI-compatible async endpoint `https://api.deepinfra.com/v1/openai/videos` (submit, then poll). A configured `baseUrl` is honored. `openclaw doctor --fix` migrates legacy `nativeBaseUrl` or `/v1/inference` values on `api.deepinfra.com` to `baseUrl` automatically; custom native endpoints are retired with a doctor notice and need a manually configured OpenAI-compatible `baseUrl`. Video generation fails with an actionable error (before sending any request) while `baseUrl` still targets the retired `/v1/inference` surface. ## Related - [Model providers](/concepts/model-providers) - [All providers](/providers/index)