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 також підтримує провайдерські plugins, які постачають власні потоки OAuth або API-ключів. Запускайте їх через:

bash
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 реалізовані в @earendil-works/pi-ai і під'єднані до майстрів/команд.

setup-token Anthropic

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

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

OpenAI Codex (ChatGPT OAuth)

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

Форма потоку (PKCE):

  1. згенерувати verifier/challenge PKCE + випадковий state
  2. відкрити https://auth.openai.com/oauth/authorize?...
  3. спробувати перехопити callback на http://127.0.0.1:1455/auth/callback
  4. якщо callback не вдається прив'язати (або ви працюєте віддалено/headless), вставити URL/код перенаправлення
  5. виконати обмін на https://auth.openai.com/oauth/token
  6. витягти accountId з access token і зберегти { access, refresh, expires, accountId }

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

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

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

Під час runtime:

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

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

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

Два патерни:

1) Бажаний: окремі агенти

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

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?