OAuth
OpenClaw obsługuje „subscription auth” przez OAuth dla dostawców, którzy je oferują (w szczególności OpenAI Codex (ChatGPT OAuth)). W przypadku subskrypcji Anthropic użyj przepływu setup-token. Ta strona wyjaśnia:- jak działa wymiana tokenów OAuth (PKCE)
- gdzie tokeny są przechowywane (i dlaczego)
- jak obsługiwać wiele kont (profile + nadpisania per sesja)
Token sink (dlaczego istnieje)
Dostawcy OAuth często wystawiają nowy token odświeżania podczas przepływów logowania/odświeżania. Niektórzy dostawcy (lub klienci OAuth) mogą unieważniać starsze tokeny odświeżania, gdy dla tego samego użytkownika/aplikacji zostanie wydany nowy. Praktyczny objaw:- logujesz się przez OpenClaw oraz przez Claude Code / Codex CLI → jeden z nich losowo zostaje później „wylogowany”
auth-profiles.json jako token sink:
- środowisko wykonawcze odczytuje poświadczenia z jednego miejsca
- możemy utrzymywać wiele profili i deterministycznie je routować
Przechowywanie (gdzie są tokeny)
Sekrety są przechowywane per agent:- Profile uwierzytelniania (OAuth + klucze API):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Pamięć podręczna środowiska wykonawczego (zarządzana automatycznie; nie edytuj):
~/.openclaw/agents/<agentId>/agent/auth.json
~/.openclaw/credentials/oauth.json(importowany doauth-profiles.jsonprzy pierwszym użyciu)
$OPENCLAW_STATE_DIR (nadpisanie katalogu stanu). Pełne odniesienie: /gateway/configuration
Anthropic setup-token (uwierzytelnianie subskrypcyjne)
Uruchomclaude setup-token na dowolnej maszynie, a następnie wklej go do OpenClaw:
Wymiana OAuth (jak działa logowanie)
Interaktywne przepływy logowania OpenClaw są zaimplementowane w@mariozechner/pi-ai i podłączone do kreatorów/poleceń.
Anthropic (Claude Pro/Max) setup-token
Kształt przepływu:- uruchom
claude setup-token - wklej token do OpenClaw
- zapisz jako profil uwierzytelniania tokenem (bez odświeżania)
openclaw onboard → wybór uwierzytelniania setup-token (Anthropic).
OpenAI Codex (ChatGPT OAuth)
Kształt przepływu (PKCE):- wygeneruj weryfikator/wyzwanie PKCE + losowy
state - otwórz
https://auth.openai.com/oauth/authorize?... - spróbuj przechwycić callback na
http://127.0.0.1:1455/auth/callback - jeśli callback nie może się zbindować (lub jesteś zdalnie/headless), wklej URL przekierowania/kod
- wymień w
https://auth.openai.com/oauth/token - wyodrębnij
accountIdz tokenu dostępu i zapisz{ access, refresh, expires, accountId }
openclaw onboard → wybór uwierzytelniania openai-codex.
Odświeżanie + wygaśnięcie
Profile przechowują znacznik czasuexpires.
W czasie działania:
- jeśli
expiresjest w przyszłości → użyj zapisanego tokenu dostępu - jeśli wygasł → odśwież (pod blokadą pliku) i nadpisz zapisane poświadczenia
Wiele kont (profile) + routing
Dwa wzorce:1. Zalecane: oddzielni agenci
Jeśli chcesz, aby „prywatne” i „służbowe” nigdy się nie stykały, użyj izolowanych agentów (oddzielne sesje + poświadczenia + obszar roboczy):2. Zaawansowane: wiele profili w jednym agencie
auth-profiles.json obsługuje wiele identyfikatorów profili dla tego samego dostawcy.
Wybór używanego profilu:
- globalnie przez kolejność konfiguracji (
auth.order) - per sesja przez
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(pokazujeauth[])
- /concepts/model-failover (rotacja + reguły cooldown)
- /tools/slash-commands (powierzchnia poleceń)