OAuth
OpenClaw поддерживает «subscription auth» через OAuth для провайдеров, которые его предлагают (в частности, OpenAI Codex (ChatGPT OAuth)). Для подписок Anthropic используйте поток setup-token. На этой странице объясняется:- как работает обмен токенов OAuth (PKCE)
- где хранятся токены (и почему)
- как обрабатывать несколько аккаунтов (профили + переопределения на сеанс)
Снимок токена (зачем он существует)
OAuth‑провайдеры обычно выпускают новый refresh‑токен во время входа или обновления. Некоторые провайдеры (или OAuth‑клиенты) могут инвалидировать более старые refresh‑токены, когда для того же пользователя/приложения выпускается новый. Практический симптом:- вы входите через OpenClaw и через Claude Code / Codex CLI → один из них позже «случайно» оказывается разлогинен
auth-profiles.json как приёмник токенов:
- среда выполнения читает учётные данные из одного места
- можно хранить несколько профилей и маршрутизировать их детерминированно
Хранение (где живут токены)
Секреты хранятся для каждого агента:- Профили аутентификации (OAuth + API‑ключи):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Кэш среды выполнения (управляется автоматически; не редактируйте):
~/.openclaw/agents/<agentId>/agent/auth.json
~/.openclaw/credentials/oauth.json(импортируется вauth-profiles.jsonпри первом использовании)
$OPENCLAW_STATE_DIR (переопределение каталога состояния). Полная справка: /gateway/configuration
Anthropic — токен настройки (аутентификация по подписке)
Запуститеclaude setup-token на любой машине, затем вставьте его в OpenClaw:
Обмен OAuth (как работает вход)
Интерактивные потоки входа OpenClaw реализованы в@mariozechner/pi-ai и подключены к мастерам/командам.
Anthropic (Claude Pro/Max) — токен настройки
Форма потока:- запустите
claude setup-token - вставьте токен в OpenClaw
- сохраните как профиль аутентификации по токену (без обновления)
openclaw onboard → выбор аутентификации setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)
Форма потока (PKCE):- сгенерировать PKCE verifier/challenge + случайный
state - открыть
https://auth.openai.com/oauth/authorize?... - попытаться перехватить callback на
http://127.0.0.1:1455/auth/callback - если callback не может быть привязан (или вы работаете удалённо/без интерфейса), вставить URL перенаправления/код
- выполнить обмен на
https://auth.openai.com/oauth/token - извлечь
accountIdиз access‑токена и сохранить{ access, refresh, expires, accountId }
openclaw onboard → выбор аутентификации openai-codex.
Обновление + истечение срока действия
Профили хранят временную меткуexpires.
Во время выполнения:
- если
expiresнаходится в будущем → используется сохранённый access‑токен - если срок истёк → выполняется обновление (под файловой блокировкой) и сохранённые учётные данные перезаписываются
Несколько аккаунтов (профили) + маршрутизация
Два шаблона:1. Предпочтительно: отдельные агенты
Если вы хотите, чтобы «личное» и «рабочее» никогда не пересекались, используйте изолированные агенты (отдельные сеансы + учётные данные + рабочее пространство):2. Продвинуто: несколько профилей в одном агенте
auth-profiles.json поддерживает несколько идентификаторов профилей для одного и того же провайдера.
Выбор используемого профиля:
- глобально через порядок в конфиге (
auth.order) - для конкретного сеанса через
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(показываетauth[])
- /concepts/model-failover (ротация + правила cooldown)
- /tools/slash-commands (поверхность команд)