Перейти к основному содержанию
OpenClaw поддерживает «аутентификацию по подписке» через OAuth для провайдеров, которые ее предлагают (в частности, OpenAI Codex (ChatGPT OAuth)). Для Anthropic практическое разделение теперь такое:
  • API-ключ Anthropic: обычная оплата Anthropic API
  • Anthropic Claude CLI / аутентификация по подписке внутри OpenClaw: сотрудники Anthropic сообщили нам, что такое использование снова разрешено
OpenAI Codex OAuth явно поддерживается для использования во внешних инструментах, таких как OpenClaw. OpenClaw хранит и аутентификацию по API-ключу OpenAI, и ChatGPT/Codex OAuth под каноническим идентификатором провайдера openai. Более старые идентификаторы профилей openai-codex:* и записи auth.order.openai-codex являются устаревшим состоянием, которое исправляет openclaw doctor --fix; используйте идентификаторы профилей openai:* и auth.order.openai для новой конфигурации. Для Anthropic в production более безопасный рекомендуемый путь — аутентификация по API-ключу. На этой странице объясняется:
  • как работает обмен токенов OAuth (PKCE)
  • где хранятся токены (и почему)
  • как работать с несколькими аккаунтами (профили + переопределения для отдельных сессий)
OpenClaw также поддерживает Plugin провайдеров, которые поставляют собственные потоки OAuth или API-ключей. Запускайте их так:
openclaw models auth login --provider <id>

Приемник токенов (зачем он нужен)

Провайдеры OAuth часто выпускают новый refresh-токен во время потоков входа или обновления. Некоторые провайдеры (или OAuth-клиенты) могут инвалидировать старые refresh-токены, когда новый выпускается для того же пользователя/приложения. Практический симптом:
  • вы входите через OpenClaw и через Claude Code / Codex CLI → один из них позже случайно оказывается «разлогинен»
Чтобы уменьшить это, OpenClaw рассматривает auth-profiles.json как приемник токенов:
  • среда выполнения читает учетные данные из одного места
  • мы можем хранить несколько профилей и маршрутизировать их детерминированно
  • повторное использование внешнего CLI зависит от провайдера: Codex CLI может bootstrap пустой профиль openai:default, но после появления у OpenClaw локального OAuth-профиля локальный refresh-токен становится каноническим. Если этот локальный refresh-токен отклонен, OpenClaw может использовать пригодный токен Codex CLI того же аккаунта как runtime-only fallback; другие интеграции могут оставаться управляемыми извне и перечитывать свое хранилище аутентификации CLI
  • пути статуса и запуска, которые уже знают настроенный набор провайдеров, ограничивают область обнаружения внешнего CLI этим набором, поэтому хранилище входа нерелевантного CLI не проверяется для настройки с одним провайдером

Хранилище (где находятся токены)

Секреты хранятся в хранилищах аутентификации агентов:
  • Профили аутентификации (OAuth + API-ключи + необязательные ссылки уровня значений): ~/.openclaw/agents/<agentId>/agent/auth-profiles.json
  • Устаревший файл совместимости: ~/.openclaw/agents/<agentId>/agent/auth.json (статические записи api_key очищаются при обнаружении)
Устаревший файл только для импорта (по-прежнему поддерживается, но не является основным хранилищем):
  • ~/.openclaw/credentials/oauth.json (импортируется в auth-profiles.json при первом использовании)
Все перечисленное также учитывает $OPENCLAW_STATE_DIR (переопределение каталога состояния). Полная справка: /gateway/configuration О статических ссылках на секреты и поведении активации runtime-снимка см. Управление секретами. Когда у вторичного агента нет локального профиля аутентификации, OpenClaw использует сквозное наследование из хранилища агента по умолчанию/главного агента. Он не клонирует auth-profiles.json главного агента при чтении. Refresh-токены OAuth особенно чувствительны: обычные потоки копирования по умолчанию пропускают их, потому что некоторые провайдеры ротируют или инвалидируют refresh-токены после использования. Настройте отдельный вход OAuth для агента, когда ему нужен независимый аккаунт.

