Files
openclaw-skill/openclaw-knowhow-skill/docs/reference/concepts/model-providers.md
Selig 4c966a3ad2 Initial commit: OpenClaw Skill Collection
6 custom skills (assign-task, dispatch-webhook, daily-briefing,
task-capture, qmd-brain, tts-voice) with technical documentation.
Compatible with Claude Code, OpenClaw, Codex CLI, and OpenCode.
2026-03-13 10:58:30 +08:00

315 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.
# Model Providers
# Model providers
This page covers **LLM/model providers** (not chat channels like WhatsApp/Telegram).
For model selection rules, see [/concepts/models](/concepts/models).
## Quick rules
* Model refs use `provider/model` (example: `opencode/claude-opus-4-6`).
* If you set `agents.defaults.models`, it becomes the allowlist.
* CLI helpers: `openclaw onboard`, `openclaw models list`, `openclaw models set <provider/model>`.
## Built-in providers (pi-ai catalog)
OpenClaw ships with the piai catalog. These providers require **no**
`models.providers` config; just set auth + pick a model.
### OpenAI
* Provider: `openai`
* Auth: `OPENAI_API_KEY`
* Example model: `openai/gpt-5.1-codex`
* CLI: `openclaw onboard --auth-choice openai-api-key`
```json5 theme={null}
{
agents: { defaults: { model: { primary: "openai/gpt-5.1-codex" } } },
}
```
### Anthropic
* Provider: `anthropic`
* Auth: `ANTHROPIC_API_KEY` or `claude setup-token`
* Example model: `anthropic/claude-opus-4-6`
* CLI: `openclaw onboard --auth-choice token` (paste setup-token) or `openclaw models auth paste-token --provider anthropic`
```json5 theme={null}
{
agents: { defaults: { model: { primary: "anthropic/claude-opus-4-6" } } },
}
```
### OpenAI Code (Codex)
* Provider: `openai-codex`
* Auth: OAuth (ChatGPT)
* Example model: `openai-codex/gpt-5.3-codex`
* CLI: `openclaw onboard --auth-choice openai-codex` or `openclaw models auth login --provider openai-codex`
```json5 theme={null}
{
agents: { defaults: { model: { primary: "openai-codex/gpt-5.3-codex" } } },
}
```
### OpenCode Zen
* Provider: `opencode`
* Auth: `OPENCODE_API_KEY` (or `OPENCODE_ZEN_API_KEY`)
* Example model: `opencode/claude-opus-4-6`
* CLI: `openclaw onboard --auth-choice opencode-zen`
```json5 theme={null}
{
agents: { defaults: { model: { primary: "opencode/claude-opus-4-6" } } },
}
```
### Google Gemini (API key)
* Provider: `google`
* Auth: `GEMINI_API_KEY`
* Example model: `google/gemini-3-pro-preview`
* CLI: `openclaw onboard --auth-choice gemini-api-key`
### Google Vertex, Antigravity, and Gemini CLI
* Providers: `google-vertex`, `google-antigravity`, `google-gemini-cli`
* Auth: Vertex uses gcloud ADC; Antigravity/Gemini CLI use their respective auth flows
* Antigravity OAuth is shipped as a bundled plugin (`google-antigravity-auth`, disabled by default).
* Enable: `openclaw plugins enable google-antigravity-auth`
* Login: `openclaw models auth login --provider google-antigravity --set-default`
* Gemini CLI OAuth is shipped as a bundled plugin (`google-gemini-cli-auth`, disabled by default).
* Enable: `openclaw plugins enable google-gemini-cli-auth`
* Login: `openclaw models auth login --provider google-gemini-cli --set-default`
* Note: you do **not** paste a client id or secret into `openclaw.json`. The CLI login flow stores
tokens in auth profiles on the gateway host.
### Z.AI (GLM)
* Provider: `zai`
* Auth: `ZAI_API_KEY`
* Example model: `zai/glm-4.7`
* CLI: `openclaw onboard --auth-choice zai-api-key`
* Aliases: `z.ai/*` and `z-ai/*` normalize to `zai/*`
### Vercel AI Gateway
* Provider: `vercel-ai-gateway`
* Auth: `AI_GATEWAY_API_KEY`
* Example model: `vercel-ai-gateway/anthropic/claude-opus-4.6`
* CLI: `openclaw onboard --auth-choice ai-gateway-api-key`
### Other built-in providers
* OpenRouter: `openrouter` (`OPENROUTER_API_KEY`)
* Example model: `openrouter/anthropic/claude-sonnet-4-5`
* xAI: `xai` (`XAI_API_KEY`)
* Groq: `groq` (`GROQ_API_KEY`)
* Cerebras: `cerebras` (`CEREBRAS_API_KEY`)
* GLM models on Cerebras use ids `zai-glm-4.7` and `zai-glm-4.6`.
* OpenAI-compatible base URL: `https://api.cerebras.ai/v1`.
* Mistral: `mistral` (`MISTRAL_API_KEY`)
* GitHub Copilot: `github-copilot` (`COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN`)
## Providers via `models.providers` (custom/base URL)
Use `models.providers` (or `models.json`) to add **custom** providers or
OpenAI/Anthropiccompatible proxies.
### Moonshot AI (Kimi)
Moonshot uses OpenAI-compatible endpoints, so configure it as a custom provider:
* Provider: `moonshot`
* Auth: `MOONSHOT_API_KEY`
* Example model: `moonshot/kimi-k2.5`
Kimi K2 model IDs:
{/_moonshot-kimi-k2-model-refs:start_/ && null}
* `moonshot/kimi-k2.5`
* `moonshot/kimi-k2-0905-preview`
* `moonshot/kimi-k2-turbo-preview`
* `moonshot/kimi-k2-thinking`
* `moonshot/kimi-k2-thinking-turbo`
{/_moonshot-kimi-k2-model-refs:end_/ && null}
```json5 theme={null}
{
agents: {
defaults: { model: { primary: "moonshot/kimi-k2.5" } },
},
models: {
mode: "merge",
providers: {
moonshot: {
baseUrl: "https://api.moonshot.ai/v1",
apiKey: "${MOONSHOT_API_KEY}",
api: "openai-completions",
models: [{ id: "kimi-k2.5", name: "Kimi K2.5" }],
},
},
},
}
```
### Kimi Coding
Kimi Coding uses Moonshot AI's Anthropic-compatible endpoint:
* Provider: `kimi-coding`
* Auth: `KIMI_API_KEY`
* Example model: `kimi-coding/k2p5`
```json5 theme={null}
{
env: { KIMI_API_KEY: "sk-..." },
agents: {
defaults: { model: { primary: "kimi-coding/k2p5" } },
},
}
```
### Qwen OAuth (free tier)
Qwen provides OAuth access to Qwen Coder + Vision via a device-code flow.
Enable the bundled plugin, then log in:
```bash theme={null}
openclaw plugins enable qwen-portal-auth
openclaw models auth login --provider qwen-portal --set-default
```
Model refs:
* `qwen-portal/coder-model`
* `qwen-portal/vision-model`
See [/providers/qwen](/providers/qwen) for setup details and notes.
### Synthetic
Synthetic provides Anthropic-compatible models behind the `synthetic` provider:
* Provider: `synthetic`
* Auth: `SYNTHETIC_API_KEY`
* Example model: `synthetic/hf:MiniMaxAI/MiniMax-M2.1`
* CLI: `openclaw onboard --auth-choice synthetic-api-key`
```json5 theme={null}
{
agents: {
defaults: { model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.1" } },
},
models: {
mode: "merge",
providers: {
synthetic: {
baseUrl: "https://api.synthetic.new/anthropic",
apiKey: "${SYNTHETIC_API_KEY}",
api: "anthropic-messages",
models: [{ id: "hf:MiniMaxAI/MiniMax-M2.1", name: "MiniMax M2.1" }],
},
},
},
}
```
### MiniMax
MiniMax is configured via `models.providers` because it uses custom endpoints:
* MiniMax (Anthropiccompatible): `--auth-choice minimax-api`
* Auth: `MINIMAX_API_KEY`
See [/providers/minimax](/providers/minimax) for setup details, model options, and config snippets.
### Ollama
Ollama is a local LLM runtime that provides an OpenAI-compatible API:
* Provider: `ollama`
* Auth: None required (local server)
* Example model: `ollama/llama3.3`
* Installation: [https://ollama.ai](https://ollama.ai)
```bash theme={null}
# Install Ollama, then pull a model:
ollama pull llama3.3
```
```json5 theme={null}
{
agents: {
defaults: { model: { primary: "ollama/llama3.3" } },
},
}
```
Ollama is automatically detected when running locally at `http://127.0.0.1:11434/v1`. See [/providers/ollama](/providers/ollama) for model recommendations and custom configuration.
### Local proxies (LM Studio, vLLM, LiteLLM, etc.)
Example (OpenAIcompatible):
```json5 theme={null}
{
agents: {
defaults: {
model: { primary: "lmstudio/minimax-m2.1-gs32" },
models: { "lmstudio/minimax-m2.1-gs32": { alias: "Minimax" } },
},
},
models: {
providers: {
lmstudio: {
baseUrl: "http://localhost:1234/v1",
apiKey: "LMSTUDIO_KEY",
api: "openai-completions",
models: [
{
id: "minimax-m2.1-gs32",
name: "MiniMax M2.1",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 200000,
maxTokens: 8192,
},
],
},
},
},
}
```
Notes:
* For custom providers, `reasoning`, `input`, `cost`, `contextWindow`, and `maxTokens` are optional.
When omitted, OpenClaw defaults to:
* `reasoning: false`
* `input: ["text"]`
* `cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }`
* `contextWindow: 200000`
* `maxTokens: 8192`
* Recommended: set explicit values that match your proxy/model limits.
## CLI examples
```bash theme={null}
openclaw onboard --auth-choice opencode-zen
openclaw models set opencode/claude-opus-4-6
openclaw models list
```
See also: [/gateway/configuration](/gateway/configuration) for full configuration examples.