OAuth
OpenClaw поддерживает "subscription auth" через OAuth для провайдеров, которые его предлагают (в частности, OpenAI Codex (ChatGPT OAuth)). Для подписок Anthropic используйте поток setup-token. Эта страница объясняет:
- как работает обмен токенами OAuth (PKCE)
- где хранятся токены (и почему)
- как обрабатывать несколько аккаунтов (профили + переопределения для каждой сессии)
OpenClaw также поддерживает плагины провайдеров, которые поставляются со своими потоками OAuth или API-ключей. Запустите их через:
openclaw models auth login --provider <id>
Приемник токенов (почему он существует)
Провайдеры OAuth обычно создают новый токен обновления во время потоков входа/обновления. Некоторые провайдеры (или клиенты OAuth) могут аннулировать старые токены обновления, когда новый выдается для того же пользователя/приложения.
Практический симптом:
- вы входите через OpenClaw и через Claude Code / Codex CLI → один из них случайно "выходит из системы" позже
Чтобы уменьшить это, OpenClaw рассматривает auth-profiles.json как приемник токенов:
- среда выполнения читает учетные данные из одного места
- мы можем хранить несколько профилей и маршрутизировать их детерминированно
Хранилище (где живут токены)
Секреты хранятся для каждого агента:
- Профили auth (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 setup-token (subscription auth)
Запустите 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) setup-token
Форма потока:
- запустите claude setup-token
- вставьте токен в OpenClaw
- сохраните как профиль auth токена (без обновления)
Путь мастера - openclaw onboard → выбор auth setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)
Форма потока (PKCE):
- сгенерируйте PKCE verifier/challenge + случайный state
- откройте https://auth.openai.com/oauth/authorize?...
- попытайтесь захватить обратный вызов на http://127.0.0.1:1455/auth/callback
- если обратный вызов не может привязаться (или вы удаленный/без графики), вставьте URL/код перенаправления
- обменяйте на https://auth.openai.com/oauth/token
- извлеките accountId из токена доступа и сохраните \{ access, refresh, expires, accountId \}
Путь мастера - openclaw onboard → выбор auth openai-codex.
Обновление + истечение
Профили хранят временную метку expires.
Во время выполнения:
- если expires в будущем → используйте сохраненный токен доступа
- если истек → обновите (под блокировкой файла) и перезапишите сохраненные учетные данные
Поток обновления автоматический; обычно вам не нужно управлять токенами вручную.
Несколько аккаунтов (профили) + маршрутизация
Два шаблона:
1) Предпочтительно: отдельные агенты
Если вы хотите, чтобы "личный" и "рабочий" никогда не взаимодействовали, используйте изолированных агентов (отдельные сессии + учетные данные + рабочее пространство):
openclaw agents add work
openclaw agents add personal
Затем настройте auth для каждого агента (мастер) и направляйте чаты к правильному агенту.
2) Расширенный: несколько профилей в одном агенте
auth-profiles.json поддерживает несколько id профилей для одного провайдера.
Выберите, какой профиль используется:
- глобально через упорядочение конфигурации (auth.order)
- для каждой сессии через /model ...@<profileId>
Пример (переопределение сессии):
- /model Opus@anthropic:work
Как увидеть, какие id профилей существуют:
- openclaw channels list --json (показывает auth[])
Связанные документы:
- /concepts/model-failover (правила ротации + периода ожидания)
- /tools/slash-commands (поверхность команд)