Fundamentals
OAuth
OpenClaw mendukung OAuth ("autentikasi langganan") untuk penyedia yang menawarkannya, terutama OpenAI Codex (OAuth ChatGPT) dan penggunaan kembali Anthropic Claude CLI. Untuk Anthropic, pembagian praktisnya adalah:
- Kunci API Anthropic: penagihan API Anthropic biasa.
- Anthropic Claude CLI / autentikasi langganan di dalam OpenClaw: staf Anthropic
memberi tahu kami bahwa penggunaan ini diizinkan kembali, sehingga OpenClaw menganggap
penggunaan kembali Claude CLI dan penggunaan
claude -pdiizinkan untuk integrasi ini, kecuali Anthropic menerbitkan kebijakan baru. Untuk Anthropic dalam produksi, autentikasi dengan kunci API tetap merupakan jalur rekomendasi yang lebih aman.
OpenClaw menyimpan autentikasi kunci API OpenAI dan OAuth ChatGPT/Codex di bawah
id penyedia kanonis openai. Id profil openai-codex:* lama dan entri
auth.order.openai-codex merupakan status lama yang diperbaiki oleh
openclaw doctor --fix; gunakan id profil openai:* dan auth.order.openai untuk
konfigurasi baru.
Halaman ini membahas:
- cara kerja pertukaran token OAuth (PKCE)
- tempat token disimpan (dan alasannya)
- cara menangani beberapa akun (profil + penggantian per sesi)
Plugin penyedia yang menyediakan alur OAuth atau kunci API sendiri dijalankan melalui titik masuk yang sama:
openclaw models auth login --provider <id>Penampung token (alasan keberadaannya)
Penyedia OAuth umumnya menerbitkan token penyegaran baru pada setiap proses masuk/penyegaran. Beberapa penyedia membatalkan token penyegaran sebelumnya ketika token baru diterbitkan untuk pengguna/aplikasi yang sama. Gejala praktisnya: masuk melalui OpenClaw dan melalui Claude Code / Codex CLI, lalu salah satunya tiba-tiba keluar dari akun.
Untuk mengurangi hal tersebut, OpenClaw memperlakukan penyimpanan profil autentikasi sebagai penampung token:
- runtime membaca kredensial dari satu tempat untuk setiap agen
- beberapa profil dapat digunakan secara bersamaan dan dirutekan secara deterministik
- penggunaan kembali CLI eksternal bersifat khusus penyedia: setelah OpenClaw memiliki profil
OAuth lokal untuk suatu penyedia, token penyegaran lokal menjadi kanonis. Jika token
penyegaran lokal tersebut ditolak, OpenClaw melaporkan profil itu untuk
autentikasi ulang, alih-alih kembali menggunakan materi token CLI eksternal.
Bootstrap Codex CLI bahkan lebih terbatas: bootstrap hanya dapat mengisi profil kosong
bergaya
openai:defaultsebelum OpenClaw memiliki OAuth untuk penyedia tersebut; setelah itu, penyegaran yang dimiliki OpenClaw tetap menjadi kanonis - jalur status/mulai membatasi penemuan CLI eksternal ke kumpulan penyedia yang sudah dikonfigurasi, sehingga penyimpanan proses masuk CLI yang tidak terkait tidak diperiksa untuk penyiapan dengan satu penyedia
Penyimpanan (tempat token berada)
Rahasia disimpan per agen, dengan nama logis auth-profiles.json sebagai kunci
(penyimpanan yang mendasarinya adalah basis data SQLite milik agen; nama JSON
dipertahankan untuk kompatibilitas dan tampilan alat):
- Profil autentikasi (OAuth + kunci API + referensi tingkat nilai opsional):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - Berkas kompatibilitas lama:
~/.openclaw/agents/<agentId>/agent/auth.json(entriapi_keystatis dibersihkan saat ditemukan)
Berkas lama khusus impor (masih didukung, tetapi bukan penyimpanan utama):
~/.openclaw/credentials/oauth.json(diimpor ke penyimpanan profil autentikasi saat pertama kali digunakan)
Semua hal di atas juga mematuhi $OPENCLAW_STATE_DIR (penggantian direktori status). Referensi lengkap: /gateway/configuration-reference#auth-storage
Untuk referensi rahasia statis dan perilaku aktivasi snapshot runtime, lihat Pengelolaan Rahasia.
Ketika agen sekunder tidak memiliki profil autentikasi lokal, OpenClaw menggunakan pewarisan baca-langsung dari penyimpanan agen default/utama; OpenClaw tidak mengkloning penyimpanan agen utama saat membaca. Token penyegaran OAuth sangat sensitif: alur penyalinan normal melewatinya secara default karena beberapa penyedia merotasi atau membatalkan token penyegaran setelah digunakan. Konfigurasikan proses masuk OAuth terpisah untuk agen yang memerlukan akun independen.
Penggunaan kembali Anthropic Claude CLI
OpenClaw mendukung penggunaan kembali Anthropic Claude CLI dan claude -p sebagai
jalur autentikasi yang diizinkan. Jika Anda sudah memiliki proses masuk Claude lokal
di host, orientasi awal/konfigurasi dapat langsung menggunakannya kembali. Token penyiapan
Anthropic tetap tersedia sebagai jalur autentikasi token yang didukung, tetapi OpenClaw
lebih memilih penggunaan kembali Claude CLI jika tersedia.
Pertukaran OAuth (cara kerja proses masuk)
Alur proses masuk interaktif OpenClaw diimplementasikan di openclaw/plugin-sdk/llm.ts dan dihubungkan ke wisaya/perintah.
Token penyiapan Anthropic
Bentuk alur:
- mulai token penyiapan atau penempelan token Anthropic dari OpenClaw
- OpenClaw menyimpan kredensial Anthropic yang dihasilkan dalam profil autentikasi
- pemilihan model tetap menggunakan
anthropic/... - profil autentikasi Anthropic yang ada tetap tersedia untuk kontrol pengembalian/pengurutan
OpenAI Codex (OAuth ChatGPT)
OAuth OpenAI Codex secara eksplisit didukung untuk penggunaan di luar Codex CLI, termasuk alur kerja OpenClaw.
Perintah proses masuk menggunakan id penyedia OpenAI kanonis:
openclaw models auth login --provider openaiGunakan --profile-id openai:<name> untuk beberapa akun OAuth ChatGPT/Codex dalam
satu agen. Jangan gunakan openai-codex:<name> untuk profil baru. Doctor memigrasikan
prefiks lama tersebut ke id profil openai:* yang bebas benturan; jalankan
openclaw models auth list --provider openai setelah perbaikan sebelum menyalin
id profil ke auth.order atau /model ...@<profileId>.
Bentuk alur (PKCE):
- buat pemverifikasi/tantangan PKCE dan
stateacak - buka
https://auth.openai.com/oauth/authorize?...(cakupanopenid profile email offline_access) - coba tangkap panggilan balik di
http://localhost:1455/auth/callback(host panggilan balik secara default adalahlocalhostdan hanya menerima host local loopback; ganti denganOPENCLAW_OAUTH_CALLBACK_HOST) - jika Anda dapat menempelkan kode sebelum panggilan balik tiba (atau Anda berada dalam lingkungan jarak jauh/tanpa antarmuka dan panggilan balik tidak dapat mengikat), tempelkan URL/kode pengalihan sebagai gantinya - penempelan manual berlomba dengan panggilan balik peramban dan proses yang selesai lebih dahulu akan digunakan
- tukarkan kode di
https://auth.openai.com/oauth/token - ekstrak
accountIddari token akses dan simpan{ access, refresh, expires, accountId }
Jalur wisaya adalah openclaw onboard → pilihan autentikasi openai.
Penyegaran + kedaluwarsa
Profil menyimpan stempel waktu expires. Pada saat runtime:
- jika
expiresberada di masa mendatang, gunakan token akses yang tersimpan - jika kedaluwarsa, segarkan (di bawah kunci berkas) dan timpa kredensial yang tersimpan
- jika agen sekunder membaca profil OAuth agen utama yang diwarisi, penyegaran ditulis kembali ke penyimpanan agen utama, alih-alih menyalin token penyegaran ke penyimpanan agen sekunder
- kredensial CLI yang dikelola secara eksternal (Claude CLI, bootstrap Codex CLI terbatas; lihat Penampung token) dibaca ulang, alih-alih menggunakan token penyegaran yang disalin. Jika penyegaran terkelola gagal, OpenClaw melaporkan profil yang terdampak untuk autentikasi ulang, alih-alih mengembalikan materi token CLI eksternal.
Alur penyegaran bersifat otomatis; umumnya Anda tidak perlu mengelola token secara manual.
Beberapa akun (profil) + perutean
Dua pola:
1) Disarankan: agen terpisah
Jika Anda ingin akun "pribadi" dan "kerja" tidak pernah berinteraksi, gunakan agen terisolasi (sesi + kredensial + ruang kerja terpisah):
openclaw agents add workopenclaw agents add personalKemudian konfigurasikan autentikasi per agen (wisaya) dan rutekan percakapan ke agen yang tepat.
2) Tingkat lanjut: beberapa profil dalam satu agen
Penyimpanan profil autentikasi mendukung beberapa ID profil untuk penyedia yang sama. Pilih profil yang digunakan:
- secara global melalui pengurutan konfigurasi (
auth.order) - per sesi melalui
/model ...@<profileId>
Contoh (penggantian sesi):
/model Opus@anthropic:work
Cantumkan ID profil yang ada dengan:
openclaw models auth list --provider <id>Dokumentasi terkait:
- Failover model (aturan rotasi + masa jeda)
- Perintah garis miring (permukaan perintah)
Terkait
- Autentikasi - ikhtisar autentikasi penyedia model
- Rahasia - penyimpanan kredensial dan SecretRef
- Referensi Konfigurasi - kunci konfigurasi autentikasi