OAuth
OpenClaw admite “autenticación por suscripción” mediante OAuth para los proveedores que la ofrecen (en particular, OpenAI Codex (ChatGPT OAuth)). Para Anthropic, la división práctica ahora es:- Clave de API de Anthropic: facturación normal de la API de Anthropic
- Autenticación por suscripción / Claude CLI de Anthropic dentro de OpenClaw: el personal de Anthropic nos dijo que este uso vuelve a estar permitido
- cómo funciona el intercambio de tokens de OAuth (PKCE)
- dónde se almacenan los tokens (y por qué)
- cómo manejar múltiples cuentas (perfiles + reemplazos por sesión)
El sumidero de tokens (por qué existe)
Los proveedores OAuth suelen emitir un nuevo token de actualización durante los flujos de inicio de sesión o actualización. Algunos proveedores (o clientes OAuth) pueden invalidar tokens de actualización anteriores cuando se emite uno nuevo para el mismo usuario/aplicación. Síntoma práctico:- inicias sesión mediante OpenClaw y mediante Claude Code / Codex CLI → uno de ellos aleatoriamente queda “desconectado” más tarde
auth-profiles.json como un sumidero de tokens:
- el runtime lee las credenciales desde un solo lugar
- podemos mantener varios perfiles y enrutar entre ellos de forma determinista
- cuando las credenciales se reutilizan desde una CLI externa como Codex CLI, OpenClaw las refleja con procedencia y vuelve a leer esa fuente externa en lugar de rotar el token de actualización por sí mismo
Almacenamiento (dónde viven los tokens)
Los secretos se almacenan por agente:- Perfiles de autenticación (OAuth + claves de API + referencias opcionales a nivel de valor):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Archivo de compatibilidad heredado:
~/.openclaw/agents/<agentId>/agent/auth.json(las entradas estáticasapi_keyse depuran cuando se detectan)
~/.openclaw/credentials/oauth.json(se importa aauth-profiles.jsonen el primer uso)
$OPENCLAW_STATE_DIR (reemplazo del directorio de estado). Referencia completa: /gateway/configuration
Para referencias estáticas a secretos y el comportamiento de activación de instantáneas del runtime, consulta Gestión de secretos.
Compatibilidad heredada de tokens de Anthropic
OpenClaw también expone setup-token de Anthropic como una ruta compatible de autenticación por token, pero ahora prefiere la reutilización de Claude CLI yclaude -p cuando están disponibles.
Migración de Anthropic Claude CLI
OpenClaw vuelve a admitir la reutilización de Anthropic Claude CLI. Si ya tienes un inicio de sesión local de Claude en el host, onboarding/configure puede reutilizarlo directamente.Intercambio OAuth (cómo funciona el inicio de sesión)
Los flujos de inicio de sesión interactivo de OpenClaw se implementan en@mariozechner/pi-ai y se conectan a los asistentes/comandos.
Setup-token de Anthropic
Forma del flujo:- inicia setup-token de Anthropic o pega el token desde OpenClaw
- OpenClaw almacena la credencial de Anthropic resultante en un perfil de autenticación
- la selección del modelo permanece en
anthropic/... - los perfiles de autenticación existentes de Anthropic siguen disponibles para control de reversión/orden
OpenAI Codex (ChatGPT OAuth)
OpenAI Codex OAuth es compatible explícitamente para su uso fuera de Codex CLI, incluidos los flujos de trabajo de OpenClaw. Forma del flujo (PKCE):- genera un verificador/desafío PKCE +
statealeatorio - abre
https://auth.openai.com/oauth/authorize?... - intenta capturar la devolución de llamada en
http://127.0.0.1:1455/auth/callback - si la devolución de llamada no puede vincularse (o estás en remoto/sin interfaz), pega la URL/código de redirección
- intercambia en
https://auth.openai.com/oauth/token - extrae
accountIddel token de acceso y almacena{ access, refresh, expires, accountId }
openclaw onboard → opción de autenticación openai-codex.
Actualización + vencimiento
Los perfiles almacenan una marca de tiempoexpires.
En tiempo de ejecución:
- si
expiresestá en el futuro → usa el token de acceso almacenado - si ha vencido → actualiza (bajo un bloqueo de archivo) y sobrescribe las credenciales almacenadas
- excepción: las credenciales reutilizadas de una CLI externa siguen gestionadas externamente; OpenClaw vuelve a leer el almacén de autenticación de la CLI y nunca consume por sí mismo el token de actualización copiado
Múltiples cuentas (perfiles) + enrutamiento
Dos patrones:1) Preferido: agentes separados
Si quieres que “personal” y “trabajo” nunca interactúen, usa agentes aislados (sesiones + credenciales + espacio de trabajo separados):2) Avanzado: varios perfiles en un agente
auth-profiles.json admite varios ID de perfil para el mismo proveedor.
Elige qué perfil se usa:
- globalmente mediante el orden de configuración (
auth.order) - por sesión mediante
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(muestraauth[])
- /concepts/model-failover (reglas de rotación + enfriamiento)
- /tools/slash-commands (superficie de comandos)
Relacionado
- Autenticación — resumen de autenticación de proveedores de modelos
- Secretos — almacenamiento de credenciales y SecretRef
- Referencia de configuración — claves de configuración de autenticación