Scope operator OpenClaw
Scope read, write, admin, pairing, approvals, questions, dan talk, peran operator bernama dengan kebijakan sesi, agen, scope, dan sandbox, pemberian scope berbasis identitas, gerbang di tingkat metode, dan persetujuan penyandingan yang tidak dapat menerbitkan lebih dari yang dimiliki pemberi persetujuan
Setiap klien WebSocket gateway terhubung dengan sebuah peran, operator atau node, lalu setiap metode operator memeriksa sebuah scope. Halaman scope adalah peta gerbang kedua tersebut: arti setiap scope, cara peran bernama membatasinya, cara identitas terverifikasi memperolehnya, dan alasan menyetujui akses orang lain tidak pernah memberikan lebih dari yang Anda miliki sendiri. Halaman itu juga menegaskan bahwa semua ini bukan isolasi tenant.
Peran dan tingkat scope
- operator adalah peran control plane untuk CLI, Control UI, otomatisasi, dan helper tepercaya, sedangkan node adalah peran host kapabilitas untuk macOS, iOS, Android, dan host headless yang mengekspos perintah melalui node.invoke; metode RPC operator memerlukan peran operator, dan metode yang berasal dari node memerlukan peran node.
- operator.read mencakup status, daftar, katalog, log, pembacaan sesi, dan diagnostik audit yang disimpan; operator.write mencakup pengiriman pesan, pemanggilan alat, pengaturan talk dan suara, serta relay perintah node, dan juga memenuhi read; operator.admin memenuhi setiap scope operator dan diperlukan untuk mengubah konfigurasi, pembaruan, hook native, namespace yang dicadangkan, dan persetujuan berisiko tinggi.
- operator.pairing mengelola penyandingan perangkat dan node, operator.approvals mengelola API persetujuan exec dan plugin, operator.questions mengelola pertanyaan interaktif, operator.talk membuat, mengarahkan, dan menutup sesi Talk tanpa akses tulis umum (write juga memenuhinya), dan operator.talk.secrets membaca konfigurasi Talk beserta rahasianya; scope baru yang belum dikenal di masa depan memerlukan kecocokan persis kecuali pemanggil sudah memiliki admin.
- Pengelolaan koneksi GitHub pribadi adalah satu-satunya pengecualian yang berlingkup diri sendiri terhadap perilaku baca-saja: ia memerlukan operator.read ditambah profil persisten terautentikasi yang persis sama, sehingga seseorang hanya dapat menghubungkan, memeriksa (poll), atau memutus akunnya sendiri, sementara perubahan GitHub tingkat sistem dan per agen tetap memerlukan admin, dan publikasi tetap memerlukan write ditambah otorisasi sesi.
Scope operator membatasi apa yang dapat dilakukan klien Gateway setelah terautentikasi.
Peran bernama dan pemberian berbasis identitas
Gateway tim mengikat profil persisten yang terautentikasi ke peran bernama di bawah gateway.roles, masing-masing menggabungkan empat kebijakan tertutup: akses ke sesi orang lain (none, view, suggest, atau write), agen yang tersedia untuk pembuatan sesi dan eksekusi (daftar, tanda bintang, atau array kosong), set scope maksimum, dan apakah sesi baru wajib menggunakan sandbox. users.setRole menetapkan peran dan langsung menutup koneksi profil tersebut, gateway.roles.default wajib ada begitu peran dibuat, dan saat peran dikonfigurasi, operator yang diautentikasi lewat identitas tidak lagi menerima token perangkat atau token bootstrap yang dapat digunakan ulang, karena token tersebut tidak terikat pada seseorang. Sandbox yang diwajibkan diisolasi per pembuat sesi, menurunkan ruang kerja baca-tulis menjadi baca-saja disertai peringatan, dicap secara permanen dengan identitas pembuatnya sebelum eksekusi pertama, diwarisi oleh turunan yang didelegasikan, tidak pernah beralih ke gateway atau node, dan tidak dapat dilewati oleh mode elevated, override host exec, atau target host yang dikonfigurasi. Selanjutnya, gateway.auth.identityScopes memberikan scope kepada identitas terverifikasi dari autentikasi trusted-proxy atau Tailscale WhoIs, dengan kunci email dicocokkan tanpa membedakan huruf besar-kecil; koneksi token, kata sandi, dan tanpa autentikasi tidak membawa identitas dan tidak menerima pemberian apa pun, begitu pula koneksi node, yang tidak pernah menerimanya.
Gerbang metode dan yang menyusul
- Setiap RPC memiliki scope metode dengan hak akses minimum yang ditentukan sebelum dispatch: agent memerlukan write untuk giliran biasa dan admin untuk perintah siklus hidup new atau reset; node.invoke memerlukan write untuk relay biasa dan admin saat me-relay proxy browser, daftar direktori, atau unggahan terminal ke node; sessions.create memerlukan write untuk pembuatan biasa dan admin untuk sesi incognito atau execNode apa pun; dispatch dan pemindahan sesi menurunkan scope-nya dari target, write untuk perangkat dan admin untuk profil.
- Handler kemudian menerapkan pemeriksaan yang lebih ketat pada objek konkretnya: device.pair.approve dapat dijangkau dengan pairing, tetapi menyetujui perangkat operator hanya dapat menerbitkan atau mempertahankan scope yang sudah dimiliki pemanggil, node.pair.approve menurunkan scope tambahan dari perintah yang dideklarasikan node yang tertunda (write untuk perintah biasa, admin untuk system.run, proxy browser, daftar direktori, atau perintah persetujuan exec), dan perintah chat config set dan unset memerlukan admin di atas chat send.
- Otoritas koneksi ditentukan secara berurutan: header x-openclaw-scopes terlebih dahulu membatasi permintaan pendaftaran atau peningkatan perangkat, pemberian identitas sisi server yang cocok digabungkan (union), header tersebut lalu membatasi gabungan akhir (tidak ada header berarti tanpa batas, ada tetapi kosong berarti tanpa scope), dan peran bernama yang berlaku mengambil irisan hasil tersebut dengan batas atasnya; hasil tersebut menjadi masukan bagi hello.auth.scopes sekaligus otorisasi metode.
Penyandingan OpenClaw adalah tempat persetujuan ini diajukan, dan kontrol keamanan gateway OpenClaw adalah rangkaian kontrol yang lebih luas tempat scope ini berada.
Apa yang bukan fungsi scope
Halaman ini mengulang satu batas di beberapa tempat: scope adalah pagar pengaman control plane di dalam satu domain operator gateway yang tepercaya, bukan isolasi multi-tenant terhadap pihak yang saling tidak tepercaya. Peran bernama mengatur kolaborasi di dalam domain tersebut; metode audit diagnostik tetap menjadi permukaan baca bersama di domain itu yang tidak difilter berdasarkan peran sesi; operator.write tetap mengizinkan pemanggilan alat dan relay node di seluruh gateway; dan autentikasi token atau kata sandi dengan rahasia bersama diperlakukan sebagai akses operator tepercaya yang memulihkan set scope default penuh pada permukaan yang kompatibel dengan OpenAI, rute pemanggilan alat, dan endpoint riwayat sesi, bahkan saat pemanggil mendeklarasikan scope yang lebih sempit. Untuk pemisahan yang kuat antara orang, tim, atau mesin, jawabannya adalah gateway terpisah di bawah pengguna OS atau host yang terpisah. Penjelasan sandbox OpenClaw menjelaskan sandbox per pembuat yang dapat diwajibkan oleh sebuah peran, dan API HTTP OpenClaw yang kompatibel dengan OpenAI menjelaskan permukaan HTTP tempat aturan rahasia bersama berlaku.
Di Diali
Di Diali, setiap pelanggan menjalankan gateway-nya sendiri, yaitu pemisahan yang direkomendasikan dokumentasi, dengan konfigurasi runtime yang dibuat dari dasbor dan diganti di setiap rilis. OpenClaw yang di-hosting di Diali menjelaskan asisten yang di-hosting, dan keamanan Diali menjelaskan batas di sekitar setiap runtime.
- Write mencakup read dan talk; admin mencakup semuanya.
- Persetujuan tidak pernah menerbitkan scope yang tidak dimiliki pemberi persetujuan.
- Scope adalah pagar pengaman, bukan isolasi tenant; isolasi berasal dari gateway yang terpisah.
Berhenti membaca, buat agen Anda sendiri
Siapkan agen, pilih saluran, dan biarkan ia bekerja di dalam aplikasi yang sudah selalu Anda buka.
