Skip to content

Configuring LLM Providers

Overview

A provider is a connection to an LLM backend. GoClaw abstracts all providers behind a common interface so the agent loop works the same regardless of backend. API keys are encrypted with AES-256-GCM before storage.

List route: /providersDetail route: /providers/:idAccess: Admin


Guide

Adding a New Provider

  1. Go to Settings > Providers > Add Provider
  2. Fill in the fields:
FieldDescription
Display NameName shown in the UI
Provider NameUnique slug (e.g. my-openrouter)
Provider Typeopenai_compat, anthropic, claude_cli, acp, chatgpt_oauth
API KeyEncrypted with AES-256-GCM on save
API Base URLOnly needed when using OpenAI-compat with a custom endpoint
EnabledWhen disabled, agents cannot use this provider
  1. Click Create | Cancel

Testing the Connection

In the agent create/edit dialog, click Check:

  • Green: model is valid, connection successful
  • Red: authentication error or model does not exist

Selecting a Model for an Agent

After selecting a provider, the model dropdown loads a list from GET /v1/providers/{id}/models. You can select from the list or type a name manually (Combobox). If the provider does not return a list, type the name and use Check to verify.

Editing and Deleting a Provider

Edit: Go to /providers/:id — you can modify Display Name, API Key, API Base URL, Enabled/Disabled, and Advanced Settings.

Note: Changing the name (name) breaks the connection for all agents currently using that provider. Update agents before renaming.

Delete: Click the delete icon, re-type the provider name to confirm. Agents will fall back to the first provider in the registry.


User Interface (UI)

List Page (/providers)

Display: Paginated list with search. Shows pool hierarchy diagram for ChatGPT OAuth and OAuth quota limits.

Actions: Add Provider | Delete Provider | View Details | Search | Refresh

Add Provider Dialog:

  • Fields: Type (anthropic_native, openai_compat, gemini_native, claude_cli, dashscope, openrouter, groq, deepseek, ollama, acp, ...), Name, API Key, API Base, OAuth fields
  • Actions: Create | Cancel

Detail Page (/providers/:id)

Display: Configuration fields, API key (hidden), model settings, embedding and inference configuration.

Actions: Edit configuration | Verify API key | Verify embedding model | Browse available models | OAuth sign-in | Manage Codex Pool | Delete provider

Advanced Settings Dialog:

  • Fields by type: API Base URL, binary path/args/TTL/perm-mode/work-dir (ACP), CLI configuration, OAuth configuration
  • Actions: Save | Cancel

Supported Providers

Core Providers

NameTypeDescription
anthropicNative HTTP+SSEClaude models via api.anthropic.com
claude_clistdio subprocessLocal claude binary
codexOAuth Responses APIChatGPT via chatgpt.com
acpJSON-RPC 2.0Claude Code / Codex / Gemini CLI as sub-agent
dashscopeOpenAI-compatAlibaba Qwen3 models

OpenAI-Compatible Providers

NameAPI Base
openaiapi.openai.com/v1
openrouteropenrouter.ai/api/v1
groqapi.groq.com/openai/v1
deepseekapi.deepseek.com/v1
geminigenerativelanguage.googleapis.com/v1beta/openai
mistralapi.mistral.ai/v1
xaiapi.x.ai/v1
minimaxapi.minimax.io/v1
ollamalocalhost:11434/v1

Extended Thinking

Allows the LLM to generate internal "reasoning tokens" before responding — improves quality for complex tasks but consumes additional tokens.

LevelDescription
offThinking disabled (default)
lowLight thinking, fast
mediumBalance between speed and quality
highDeepest thinking

Support: Anthropic (4K/10K/32K budget), OpenAI-compat GPT-5/Codex, DashScope Qwen3. Ollama/Groq/DeepSeek: not supported.

Configuration: Agent Config tab > Thinking section > Inherit or Custom. Expert Mode allows selecting reasoning_effort in more detail.


Provider Pool (Multiple Accounts of the Same Type)

For chatgpt_oauth: combine multiple accounts into a pool for load balancing.

StrategyDescription
primary_firstUse the primary account first, fall back on error
round_robinRotate evenly across all accounts
priority_orderDrain secondary accounts in order

Notes

  • A provider from the config file is overridden by a provider with the same name in the database
  • Fallback: if a provider is not found, the first provider in the registry is used
  • Deleting a provider does not delete agents

See Also