Fundamentals

OAuth

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-ключів. Запускайте їх так:

bash
openclaw models auth login --provider <id>

Приймач токенів (чому він існує)

OAuth-провайдери часто створюють новий refresh token під час потоків входу/оновлення. Деякі провайдери (або OAuth-клієнти) можуть інвалідовувати старі refresh token-и, коли для того самого користувача/застосунку видається новий.

Практичний симптом:

  • ви входите через OpenClaw і через Claude Code / Codex CLI → один із них згодом випадково "виходить із системи"

Щоб зменшити це, OpenClaw розглядає auth-profiles.json як приймач токенів:

  • runtime читає облікові дані з одного місця
  • ми можемо зберігати кілька профілів і маршрутизувати їх детерміновано
  • повторне використання зовнішнього CLI залежить від провайдера: Codex CLI може ініціалізувати порожній профіль openai:default, але щойно OpenClaw має локальний OAuth-профіль, локальний refresh token стає канонічним. Якщо цей локальний refresh token відхилено, OpenClaw повідомляє про керований профіль для повторної автентифікації замість використання токенних матеріалів Codex CLI як sibling runtime fallback. Інші інтеграції можуть залишатися керованими зовні й повторно читати своє сховище автентифікації CLI
  • шляхи статусу та запуску, які вже знають налаштований набір провайдерів, обмежують виявлення зовнішнього CLI цим набором, тож сховище входу непов’язаного CLI не перевіряється для налаштування з одним провайдером

Зберігання (де живуть токени)

Секрети зберігаються в agent auth stores:

  • Профілі автентифікації (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 token-и особливо чутливі: звичайні потоки копіювання типово пропускають їх, оскільки деякі провайдери ротують або інвалідовують refresh token-и після використання. Налаштуйте окремий OAuth-вхід для агента, коли йому потрібен незалежний обліковий запис.

Сумісність із застарілими токенами Anthropic

OpenClaw також надає setup-token Anthropic як підтримуваний шлях token-auth, але тепер віддає перевагу повторному використанню Claude CLI і claude -p, коли вони доступні.

Міграція Anthropic Claude CLI

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

Обмін OAuth (як працює вхід)

Інтерактивні потоки входу OpenClaw реалізовано в openclaw/plugin-sdk/llm і під’єднано до майстрів/команд.

Anthropic setup-token

Форма потоку:

  1. запустити Anthropic setup-token або paste-token з OpenClaw
  2. OpenClaw зберігає отримані облікові дані Anthropic у профілі автентифікації
  3. вибір моделі залишається на anthropic/...
  4. наявні профілі автентифікації Anthropic залишаються доступними для rollback/керування порядком

OpenAI Codex (ChatGPT OAuth)

OpenAI Codex OAuth явно підтримується для використання поза Codex CLI, зокрема в робочих процесах OpenClaw.

Команда входу й надалі використовує канонічний ідентифікатор провайдера OpenAI:

bash
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 не може прив’язатися (або ви працюєте віддалено/headless), вставити redirect URL/code
  5. виконати обмін на https://auth.openai.com/oauth/token
  6. витягти accountId з access token і зберегти { access, refresh, expires, accountId }

Шлях у майстрі: openclaw onboard → вибір автентифікації openai.

Оновлення + закінчення строку дії

Профілі зберігають мітку часу expires.

Під час runtime:

  • якщо expires у майбутньому → використовується збережений access token
  • якщо строк дії минув → виконується refresh (під файловим блокуванням) і збережені облікові дані перезаписуються
  • якщо вторинний агент читає успадкований OAuth-профіль основного агента, refresh записує назад у сховище основного агента замість копіювання refresh token-а в сховище вторинного агента
  • виняток: деякі зовнішні облікові дані CLI залишаються керованими зовні; OpenClaw повторно читає ці сховища автентифікації CLI замість витрачання скопійованих refresh token-ів. Ініціалізація Codex CLI навмисно вужча: вона може заповнити порожній openai:default або явно запитаний профіль OpenAI лише до того, як OpenClaw почне володіти OAuth для провайдера. Після цього оновлення, якими володіє OpenClaw, зберігають локальні профілі канонічними, а виявлення не додає автентифікацію Codex CLI в жоден sibling slot. Якщо керований refresh завершується невдало, OpenClaw повідомляє про уражений профіль для повторної автентифікації замість повернення токенних матеріалів зовнішнього CLI.

Потік refresh автоматичний; зазвичай вам не потрібно керувати токенами вручну.

Кілька облікових записів (профілі) + маршрутизація

Два шаблони:

1) Рекомендовано: окремі агенти

Якщо ви хочете, щоб "особисте" і "робоче" ніколи не взаємодіяли, використовуйте ізольованих агентів (окремі сесії + облікові дані + workspace):

bash
openclaw agents add workopenclaw agents add personal

Потім налаштуйте автентифікацію для кожного агента (майстер) і маршрутизуйте чати до правильного агента.

2) Розширено: кілька профілів в одному агенті

auth-profiles.json підтримує кілька ідентифікаторів профілів для того самого провайдера.

Виберіть, який профіль використовується:

  • глобально через порядок у конфігурації (auth.order)
  • для окремої сесії через /model ...@<profileId>

Приклад (перевизначення сесії):

  • /model Opus@anthropic:work

Як переглянути наявні ідентифікатори профілів:

  • openclaw channels list --json (показує auth[])

Пов’язані документи:

Пов’язане

Was this useful?
On this page

On this page