Fundamentals
OAuth
OpenClaw obsługuje „uwierzytelnianie subskrypcyjne” przez OAuth dla dostawców, którzy je oferują (w szczególności OpenAI Codex (ChatGPT OAuth)). W przypadku Anthropic praktyczny podział wygląda teraz tak:
- Klucz API Anthropic: standardowe rozliczanie API Anthropic
- Anthropic Claude CLI / uwierzytelnianie subskrypcyjne w OpenClaw: pracownicy Anthropic poinformowali nas, że takie użycie jest ponownie dozwolone
OAuth OpenAI Codex jest jawnie obsługiwany do użycia w zewnętrznych narzędziach takich jak OpenClaw.
OpenClaw przechowuje zarówno uwierzytelnianie kluczem API OpenAI, jak i OAuth ChatGPT/Codex pod
kanonicznym identyfikatorem dostawcy openai. Starsze identyfikatory profili openai-codex:* i
wpisy auth.order.openai-codex są stanem legacy naprawianym przez
openclaw doctor --fix; dla nowej konfiguracji używaj identyfikatorów profili openai:* i auth.order.openai.
W przypadku Anthropic w produkcji bezpieczniejszą zalecaną ścieżką jest uwierzytelnianie kluczem API.
Ta strona wyjaśnia:
- jak działa wymiana tokenów OAuth (PKCE)
- gdzie przechowywane są tokeny (i dlaczego)
- jak obsługiwać wiele kont (profile + nadpisania dla sesji)
OpenClaw obsługuje też Pluginy dostawców, które dostarczają własne przepływy OAuth lub kluczy API. Uruchamiaj je przez:
openclaw models auth login --provider <id>Ujście tokenów (dlaczego istnieje)
Dostawcy OAuth często tworzą nowy token odświeżania podczas logowania lub odświeżania. Niektórzy dostawcy (albo 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 i przez Claude Code / Codex CLI → jedno z nich później losowo zostaje „wylogowane”
Aby to ograniczyć, OpenClaw traktuje auth-profiles.json jako ujście tokenów:
- runtime odczytuje poświadczenia z jednego miejsca
- możemy utrzymywać wiele profili i routować je deterministycznie
- ponowne użycie zewnętrznego CLI jest specyficzne dla dostawcy: Codex CLI może zainicjować pusty
profil
openai:default, ale gdy OpenClaw ma lokalny profil OAuth, lokalny token odświeżania jest kanoniczny. Jeśli ten lokalny token odświeżania zostanie odrzucony, OpenClaw zgłasza zarządzany profil do ponownego uwierzytelnienia zamiast używać materiału tokenów Codex CLI jako zapasowego runtime równoległego. Inne integracje mogą pozostać zarządzane zewnętrznie i ponownie odczytywać swój magazyn uwierzytelniania CLI - ścieżki statusu i uruchamiania, które już znają skonfigurowany zakres dostawców, ograniczają wykrywanie zewnętrznego CLI do tego zestawu, więc niepowiązany magazyn logowania CLI nie jest sprawdzany przy konfiguracji z jednym dostawcą
Przechowywanie (gdzie znajdują się tokeny)
Sekrety są przechowywane w magazynach uwierzytelniania agenta:
- Profile uwierzytelniania (OAuth + klucze API + opcjonalne odwołania na poziomie wartości):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Plik zgodności legacy:
~/.openclaw/agents/<agentId>/agent/auth.json(statyczne wpisyapi_keysą usuwane po wykryciu)
Plik legacy tylko do importu (nadal obsługiwany, ale nie jest głównym magazynem):
~/.openclaw/credentials/oauth.json(importowany doauth-profiles.jsonprzy pierwszym użyciu)
Wszystkie powyższe respektują też $OPENCLAW_STATE_DIR (nadpisanie katalogu stanu). Pełna dokumentacja: /gateway/configuration
Informacje o statycznych odwołaniach do sekretów i zachowaniu aktywacji migawek runtime znajdziesz w Zarządzaniu sekretami.
Gdy agent pomocniczy nie ma lokalnego profilu uwierzytelniania, OpenClaw używa dziedziczenia z odczytem
z domyślnego/głównego magazynu agenta. Nie klonuje przy odczycie pliku
auth-profiles.json głównego agenta. Tokeny odświeżania OAuth są szczególnie
wrażliwe: standardowe przepływy kopiowania domyślnie je pomijają, ponieważ niektórzy dostawcy rotują
lub unieważniają tokeny odświeżania po użyciu. Skonfiguruj osobne logowanie OAuth dla
agenta, gdy potrzebuje niezależnego konta.
Zgodność z tokenami legacy Anthropic
OpenClaw udostępnia też setup-token Anthropic jako obsługiwaną ścieżkę uwierzytelniania tokenem, ale obecnie preferuje ponowne użycie Claude CLI i claude -p, gdy są dostępne.
Migracja Anthropic Claude CLI
OpenClaw ponownie obsługuje ponowne użycie Anthropic Claude CLI. Jeśli masz już lokalne logowanie Claude na hoście, onboarding/konfiguracja mogą użyć go bezpośrednio.
Wymiana OAuth (jak działa logowanie)
Interaktywne przepływy logowania OpenClaw są zaimplementowane w openclaw/plugin-sdk/llm i podłączone do kreatorów/poleceń.
setup-token Anthropic
Kształt przepływu:
- uruchom setup-token Anthropic albo wklej-token z OpenClaw
- OpenClaw zapisuje wynikowe poświadczenie Anthropic w profilu uwierzytelniania
- wybór modelu pozostaje przy
anthropic/... - istniejące profile uwierzytelniania Anthropic pozostają dostępne do wycofania/kontroli kolejności
OpenAI Codex (ChatGPT OAuth)
OAuth OpenAI Codex jest jawnie obsługiwany do użycia poza Codex CLI, w tym w przepływach OpenClaw.
Polecenie logowania nadal używa kanonicznego identyfikatora dostawcy OpenAI:
openclaw models auth login --provider openaiUżyj --profile-id openai:<name> dla wielu kont ChatGPT/Codex OAuth w
jednym agencie. Nie używaj openai-codex:<name> dla nowych profili. Doctor migruje
ten starszy prefiks do bezkolizyjnego identyfikatora profilu openai:*; po naprawie uruchom
openclaw models auth list --provider openai przed skopiowaniem
identyfikatorów profili do auth.order albo /model ...@<profileId>.
Kształt przepływu (PKCE):
- wygeneruj weryfikator/wyzwanie PKCE + losowy
state - otwórz
https://auth.openai.com/oauth/authorize?... - spróbuj przechwycić callback pod
http://127.0.0.1:1455/auth/callback - jeśli callback nie może zostać zbindowany (albo pracujesz zdalnie/bez interfejsu), wklej URL/kod przekierowania
- wykonaj wymianę pod
https://auth.openai.com/oauth/token - wyodrębnij
accountIdz tokenu dostępu i zapisz{ access, refresh, expires, accountId }
Ścieżka kreatora to openclaw onboard → wybór uwierzytelniania openai.
Odświeżanie + wygaśnięcie
Profile przechowują znacznik czasu expires.
W runtime:
- 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
- jeśli agent pomocniczy odczytuje odziedziczony profil OAuth głównego agenta, odświeżenie zapisuje z powrotem do magazynu głównego agenta zamiast kopiować token odświeżania do magazynu agenta pomocniczego
- wyjątek: niektóre zewnętrzne poświadczenia CLI pozostają zarządzane zewnętrznie; OpenClaw
ponownie odczytuje te magazyny uwierzytelniania CLI zamiast zużywać skopiowane tokeny odświeżania.
Bootstrap Codex CLI jest celowo węższy: może zasiać pusty
openai:defaultalbo jawnie zażądany profil OpenAI tylko zanim OpenClaw przejmie OAuth dla dostawcy. Następnie odświeżenia należące do OpenClaw utrzymują lokalne profile jako kanoniczne, a wykrywanie nie dodaje uwierzytelniania Codex CLI w żadnym równoległym slocie. Jeśli zarządzane odświeżenie zawiedzie, OpenClaw zgłasza dotknięty profil do ponownego uwierzytelnienia zamiast zwracać zewnętrzny materiał tokenów CLI.
Przepływ odświeżania jest automatyczny; zazwyczaj nie musisz ręcznie zarządzać tokenami.
Wiele kont (profile) + routing
Dwa wzorce:
1) Preferowane: osobni agenci
Jeśli chcesz, aby „osobiste” i „służbowe” nigdy na siebie nie wpływały, użyj izolowanych agentów (osobne sesje + poświadczenia + workspace):
openclaw agents add workopenclaw agents add personalNastępnie skonfiguruj uwierzytelnianie dla każdego agenta (kreator) i kieruj czaty do właściwego agenta.
2) Zaawansowane: wiele profili w jednym agencie
auth-profiles.json obsługuje wiele identyfikatorów profili dla tego samego dostawcy.
Wybierz, który profil ma być używany:
- globalnie przez kolejność konfiguracji (
auth.order) - dla sesji przez
/model ...@<profileId>
Przykład (nadpisanie sesji):
/model Opus@anthropic:work
Jak zobaczyć istniejące identyfikatory profili:
openclaw channels list --json(pokazujeauth[])
Powiązane dokumenty:
- Failover modeli (reguły rotacji + cooldown)
- Polecenia slash (powierzchnia poleceń)
Powiązane
- Uwierzytelnianie - omówienie uwierzytelniania dostawców modeli
- Sekrety - przechowywanie poświadczeń i SecretRef
- Dokumentacja konfiguracji - klucze konfiguracji uwierzytelniania