Concepts and configuration
CLI de modelos
Rotação de perfis de autenticação, cooldowns e como isso interage com fallbacks.
Visão geral rápida de provedores e exemplos.
OpenClaw, Codex e outros runtimes de loop de agente.
Chaves de configuração de modelo.
Refs de modelo escolhem um provedor e um modelo. Normalmente, elas não escolhem o runtime de agente de baixo nível. As refs de agente OpenAI são a principal exceção: openai/gpt-5.5 é executado pelo runtime do app-server Codex por padrão no provedor OpenAI oficial. Refs de assinatura Copilot (github-copilot/*) também podem ser habilitadas para o plugin externo de runtime de agente GitHub Copilot — esse caminho permanece explícito (sem fallback auto). Sobrescritas explícitas de runtime pertencem à política de provedor/modelo, não ao agente ou à sessão inteira. No modo de runtime Codex, a ref openai/gpt-* não implica cobrança por chave de API; a autenticação pode vir de uma conta Codex ou de um perfil OAuth openai. Consulte Runtimes de agente e Runtime de agente GitHub Copilot.
Como a seleção de modelo funciona
OpenClaw seleciona modelos nesta ordem:
Modelo principal
agents.defaults.model.primary (ou agents.defaults.model).
Fallbacks
agents.defaults.model.fallbacks (na ordem).
Failover de autenticação do provedor
O failover de autenticação acontece dentro de um provedor antes de avançar para o próximo modelo.
Superfícies de modelo relacionadas
agents.defaults.modelsé a allowlist/catálogo de modelos que o OpenClaw pode usar (mais aliases). Use entradasprovider/*para limitar provedores visíveis mantendo a descoberta de provedores dinâmica.agents.defaults.imageModelé usado somente quando o modelo principal não consegue aceitar imagens.agents.defaults.pdfModelé usado pela ferramentapdf. Se omitido, a ferramenta recorre aagents.defaults.imageModele depois ao modelo resolvido da sessão/padrão.agents.defaults.imageGenerationModelé usado pelo recurso compartilhado de geração de imagens. Se omitido,image_generateainda pode inferir um padrão de provedor com autenticação. Ele tenta primeiro o provedor padrão atual e depois os demais provedores registrados de geração de imagens em ordem de ID de provedor. Se você definir um provedor/modelo específico, configure também a autenticação/chave de API desse provedor.agents.defaults.musicGenerationModelé usado pelo recurso compartilhado de geração de música. Se omitido,music_generateainda pode inferir um padrão de provedor com autenticação. Ele tenta primeiro o provedor padrão atual e depois os demais provedores registrados de geração de música em ordem de ID de provedor. Se você definir um provedor/modelo específico, configure também a autenticação/chave de API desse provedor.agents.defaults.videoGenerationModelé usado pelo recurso compartilhado de geração de vídeo. Se omitido,video_generateainda pode inferir um padrão de provedor com autenticação. Ele tenta primeiro o provedor padrão atual e depois os demais provedores registrados de geração de vídeo em ordem de ID de provedor. Se você definir um provedor/modelo específico, configure também a autenticação/chave de API desse provedor.- Padrões por agente podem sobrescrever
agents.defaults.modelviaagents.list[].modelmais vinculações (consulte Roteamento multiagente).
Origem da seleção e comportamento de fallback
O mesmo provider/model pode significar coisas diferentes dependendo de onde veio:
- Padrões configurados (
agents.defaults.model.primarye principais específicos de agente) são o ponto de partida normal e usamagents.defaults.model.fallbacks. - Seleções de fallback automático são estado de recuperação temporário. Elas são armazenadas com
modelOverrideSource: "auto"para que turnos posteriores possam continuar usando a cadeia de fallback sem sondar um primário conhecido como problemático todas as vezes; o OpenClaw sonda periodicamente o primário original novamente, limpa a seleção automática quando ele se recupera e anuncia transições de fallback/recuperação uma vez por mudança de estado. - Seleções de sessão do usuário são exatas.
/model, o seletor de modelo,session_status(model=...)esessions.patcharmazenammodelOverrideSource: "user"; se esse provedor/modelo selecionado estiver inacessível, o OpenClaw falha de forma visível em vez de cair para outro modelo configurado. - Alterar
agents.defaults.model.primarynão reescreve seleções de sessão existentes. Se o status disserThis session is pinned to X; config primary Y will apply to new/unpinned sessions., limpe a seleção da sessão atual com/model defaultpara que ela herde novamente o primário configurado. - Cron
--model/ payloadmodelé um primário por tarefa. Ele ainda usa fallbacks configurados, a menos que a tarefa forneçafallbacksexplícitos no payload (usefallbacks: []para uma execução cron estrita). - O modelo padrão da CLI e os seletores de allowlist respeitam
models.mode: "replace"listandomodels.providers.*.modelsexplícitos em vez de carregar o catálogo integrado completo. - O seletor de modelo da Control UI pede ao Gateway a visualização de modelo configurada:
agents.defaults.modelsquando presente, incluindo entradasprovider/*para o provedor inteiro; caso contrário,models.providers.*.modelsexplícitos mais provedores com autenticação utilizável. O catálogo integrado completo é reservado para visualizações explícitas de navegação, comomodels.listcomview: "all"ouopenclaw models list --all.
Política rápida de modelo
- Defina seu primário como o modelo de geração mais recente e mais forte disponível para você.
- Use fallbacks para tarefas sensíveis a custo/latência e conversas de menor risco.
- Para agentes com ferramentas habilitadas ou entradas não confiáveis, evite camadas de modelos mais antigas/fracas.
Onboarding (recomendado)
Se você não quiser editar a configuração manualmente, execute o onboarding:
openclaw onboardEle pode configurar modelo + autenticação para provedores comuns, incluindo OpenAI Code (Codex) subscription (OAuth) e Anthropic (chave de API ou Claude CLI).
Chaves de configuração (visão geral)
agents.defaults.model.primaryeagents.defaults.model.fallbacksagents.defaults.imageModel.primaryeagents.defaults.imageModel.fallbacksagents.defaults.pdfModel.primaryeagents.defaults.pdfModel.fallbacksagents.defaults.imageGenerationModel.primaryeagents.defaults.imageGenerationModel.fallbacksagents.defaults.videoGenerationModel.primaryeagents.defaults.videoGenerationModel.fallbacksagents.defaults.models(allowlist + aliases + parâmetros de provedor + entradas dinâmicas de provedorprovider/*)models.providers(provedores personalizados gravados emmodels.json)
Edições seguras da allowlist
Use gravações aditivas ao atualizar agents.defaults.models manualmente:
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeRegras de proteção contra sobrescrita
openclaw config set protege mapas de modelo/provedor contra sobrescritas acidentais. Uma atribuição de objeto simples a agents.defaults.models, models.providers ou models.providers.<id>.models é rejeitada quando removeria entradas existentes. Use --merge para alterações aditivas; use --replace somente quando o valor fornecido deve se tornar o valor-alvo completo.
A configuração interativa de provedor e openclaw configure --section model também mesclam seleções com escopo de provedor na allowlist existente, de modo que adicionar Codex, Ollama ou outro provedor não remova entradas de modelo não relacionadas. Configure preserva um agents.defaults.model.primary existente quando a autenticação do provedor é reaplicada. Comandos explícitos de definição de padrão, como openclaw models auth login --provider <id> --set-default e openclaw models set <model>, ainda substituem agents.defaults.model.primary.
"Modelo não é permitido" (e por que as respostas param)
Se agents.defaults.models estiver definido, ele se torna a allowlist para /model e para sobrescritas de sessão. Quando um usuário seleciona um modelo que não está nessa allowlist, o OpenClaw retorna:
Model "provider/model" is not allowed. Use /models to list providers, or /models <provider> to list models.Add it with: openclaw config set agents.defaults.models '{"provider/model":{}}' --strict-json --mergeQuando o comando rejeitado incluiu uma sobrescrita de runtime, como /model openai/gpt-5.5 --runtime codex, corrija a allowlist primeiro e depois tente novamente o mesmo comando /model ... --runtime .... Para execução nativa do Codex, o modelo selecionado ainda é openai/gpt-5.5; o runtime codex seleciona o harness e usa autenticação Codex separadamente.
Para modelos locais/GGUF, armazene a ref completa com prefixo de provedor na allowlist,
por exemplo ollama/gemma4:26b, lmstudio/Gemma4-26b-a4-it-gguf ou o
provider/model exato mostrado por openclaw models list --provider <provider>.
Nomes de arquivos locais simples ou nomes de exibição não são suficientes quando a allowlist está
ativa.
Se você quiser limitar provedores sem listar manualmente todos os modelos, adicione
entradas provider/* a agents.defaults.models:
{ agents: { defaults: { models: { "openai/*": {}, "vllm/*": {}, }, }, },}Com essa política, /model, /models e seletores de modelo mostram o catálogo
descoberto apenas para esses provedores. Novos modelos dos provedores selecionados podem
aparecer sem editar a allowlist. Entradas exatas provider/model podem ser combinadas
com entradas provider/* quando você precisar de um modelo específico de outro provedor.
Exemplo de configuração de allowlist:
{ agents: { defaults: { model: { primary: "anthropic/claude-sonnet-4-6" }, models: { "anthropic/claude-sonnet-4-6": { alias: "Sonnet" }, "anthropic/claude-opus-4-6": { alias: "Opus" }, }, }, },}Alternar modelos no chat (/model)
Você pode alternar modelos para a sessão atual sem reiniciar:
/model/model list/model 3/model openai/gpt-5.4/model default/model statusComportamento do seletor
/model(e/model list) é um seletor compacto e numerado (família de modelo + provedores disponíveis).- No Discord,
/modele/modelsabrem um seletor interativo com menus suspensos de provedor e modelo, além de uma etapa Enviar. - No Telegram, seleções do seletor
/modelstêm escopo de sessão; elas não alteram o padrão persistente do agente emopenclaw.json. /models addestá obsoleto e agora retorna uma mensagem de obsolescência em vez de registrar modelos pelo chat./model <#>seleciona a partir desse seletor.
Persistência e troca ao vivo
/modelpersiste a nova seleção da sessão imediatamente.- Se o agente estiver ocioso, a próxima execução usa o novo modelo imediatamente.
- Se uma execução já estiver ativa, o OpenClaw marca uma troca ao vivo como pendente e só reinicia no novo modelo em um ponto limpo de nova tentativa.
- Se a atividade de ferramentas ou a saída de resposta já tiver começado, a troca pendente pode permanecer enfileirada até uma oportunidade posterior de nova tentativa ou o próximo turno do usuário.
/model defaultlimpa a seleção da sessão e retorna a sessão ao modelo padrão configurado.- Uma referência de
/modelselecionada pelo usuário é estrita para essa sessão: se o provedor/modelo selecionado estiver inacessível, a resposta falha de forma visível em vez de responder silenciosamente a partir deagents.defaults.model.fallbacks. Isso é diferente dos padrões configurados e dos primários de tarefas cron, que ainda podem usar cadeias de fallback. /model statusé a visualização detalhada (candidatos de autenticação e, quando configurado, endpointbaseUrldo provedor + modoapi).
Análise de refs
- Referências de modelo são analisadas dividindo na primeira
/. Useprovider/modelao digitar/model <ref>. - Se o próprio ID do modelo contiver
/(estilo OpenRouter), você deve incluir o prefixo do provedor (exemplo:/model openrouter/moonshotai/kimi-k2). - Se você omitir o provedor, o OpenClaw resolve a entrada nesta ordem:
- correspondência de alias
- correspondência única de provedor configurado para esse ID de modelo exato sem prefixo
- fallback obsoleto para o provedor padrão configurado — se esse provedor não expuser mais o modelo padrão configurado, o OpenClaw passa a usar o primeiro provedor/modelo configurado para evitar expor um padrão obsoleto de provedor removido.
Comportamento/configuração completos do comando: Comandos de barra.
Comandos da CLI
openclaw models listopenclaw models statusopenclaw models set <provider/model>openclaw models set-image <provider/model> openclaw models aliases listopenclaw models aliases add <alias> <provider/model>openclaw models aliases remove <alias> openclaw models fallbacks listopenclaw models fallbacks add <provider/model>openclaw models fallbacks remove <provider/model>openclaw models fallbacks clear openclaw models image-fallbacks listopenclaw models image-fallbacks add <provider/model>openclaw models image-fallbacks remove <provider/model>openclaw models image-fallbacks clearopenclaw models (sem subcomando) é um atalho para models status.
models list
Mostra modelos configurados/disponíveis por autenticação por padrão. Flags úteis:
--allbooleanCatálogo completo. Inclui linhas de catálogo estático de propriedade de provedores integrados antes que a autenticação seja configurada, para que visualizações apenas de descoberta possam mostrar modelos indisponíveis até você adicionar as credenciais correspondentes do provedor.
--localbooleanSomente provedores locais.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcHJvdmlkZXIgPGlk
" type="string">
Filtre por ID do provedor, por exemplo moonshot. Rótulos de exibição de seletores interativos não são aceitos.
--plainbooleanUm modelo por linha.
--jsonbooleanSaída legível por máquina.
models status
Mostra o modelo primário resolvido, fallbacks, modelo de imagem e uma visão geral de autenticação dos provedores configurados. Também expõe o status de expiração OAuth para perfis encontrados no armazenamento de autenticação (avisa com 24h de antecedência por padrão). --plain imprime somente o modelo primário resolvido.
Comportamento de autenticação e sondagem
- O status OAuth é sempre mostrado (e incluído na saída
--json). Se um provedor configurado não tiver credenciais,models statusimprime uma seção Autenticação ausente. - JSON inclui
auth.oauth(janela de aviso + perfis) eauth.providers(autenticação efetiva por provedor, incluindo credenciais baseadas em env).auth.oauthé apenas a integridade de perfis do armazenamento de autenticação; provedores somente por env não aparecem ali. - Use
--checkpara automação (saída1quando ausente/expirado,2quando prestes a expirar). - Use
--probepara verificações de autenticação ao vivo; linhas de sondagem podem vir de perfis de autenticação, credenciais env oumodels.json. - Se
auth.order.<provider>explícito omitir um perfil armazenado, a sondagem relataexcluded_by_auth_orderem vez de tentar usá-lo. Se houver autenticação, mas nenhum modelo sondável puder ser resolvido para esse provedor, a sondagem relatastatus: no_model.
Exemplo (Claude CLI):
claude auth loginopenclaw models statusVarredura (modelos gratuitos do OpenRouter)
openclaw models scan inspeciona o catálogo de modelos gratuitos do OpenRouter e pode, opcionalmente, sondar modelos para suporte a ferramentas e imagens.
--no-probebooleanPule sondagens ao vivo (somente metadados).
"--min-params"--max-age-days"--provider"--max-candidates--set-defaultbooleanDefina agents.defaults.model.primary como a primeira seleção.
--set-imagebooleanDefina agents.defaults.imageModel.primary como a primeira seleção de imagem.
Os resultados da varredura são classificados por:
- Suporte a imagens
- Latência de ferramentas
- Tamanho do contexto
- Contagem de parâmetros
Entrada:
- Lista
/modelsdo OpenRouter (filtro:free) - Sondagens ao vivo exigem uma chave de API do OpenRouter de perfis de autenticação ou
OPENROUTER_API_KEY(consulte Variáveis de ambiente) - Filtros opcionais:
--max-age-days,--min-params,--provider,--max-candidates - Controles de solicitação/sondagem:
--timeout,--concurrency
Quando sondagens ao vivo são executadas em um TUI, você pode selecionar fallbacks interativamente. No modo não interativo, passe --yes para aceitar os padrões. Resultados somente de metadados são informativos; --set-default e --set-image exigem sondagens ao vivo para que o OpenClaw não configure um modelo OpenRouter sem chave inutilizável.
Registro de modelos (models.json)
Provedores personalizados em models.providers são gravados em models.json no diretório do agente (padrão ~/.openclaw/agents/<agentId>/agent/models.json). Catálogos de Plugins de provedores são armazenados como shards de catálogo gerados e pertencentes ao Plugin no estado de Plugin do agente e carregados automaticamente. Esse arquivo é mesclado por padrão, a menos que models.mode seja definido como replace.
Precedência do modo de mesclagem
Precedência do modo de mesclagem para IDs de provedor correspondentes:
baseUrlnão vazio já presente nomodels.jsondo agente vence.apiKeynão vazio nomodels.jsondo agente vence somente quando esse provedor não é gerenciado por SecretRef no contexto atual de configuração/perfil de autenticação.- Valores
apiKeyde provedor gerenciado por SecretRef são atualizados a partir de marcadores de origem (ENV_VAR_NAMEpara refs de env,secretref-managedpara refs de arquivo/exec) em vez de persistir segredos resolvidos. - Valores de cabeçalho de provedor gerenciado por SecretRef são atualizados a partir de marcadores de origem (
secretref-env:ENV_VAR_NAMEpara refs de env,secretref-managedpara refs de arquivo/exec). apiKey/baseUrlvazios ou ausentes do agente recorrem amodels.providersda configuração.- Outros campos de provedor são atualizados a partir da configuração e de dados de catálogo normalizados.
Relacionados
- Runtimes de agente — OpenClaw, Codex e outros runtimes de loop de agente
- Referência de configuração — chaves de configuração de modelo
- Geração de imagens — configuração de modelo de imagem
- Failover de modelo — cadeias de fallback
- Provedores de modelo — roteamento e autenticação de provedores
- Geração de música — configuração de modelo de música
- Geração de vídeo — configuração de modelo de vídeo