Совместимость с устаревшими токенами Anthropic

В публичной документации Anthropic Claude Code сказано, что прямое использование Claude Code остается в пределах лимитов подписки Claude, а сотрудники Anthropic сообщили нам, что использование Claude CLI в стиле OpenClaw снова разрешено. Поэтому OpenClaw считает повторное использование Claude CLI и claude -p санкционированными для этой интеграции, если Anthropic не опубликует новую политику.Текущие документы Anthropic о тарифах для прямого Claude Code см. в Using Claude Code with your Pro or Max plan и Using Claude Code with your Team or Enterprise plan.Если вам нужны другие варианты в стиле подписки в OpenClaw, см. OpenAI Codex, Qwen Cloud Coding Plan, MiniMax Coding Plan и Z.AI / GLM Coding Plan.
OpenClaw также предоставляет setup-token Anthropic как поддерживаемый путь аутентификации по токену, но теперь предпочитает повторное использование Claude CLI и claude -p, когда они доступны.

Миграция Anthropic Claude CLI

OpenClaw снова поддерживает повторное использование Anthropic Claude CLI. Если на хосте у вас уже есть локальный вход Claude, onboarding/configure может использовать его напрямую.

Обмен OAuth (как работает вход)

Интерактивные потоки входа OpenClaw реализованы в openclaw/plugin-sdk/llm и подключены к мастерам/командам.

Setup-token Anthropic

Форма потока:
  1. запустите setup-token Anthropic или paste-token из OpenClaw
  2. OpenClaw сохраняет полученные учетные данные Anthropic в профиле аутентификации
  3. выбор модели остается на anthropic/...
  4. существующие профили аутентификации Anthropic остаются доступными для отката/управления порядком

OpenAI Codex (ChatGPT OAuth)

OpenAI Codex OAuth явно поддерживается для использования вне Codex CLI, включая рабочие процессы OpenClaw. Команда входа по-прежнему использует канонический идентификатор провайдера OpenAI:
openclaw models auth login --provider openai
Используйте --profile-id openai:<name> для нескольких аккаунтов ChatGPT/Codex OAuth в одном агенте. Не используйте openai-codex:<name> для новых профилей. Doctor переносит этот старый префикс в не конфликтующий идентификатор профиля openai:*; запустите openclaw models auth list --provider openai после исправления, прежде чем копировать идентификаторы профилей в auth.order или /model ...@<profileId>. Форма потока (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 не может привязаться (или вы работаете удаленно/без GUI), вставить URL/код перенаправления
  5. выполнить обмен на https://auth.openai.com/oauth/token
  6. извлечь accountId из access-токена и сохранить { access, refresh, expires, accountId }
Путь мастера: openclaw onboard → выбор аутентификации openai.

Обновление + истечение срока действия

Профили хранят метку времени expires. Во время выполнения:
  • если expires в будущем → использовать сохраненный access-токен
  • если срок истек → обновить (под файловой блокировкой) и перезаписать сохраненные учетные данные
  • если вторичный агент читает унаследованный OAuth-профиль главного агента, обновление записывается обратно в хранилище главного агента вместо копирования refresh-токена в хранилище вторичного агента
  • исключение: некоторые учетные данные внешнего CLI остаются управляемыми извне; OpenClaw перечитывает эти хранилища аутентификации CLI вместо расходования скопированных refresh-токенов. Bootstrap Codex CLI намеренно уже: он создает пустой профиль openai:default, затем обновления, принадлежащие OpenClaw, сохраняют локальный профиль каноническим. Если локальное обновление Codex завершается с ошибкой, а у Codex CLI есть пригодный токен для того же аккаунта, OpenClaw может использовать этот токен для текущего runtime-запроса, не записывая его обратно в auth-profiles.json.
Поток обновления автоматический; обычно вам не нужно управлять токенами вручную.

Несколько аккаунтов (профили) + маршрутизация

Два шаблона:

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[])
Связанные документы:

Связанное