Перейти к основному содержанию

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) — токен настройки

Форма потока:
  1. запустите claude setup-token
  2. вставьте токен в OpenClaw
  3. сохраните как профиль аутентификации по токену (без обновления)
Путь в мастере: openclaw onboard → выбор аутентификации setup-token (Anthropic).

OpenAI Codex (ChatGPT OAuth)

Форма потока (PKCE):
  1. сгенерировать PKCE verifier/challenge + случайный state
  2. открыть https://auth.openai.com/oauth/authorize?...
  3. попытаться перехватить callback на http://127.0.0.1:1455/auth/callback
  4. если callback не может быть привязан (или вы работаете удалённо/без интерфейса), вставить URL перенаправления/код
  5. выполнить обмен на https://auth.openai.com/oauth/token
  6. извлечь 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[])
Связанная документация: