Fundamentals

OAuth

OpenClaw obsługuje „uwierzytelnianie subskrypcyjne” przez OAuth dla dostawców, którzy je oferują (w szczególności OpenAI Codex (ChatGPT OAuth)). Dla Anthropic praktyczny podział wygląda teraz tak:

  • klucz API Anthropic: standardowe rozliczanie API Anthropic
  • Anthropic Claude CLI / uwierzytelnianie subskrypcyjne w OpenClaw: pracownicy Anthropic przekazali nam, że takie użycie jest ponownie dozwolone

OpenAI Codex OAuth jest jawnie obsługiwany do użycia w zewnętrznych narzędziach, takich jak OpenClaw. Ta strona wyjaśnia:

W przypadku Anthropic w produkcji bezpieczniejszą zalecaną ścieżką jest uwierzytelnianie kluczem API.

  • jak działa wymiana tokenów OAuth (PKCE)
  • gdzie tokeny są przechowywane (i dlaczego)
  • jak obsługiwać wiele kont (profile + zastąpienia dla poszczególnych 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>

Odbiornik tokenów (dlaczego istnieje)

Dostawcy OAuth często tworzą 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 i przez Claude Code / Codex CLI → jedno z nich później losowo zostaje „wylogowane”

Aby to ograniczyć, OpenClaw traktuje auth-profiles.json jako odbiornik tokenów:

  • runtime odczytuje poświadczenia z jednego miejsca
  • możemy utrzymywać wiele profili i kierować je deterministycznie
  • ponowne użycie zewnętrznego CLI zależy od dostawcy: Codex CLI może zainicjować pusty profil openai-codex:default, ale gdy OpenClaw ma lokalny profil OAuth, lokalny token odświeżania jest kanoniczny; 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 zestaw dostawców, ograniczają odkrywanie zewnętrznego CLI do tego zestawu, dzięki czemu niepowiązany magazyn logowania CLI nie jest sondowany w 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
  • Starszy plik zgodności: ~/.openclaw/agents/<agentId>/agent/auth.json (statyczne wpisy api_key są czyszczone po wykryciu)

Starszy plik tylko do importu (nadal obsługiwany, ale nie jest głównym magazynem):

  • ~/.openclaw/credentials/oauth.json (importowany do auth-profiles.json przy pierwszym użyciu)

Wszystkie powyższe ścieżki respektują też $OPENCLAW_STATE_DIR (zastąpienie katalogu stanu). Pełna dokumentacja: /gateway/configuration

Informacje o statycznych odwołaniach do sekretów i zachowaniu aktywacji migawki runtime znajdziesz w Zarządzaniu sekretami.

Gdy agent dodatkowy nie ma lokalnego profilu uwierzytelniania, OpenClaw używa dziedziczenia z odczytem z magazynu domyślnego/głównego agenta. Nie klonuje auth-profiles.json głównego agenta podczas odczytu. Tokeny odświeżania OAuth są szczególnie wrażliwe: zwykłe 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ść ze starszymi tokenami Anthropic

OpenClaw udostępnia też token konfiguracyjny Anthropic jako obsługiwaną ścieżkę uwierzytelniania tokenem, ale teraz 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 może użyć go bezpośrednio.

Wymiana OAuth (jak działa logowanie)

Interaktywne przepływy logowania OpenClaw są zaimplementowane w @mariozechner/pi-ai i podłączone do kreatorów/poleceń.

Token konfiguracyjny Anthropic

Kształt przepływu:

  1. uruchom token konfiguracyjny Anthropic lub wklej-token z OpenClaw
  2. OpenClaw zapisuje wynikowe poświadczenie Anthropic w profilu uwierzytelniania
  3. wybór modelu pozostaje przy anthropic/...
  4. istniejące profile uwierzytelniania Anthropic pozostają dostępne do wycofania/kontroli kolejności

OpenAI Codex (ChatGPT OAuth)

OpenAI Codex OAuth jest jawnie obsługiwany do użycia poza Codex CLI, w tym w przepływach OpenClaw.

Kształt przepływu (PKCE):

  1. wygeneruj weryfikator/wyzwanie PKCE + losowy state
  2. otwórz https://auth.openai.com/oauth/authorize?...
  3. spróbuj przechwycić wywołanie zwrotne na http://127.0.0.1:1455/auth/callback
  4. jeśli nie można powiązać wywołania zwrotnego (albo pracujesz zdalnie/bez interfejsu graficznego), wklej URL przekierowania/kod
  5. wykonaj wymianę pod https://auth.openai.com/oauth/token
  6. wyodrębnij accountId z tokenu dostępu i zapisz { access, refresh, expires, accountId }

Ścieżka kreatora to openclaw onboard → wybór uwierzytelniania openai-codex.

Odświeżanie + wygaśnięcie

Profile przechowują znacznik czasu expires.

W runtime:

  • jeśli expires jest 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 dodatkowy 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 dodatkowego
  • wyjątek: niektóre poświadczenia zewnętrznego CLI pozostają zarządzane zewnętrznie; OpenClaw ponownie odczytuje te magazyny uwierzytelniania CLI zamiast zużywać skopiowane tokeny odświeżania. Inicjowanie z Codex CLI jest celowo węższe: zasiewa pusty profil openai-codex:default, a następnie odświeżenia należące do OpenClaw utrzymują lokalny profil jako kanoniczny.

Przepływ odświeżania jest automatyczny; zwykle nie musisz ręcznie zarządzać tokenami.

Wiele kont (profile) + kierowanie

Dwa wzorce:

1) Preferowane: osobni agenci

Jeśli chcesz, aby „osobiste” i „służbowe” nigdy nie oddziaływały na siebie, użyj izolowanych agentów (osobne sesje + poświadczenia + workspace):

openclaw agents add work
openclaw agents add personal

Nastę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 jest używany:

  • globalnie przez kolejność konfiguracji (auth.order)
  • dla poszczególnych sesji przez /model ...@<profileId>

Przykład (zastąpienie sesji):

  • /model Opus@anthropic:work

Jak sprawdzić, jakie identyfikatory profili istnieją:

  • openclaw channels list --json (pokazuje auth[])

Powiązane dokumenty:

Powiązane