Fundamentals
OAuth
OpenClaw підтримує "автентифікацію за підпискою" через OAuth для провайдерів, які її пропонують (зокрема OpenAI Codex (ChatGPT OAuth)). Для Anthropic практичний поділ зараз такий:
- API-ключ Anthropic: звичайний білінг Anthropic API
- Anthropic Claude CLI / автентифікація за підпискою всередині OpenClaw: співробітники Anthropic повідомили нам, що це використання знову дозволене
OpenAI Codex OAuth явно підтримується для використання в зовнішніх інструментах на кшталт OpenClaw. На цій сторінці пояснюється:
Для Anthropic у production API-автентифікація ключем є безпечнішим рекомендованим шляхом.
- як працює обмін токена OAuth (PKCE)
- де зберігаються токени (і чому)
- як обробляти кілька облікових записів (профілі + перевизначення для окремих сеансів)
OpenClaw також підтримує provider plugins, які постачають власні OAuth- або API-key потоки. Запускайте їх через:
openclaw models auth login --provider <id>
Приймач токенів (навіщо він існує)
OAuth-провайдери зазвичай створюють новий refresh token під час потоків входу/оновлення. Деякі провайдери (або OAuth-клієнти) можуть робити старіші refresh tokens недійсними, коли для того самого користувача/застосунку видано новий.
Практичний симптом:
- ви входите через OpenClaw і через Claude Code / Codex CLI → один із них згодом випадково "виходить із системи"
Щоб зменшити це, OpenClaw розглядає auth-profiles.json як приймач токенів:
- runtime читає облікові дані з одного місця
- ми можемо зберігати кілька профілів і маршрутизувати їх детерміновано
- повторне використання зовнішнього CLI залежить від провайдера: Codex CLI може ініціалізувати порожній
профіль
openai-codex:default, але щойно OpenClaw має локальний OAuth-профіль, локальний refresh token є канонічним; інші інтеграції можуть залишатися керованими ззовні та повторно читати своє 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 основного агента під час читання. OAuth refresh tokens особливо
чутливі: звичайні потоки копіювання пропускають їх за замовчуванням, бо деякі провайдери ротують
або роблять refresh tokens недійсними після використання. Налаштуйте окремий OAuth-вхід для
агента, коли йому потрібен незалежний обліковий запис.
Сумісність зі спадковим токеном Anthropic
OpenClaw також надає setup-token Anthropic як підтримуваний шлях автентифікації токеном, але тепер віддає перевагу повторному використанню Claude CLI і claude -p, коли вони доступні.
Міграція Anthropic Claude CLI
OpenClaw знову підтримує повторне використання Anthropic Claude CLI. Якщо на хості вже є локальний вхід Claude, onboarding/configure може використати його напряму.
Обмін OAuth (як працює вхід)
Інтерактивні потоки входу OpenClaw реалізовані в @mariozechner/pi-ai і під'єднані до майстрів/команд.
Anthropic setup-token
Форма потоку:
- запустити Anthropic setup-token або paste-token з OpenClaw
- OpenClaw зберігає отримані облікові дані Anthropic у профілі автентифікації
- вибір моделі залишається на
anthropic/... - наявні профілі автентифікації Anthropic залишаються доступними для відкату/керування порядком
OpenAI Codex (ChatGPT OAuth)
OpenAI Codex OAuth явно підтримується для використання поза Codex CLI, зокрема в робочих процесах OpenClaw.
Форма потоку (PKCE):
- згенерувати PKCE verifier/challenge + випадковий
state - відкрити
https://auth.openai.com/oauth/authorize?... - спробувати перехопити callback на
http://127.0.0.1:1455/auth/callback - якщо callback не може прив'язатися (або ви працюєте віддалено/headless), вставити redirect URL/code
- виконати обмін на
https://auth.openai.com/oauth/token - витягти
accountIdз access token і зберегти{ access, refresh, expires, accountId }
Шлях майстра: openclaw onboard → вибір автентифікації openai-codex.
Оновлення + завершення строку дії
Профілі зберігають timestamp expires.
Під час runtime:
- якщо
expiresу майбутньому → використати збережений access token - якщо строк дії минув → оновити (під файловим lock) і перезаписати збережені облікові дані
- якщо вторинний агент читає успадкований OAuth-профіль основного агента, оновлення записує назад у сховище основного агента замість копіювання refresh token у сховище вторинного агента
- виняток: деякі облікові дані зовнішнього CLI залишаються керованими ззовні; OpenClaw
повторно читає ці сховища автентифікації CLI замість витрачання скопійованих refresh tokens.
Ініціалізація Codex CLI навмисно вужча: вона засіває порожній
профіль
openai-codex:default, після чого оновлення, керовані OpenClaw, зберігають локальний профіль канонічним.
Потік оновлення автоматичний; зазвичай вам не потрібно керувати токенами вручну.
Кілька облікових записів (профілі) + маршрутизація
Два шаблони:
1) Бажано: окремі агенти
Якщо ви хочете, щоб "особисте" і "робоче" ніколи не взаємодіяли, використовуйте ізольованих агентів (окремі сеанси + облікові дані + workspace):
openclaw agents add work
openclaw agents add personal
Потім налаштуйте автентифікацію для кожного агента (майстер) і маршрутизуйте чати до правильного агента.
2) Розширено: кілька профілів в одному агенті
auth-profiles.json підтримує кілька ID профілів для того самого провайдера.
Виберіть, який профіль використовується:
- глобально через порядок конфігурації (
auth.order) - для окремого сеансу через
/model ...@<profileId>
Приклад (перевизначення сеансу):
/model Opus@anthropic:work
Як побачити, які ID профілів існують:
openclaw channels list --json(показуєauth[])
Пов'язана документація:
- Failover моделей (правила ротації + cooldown)
- Slash-команди (поверхня команд)
Пов'язане
- Автентифікація - огляд автентифікації провайдера моделей
- Секрети - зберігання облікових даних і SecretRef
- Довідник конфігурації - ключі конфігурації автентифікації