Relay browser OpenClaw
Mengendalikan browser sungguhan dari agen
Agen Anda dapat mengambil sebuah halaman, tetapi mengambil tidak sama dengan menggunakannya. Tab yang penting sudah dalam keadaan login, berada di laptop di ruangan lain, dan Gateway berjalan di server yang sama sekali berbeda di tempat lain. Jawaban OpenClaw adalah meneruskan aksi browser ke mesin tempat browser itu benar-benar berada, lalu mempertahankannya di sana.
Empat tempat browser dapat berada
- Kontrol lokal, default-nya. Gateway memulai layanan kontrol loopback dan dapat menjalankan browser lokal. Aksi tanpa target seperti open, navigate, atau openclaw browser start dapat menjalankannya; aksi yang menyebut tab berdasarkan targetId, ID tab, atau label tidak pernah memulai browser yang sedang berhenti, karena browser yang baru dimulai tidak mungkin berisi tab tersebut.
- Kontrol jarak jauh melalui node host. Anda menjalankan node host di mesin yang memiliki browser, dan Gateway mem-proxy aksi browser ke sana. Node mengekspos server kontrol browser lokalnya sendiri melalui perintah proxy, sehingga Gateway sama sekali tidak memerlukan biner browser.
- CDP jarak jauh. Setel kunci cdpUrl di bawah profil Anda di browser.profiles, atau browser.cdpUrl lama untuk satu profil, agar terhubung ke browser berbasis Chromium jarak jauh. Dalam hal itu, OpenClaw tidak akan menjalankan browser lokalnya sendiri.
- Layanan loopback attach-only. Untuk layanan CDP yang dikelola secara eksternal dan dipublikasikan di 127.0.0.1, dengan Browserless di Docker sebagai kasus yang umum, setel juga attachOnly: true. CDP loopback tanpa attachOnly diperlakukan sebagai profil lokal yang dikelola OpenClaw, dan OpenClaw dapat melaporkan bahwa port sedang dipakai tetapi tidak dimiliki oleh OpenClaw.
Begitu sebuah aksi mencapai node, snapshot atau pengaturan lanjutannya tetap berada di node itu alih-alih berpindah browser.
Perutean diputuskan sekali, bukan per aksi
Perutean otomatis mengutamakan host, termasuk browser terkelola yang sedang berhenti yang executable-nya sekadar terinstal. Target node yang eksplisit, pemilih node, atau gateway.nodes.browser.node mengesampingkan preferensi itu, sedangkan target=host selalu tetap di host. Pemilik mana pun yang terpilih kemudian memegang semuanya: koneksi existing-session, extension, attach-only, dan CDP jarak jauh menjadi miliknya meskipun tidak ada executable browser terkelola, dan kegagalan saat menjalankan, pengaturan executable yang tidak valid, error izin, serta kegagalan aksi halaman tetap berada pada pemilik itu alih-alih diulang di mesin lain. Peralihan otomatis ke host dari node yang terpilih hanya diizinkan sebelum node itu menangani sebuah permintaan, dan itulah kalimat di atas dalam praktiknya. Inilah yang membuat tugas browser multi-langkah tetap koheren: snapshot yang Anda tindak lanjuti dan ref elemen yang dikembalikannya menggambarkan satu browser, bukan dua.
Batas yang dijaga relay
- Profil berasal dari konfigurasi browser.profiles milik node itu sendiri, persis seperti jika Anda duduk di depan mesin tersebut. Gateway tidak memproyeksikan daftar profilnya sendiri ke node.
- Mutasi profil yang persisten ditolak melalui perintah proxy, apa pun konfigurasinya: create-profile, delete-profile, dan reset-profile diblokir terlepas dari allowProfiles. Lakukan perubahan itu langsung di node.
- nodeHost.browserProxy.allowProfiles bersifat opsional. Jika dibiarkan kosong, setiap profil yang dikonfigurasi tetap dapat dijangkau melalui proxy, yang merupakan perilaku default lama. Jika disetel, OpenClaw memperlakukannya sebagai batas least-privilege yang membatasi nama profil mana yang akan ditargetkan proxy. Untuk mematikan seluruh jalur, gunakan nodeHost.browserProxy.enabled=false di node, atau gateway.nodes.browser.mode=off di Gateway, yang juga menerima auto dan manual.
Agen melihat satu alat untuk keempat susunan itu: satu alat browser yang mencakup doctor, status, start, stop, tabs, open, focus, close, snapshot, screenshot, navigate, act, requests, errors, text, dan emulate, dengan argumen profile untuk memilih browser dan argumen target bernilai sandbox, host, atau node untuk memilih mesin. Verba yang sama dapat berarti hal berbeda di setiap mode. Stop pada profil terkelola lokal mengakhiri proses yang dijalankan OpenClaw, sedangkan pada profil attach-only dan CDP jarak jauh, stop menutup sesi kontrol yang aktif dan melepaskan override emulasi Playwright dan CDP untuk viewport, skema warna, locale, zona waktu, dan mode offline, meskipun OpenClaw tidak pernah menjalankan proses browser di sana. Pengaturan headless mengikuti aturan yang sama, karena hanya memengaruhi profil terkelola lokal yang dijalankan OpenClaw. Daftar aksi lengkap beserta argumennya ada di halaman aksi alat browser, dan apa sebenarnya node host itu, bagaimana ia disandingkan, dan apa lagi yang dapat dibawanya, ada di halaman node browser.
Browser yang di-hosting dan tiga bentuk URL
OpenClaw menerima tiga bentuk URL CDP dan memilih strategi koneksi untuk masing-masing secara otomatis. Basis http:// atau https:// berarti penemuan: OpenClaw memanggil /json/version, membaca URL debugger WebSocket, lalu terhubung, tanpa beralih ke WebSocket. Endpoint ws:// atau wss:// langsung dengan path /devtools/browser, page, worker, shared_worker, atau service_worker melewati /json/version sepenuhnya. Root WebSocket polos tanpa path /devtools, yang diberikan oleh Browserless dan Browserbase, mencoba penemuan HTTP terlebih dahulu dan beralih ke handshake langsung di root jika penemuan tidak mengembalikan apa pun yang dapat dipakai. URL tersebut biasanya membawa otorisasi berupa token di query atau kredensial HTTP Basic, dan OpenClaw mempertahankan autentikasi itu baik saat memanggil endpoint /json/* maupun saat membuka WebSocket CDP, jadi perlakukan seluruh URL sebagai rahasia dan simpan di variabel lingkungan atau secrets manager, bukan di file konfigurasi. Diagnostik menggunakan logika yang sama dengan attach saat runtime, yaitu penemuan dulu lalu beralih ke WebSocket, sehingga root polos yang berhasil terhubung tidak dilaporkan sebagai tidak dapat dijangkau oleh API kontrol browser. Satu-satunya mode browser yang sudah login yang sama sekali tidak memiliki cdpUrl adalah relay ekstensi Chrome, yang relay-nya memiliki endpoint loopback sendiri dan mengendalikan tab sungguhan tanpa ada orang di depan komputer.
Di Diali
Diali meng-hosting OpenClaw sebagai layanan terkelola. Setiap pelanggan mendapatkan asistennya sendiri di runtime-nya sendiri, bukan kursi di pool bersama. Konfigurasi runtime dihasilkan dari dasbor Anda dan ditulis ulang pada setiap rilis, sehingga blok browser yang Anda setel di UI adalah blok yang dipakai agen saat boot. Semua yang disimpan agen berada di volume persisten, dengan snapshot harian dan pemulihan sekali klik yang tersedia melalui add-on Cadangan (sudah termasuk di Max). OpenClaw yang di-hosting di Diali menjelaskan runtime yang di-hosting, dan harga Diali mencantumkan paket-paketnya.
- Node host meneruskan aksi browser ke mesin yang memiliki browser tersebut.
- Begitu sebuah aksi mendarat di node, sisa tugasnya tetap di sana.
- attachOnly mencegah layanan CDP loopback disangka sebagai profil terkelola.
Berhenti membaca, buat agen Anda sendiri
Siapkan agen, pilih saluran, dan biarkan ia bekerja di dalam aplikasi yang sudah selalu Anda buka.
