- API-ключ Anthropic: обычная оплата Anthropic API
- Anthropic Claude CLI / аутентификация по подписке внутри OpenClaw: сотрудники Anthropic сообщили нам, что такое использование снова разрешено
openai. Более старые идентификаторы профилей openai-codex:* и
записи auth.order.openai-codex являются устаревшим состоянием, которое исправляет
openclaw doctor --fix; используйте идентификаторы профилей openai:* и auth.order.openai для
новой конфигурации.
Для Anthropic в production более безопасный рекомендуемый путь — аутентификация по API-ключу.
На этой странице объясняется:
- как работает обмен токенов OAuth (PKCE)
- где хранятся токены (и почему)
- как работать с несколькими аккаунтами (профили + переопределения для отдельных сессий)
Приемник токенов (зачем он нужен)
Провайдеры OAuth часто выпускают новый refresh-токен во время потоков входа или обновления. Некоторые провайдеры (или OAuth-клиенты) могут инвалидировать старые refresh-токены, когда новый выпускается для того же пользователя/приложения. Практический симптом:- вы входите через OpenClaw и через Claude Code / Codex CLI → один из них позже случайно оказывается «разлогинен»
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
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
Форма потока:- запустите setup-token Anthropic или paste-token из OpenClaw
- OpenClaw сохраняет полученные учетные данные Anthropic в профиле аутентификации
- выбор модели остается на
anthropic/... - существующие профили аутентификации Anthropic остаются доступными для отката/управления порядком
OpenAI Codex (ChatGPT OAuth)
OpenAI Codex OAuth явно поддерживается для использования вне Codex CLI, включая рабочие процессы OpenClaw. Команда входа по-прежнему использует канонический идентификатор провайдера OpenAI:--profile-id openai:<name> для нескольких аккаунтов ChatGPT/Codex OAuth в
одном агенте. Не используйте openai-codex:<name> для новых профилей. Doctor переносит
этот старый префикс в не конфликтующий идентификатор профиля openai:*; запустите
openclaw models auth list --provider openai после исправления, прежде чем копировать
идентификаторы профилей в auth.order или /model ...@<profileId>.
Форма потока (PKCE):
- сгенерировать PKCE verifier/challenge + случайный
state - открыть
https://auth.openai.com/oauth/authorize?... - попытаться перехватить callback на
http://127.0.0.1:1455/auth/callback - если callback не может привязаться (или вы работаете удаленно/без GUI), вставить URL/код перенаправления
- выполнить обмен на
https://auth.openai.com/oauth/token - извлечь
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) Предпочтительно: отдельные агенты
Если вы хотите, чтобы «личное» и «рабочее» никогда не взаимодействовали, используйте изолированных агентов (отдельные сессии + учетные данные + рабочее пространство):2) Расширенный вариант: несколько профилей в одном агенте
auth-profiles.json поддерживает несколько идентификаторов профилей для одного провайдера.
Выберите, какой профиль используется:
- глобально через порядок в конфигурации (
auth.order) - для отдельной сессии через
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(показываетauth[])
- Failover моделей (правила ротации + cooldown)
- Slash-команды (поверхность команд)
Связанное
- Аутентификация - обзор аутентификации провайдеров моделей
- Секреты - хранилище учетных данных и SecretRef
- Справочник конфигурации - ключи конфигурации аутентификации