Fundamentals
OAuth
O OpenClaw oferece suporte a OAuth ("autenticação por assinatura") para provedores que o disponibilizam, principalmente OpenAI Codex (OAuth do ChatGPT) e reutilização da CLI do Anthropic Claude. Para o Anthropic, a divisão prática é:
- Chave de API do Anthropic: cobrança normal da API do Anthropic.
- CLI do Anthropic Claude/autenticação por assinatura no OpenClaw: a equipe do Anthropic
nos informou que esse uso voltou a ser permitido; portanto, o OpenClaw considera a reutilização
da CLI do Claude e o uso de
claude -pautorizados para essa integração, a menos que o Anthropic publique uma nova política. Para usar o Anthropic em produção, a autenticação por chave de API ainda é o caminho recomendado mais seguro.
O OpenClaw armazena tanto a autenticação por chave de API da OpenAI quanto o OAuth do ChatGPT/Codex
sob o ID canônico de provedor openai. IDs de perfil antigos openai-codex:* e entradas
auth.order.openai-codex são estados legados corrigidos por
openclaw doctor --fix; use IDs de perfil openai:* e auth.order.openai em
novas configurações.
Esta página aborda:
- como funciona a troca de tokens OAuth (PKCE)
- onde os tokens são armazenados (e por quê)
- como lidar com várias contas (perfis + substituições por sessão)
Plugins de provedores que fornecem seu próprio fluxo OAuth ou de chave de API usam o mesmo ponto de entrada:
openclaw models auth login --provider <id>O sumidouro de tokens (por que ele existe)
Provedores OAuth normalmente emitem um novo token de atualização a cada login/atualização. Alguns provedores invalidam o token de atualização anterior quando um novo é emitido para o mesmo usuário/aplicativo. Sintoma prático: você entra pelo OpenClaw e pelo Claude Code/Codex CLI, e um deles encerra a sessão aleatoriamente mais tarde.
Para reduzir esse problema, o OpenClaw trata o armazenamento de perfis de autenticação como um sumidouro de tokens:
- o ambiente de execução lê credenciais de um único local por agente
- vários perfis podem coexistir e ser roteados de forma determinística
- a reutilização de CLIs externas é específica do provedor: depois que o OpenClaw passa a controlar um perfil OAuth
local para um provedor, o token de atualização local torna-se canônico. Se esse token
de atualização local for rejeitado, o OpenClaw informa qual perfil precisa de
nova autenticação, em vez de recorrer ao material de token da CLI externa.
A inicialização a partir da Codex CLI é ainda mais restrita: ela só pode preencher um perfil vazio
no estilo
openai:defaultantes que o OpenClaw passe a controlar o OAuth desse provedor; depois disso, as atualizações controladas pelo OpenClaw permanecem canônicas - os caminhos de status/inicialização limitam a descoberta de CLIs externas ao conjunto de provedores já configurados, de modo que o armazenamento de login de uma CLI não relacionada não seja consultado em uma configuração com um único provedor
Armazenamento (onde ficam os tokens)
Os segredos ficam separados por agente, identificados pelo nome lógico auth-profiles.json (o
armazenamento subjacente é o banco de dados SQLite do agente; o nome JSON é mantido por
compatibilidade e para exibição nas ferramentas):
- Perfis de autenticação (OAuth + chaves de API + referências opcionais por valor):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Arquivo legado de compatibilidade:
~/.openclaw/agents/<agentId>/agent/auth.json(entradas estáticasapi_keysão removidas quando detectadas)
Arquivo legado somente para importação (ainda compatível, mas não é o armazenamento principal):
~/.openclaw/credentials/oauth.json(importado para o armazenamento de perfis de autenticação no primeiro uso)
Todos os caminhos acima também respeitam $OPENCLAW_STATE_DIR (substituição do diretório de estado). Referência completa: /gateway/configuration-reference#auth-storage
Para referências estáticas a segredos e o comportamento de ativação de instantâneos no ambiente de execução, consulte Gerenciamento de segredos.
Quando um agente secundário não tem um perfil de autenticação local, o OpenClaw usa herança por leitura do armazenamento do agente padrão/principal; ele não clona o armazenamento do agente principal durante a leitura. Tokens de atualização OAuth são especialmente sensíveis: os fluxos normais de cópia os ignoram por padrão porque alguns provedores alternam ou invalidam tokens de atualização após o uso. Configure um login OAuth separado para um agente quando ele precisar de uma conta independente.
Reutilização da CLI do Anthropic Claude
O OpenClaw oferece suporte à reutilização da CLI do Anthropic Claude e a claude -p como um caminho
de autenticação autorizado. Se você já tiver um login local do Claude no host,
a integração/configuração poderá reutilizá-lo diretamente. O token de configuração do Anthropic continua
disponível como um caminho compatível de autenticação por token, mas o OpenClaw prefere a reutilização da CLI
do Claude quando ela está disponível.
Troca OAuth (como funciona o login)
Os fluxos interativos de login do OpenClaw são implementados em openclaw/plugin-sdk/llm.ts e conectados aos assistentes/comandos.
Token de configuração do Anthropic
Formato do fluxo:
- inicie o token de configuração ou cole o token do Anthropic pelo OpenClaw
- o OpenClaw armazena a credencial resultante do Anthropic em um perfil de autenticação
- a seleção de modelo permanece em
anthropic/... - os perfis existentes de autenticação do Anthropic continuam disponíveis para reversão/controle de ordem
OpenAI Codex (OAuth do ChatGPT)
O OAuth do OpenAI Codex é explicitamente compatível com o uso fora da Codex CLI, inclusive em fluxos de trabalho do OpenClaw.
O comando de login usa o ID canônico do provedor OpenAI:
openclaw models auth login --provider openaiUse --profile-id openai:<name> para várias contas OAuth do ChatGPT/Codex em
um único agente. Não use openai-codex:<name> para novos perfis. O Doctor migra
esse prefixo antigo para um ID de perfil openai:* sem colisões; execute
openclaw models auth list --provider openai após a correção antes de copiar
IDs de perfil para auth.order ou /model ...@<profileId>.
Formato do fluxo (PKCE):
- gere um verificador/desafio PKCE e um
statealeatório - abra
https://auth.openai.com/oauth/authorize?...(escopoopenid profile email offline_access) - tente capturar o retorno em
http://localhost:1455/auth/callback(o host de retorno usalocalhostpor padrão e aceita apenas hosts local loopback; substitua-o comOPENCLAW_OAUTH_CALLBACK_HOST) - se puder colar um código antes da chegada do retorno (ou se estiver em um ambiente remoto/sem interface gráfica e não for possível vincular o retorno), cole a URL/o código de redirecionamento — a colagem manual disputa com o retorno do navegador, e vence o que for concluído primeiro
- troque o código em
https://auth.openai.com/oauth/token - extraia
accountIddo token de acesso e armazene{ access, refresh, expires, accountId }
O caminho pelo assistente é openclaw onboard → opção de autenticação openai.
Atualização + expiração
Os perfis armazenam um carimbo de data e hora expires. No ambiente de execução:
- se
expiresestiver no futuro, use o token de acesso armazenado - se estiver expirado, atualize-o (sob bloqueio de arquivo) e sobrescreva as credenciais armazenadas
- se um agente secundário ler um perfil OAuth herdado do agente principal, a atualização será gravada de volta no armazenamento do agente principal, em vez de copiar o token de atualização para o armazenamento do agente secundário
- credenciais de CLI gerenciadas externamente (CLI do Claude, inicialização restrita pela Codex CLI; consulte O sumidouro de tokens) são relidas em vez de consumir um token de atualização copiado. Se uma atualização gerenciada falhar, o OpenClaw informa o perfil afetado para nova autenticação, em vez de retornar material de token da CLI externa.
O fluxo de atualização é automático; em geral, você não precisa gerenciar os tokens manualmente.
Várias contas (perfis) + roteamento
Dois padrões:
1) Preferencial: agentes separados
Se quiser que as contas "pessoal" e "trabalho" nunca interajam, use agentes isolados (sessões + credenciais + espaço de trabalho separados):
openclaw agents add workopenclaw agents add personalEm seguida, configure a autenticação por agente (assistente) e encaminhe as conversas para o agente correto.
2) Avançado: vários perfis em um agente
O armazenamento de perfis de autenticação aceita vários IDs de perfil para o mesmo provedor. Escolha qual será usado:
- globalmente, pela ordem da configuração (
auth.order) - por sessão, por meio de
/model ...@<profileId>
Exemplo (substituição da sessão):
/model Opus@anthropic:work
Liste os IDs de perfil existentes com:
openclaw models auth list --provider <id>Documentação relacionada:
- Failover de modelos (regras de rotação + período de espera)
- Comandos de barra (interface de comandos)
Relacionado
- Autenticação - visão geral da autenticação dos provedores de modelos
- Segredos - armazenamento de credenciais e SecretRef
- Referência de configuração - chaves de configuração de autenticação