OAuth¶
OpenClaw поддерживает «subscription auth» через OAuth для провайдеров, которые его предлагают (в частности, OpenAI Codex (ChatGPT OAuth)). Для подписок Anthropic используйте поток setup-token. На этой странице объясняется:
- как работает обмен токенов OAuth (PKCE)
- где хранятся токены (и почему)
- как обрабатывать несколько аккаунтов (профили + переопределения на сеанс)
OpenClaw также поддерживает плагины провайдеров, которые поставляются с собственными потоками OAuth или API‑ключей. Запускайте их через:
openclaw models auth login --provider <id>
Снимок токена (зачем он существует)¶
OAuth‑провайдеры обычно выпускают новый refresh‑токен во время входа или обновления. Некоторые провайдеры (или OAuth‑клиенты) могут инвалидировать более старые refresh‑токены, когда для того же пользователя/приложения выпускается новый.
Практический симптом:
- вы входите через OpenClaw и через Claude Code / Codex CLI → один из них позже «случайно» оказывается разлогинен
Чтобы уменьшить это, OpenClaw рассматривает 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:
openclaw models auth setup-token --provider anthropic
Если вы сгенерировали токен в другом месте, вставьте его вручную:
openclaw models auth paste-token --provider anthropic
Проверка:
openclaw models status
Обмен 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. Предпочтительно: отдельные агенты¶
Если вы хотите, чтобы «личное» и «рабочее» никогда не пересекались, используйте изолированные агенты (отдельные сеансы + учётные данные + рабочее пространство):
openclaw agents add work
openclaw agents add personal
Затем настройте аутентификацию для каждого агента (через мастер) и направляйте чаты к нужному агенту.
2. Продвинуто: несколько профилей в одном агенте¶
auth-profiles.json поддерживает несколько идентификаторов профилей для одного и того же провайдера.
Выбор используемого профиля:
- глобально через порядок в конфиге (
auth.order) - для конкретного сеанса через
/model ...@<profileId>
Пример (переопределение на сеанс):
/model Opus@anthropic:work
Как посмотреть, какие идентификаторы профилей существуют:
openclaw channels list --json(показываетauth[])
Связанная документация:
- /concepts/model-failover (ротация + правила cooldown)
- /tools/slash-commands (поверхность команд)