Langsung ke konten
Panduan

Keluar dari sandbox dengan sengaja

Apa yang benar-benar diubah mode elevated di OpenClaw, apa beda keempat direktifnya, dan mengapa gerbang global, gerbang per agen, dan daftar izin pengirim harus lolos semuanya sebelum satu perintah pun keluar dari kotak

7 menit baca

Menempatkan agen di sandbox mudah diputuskan tetapi lebih sulit dijalani, karena begitu tugas yang sungguhan membutuhkan sesuatu di luar kotak, Anda memerlukan cara untuk mengeluarkannya yang disengaja, bukan kebetulan. Mode elevated adalah jawaban OpenClaw untuk itu. Mode ini tidak mengubah apa pun bagi agen yang tidak pernah di-sandbox, dan bagi agen yang di-sandbox, mode ini membuka jalur yang sempit dan berpenjaga menuju host. Gerbang-gerbangnya layak dibaca dengan saksama, karena beberapa di antaranya harus selaras sebelum satu perintah pun bergerak.

Apa yang dilakukan mode elevated

  • Mode elevated memungkinkan agen yang berada di sandbox keluar dari sandboxing biasa yang dikonfigurasi pada agen dan menjalankan perintah di luar sandbox, dengan gerbang persetujuan yang tetap dapat dikonfigurasi.
  • Mode ini hanya mengubah perilaku jika agen berada di sandbox, karena agen tanpa sandbox sudah menjalankan perintah shell-nya di host.
  • Host efektifnya adalah Gateway secara default, dan baru menjadi node jika target exec yang dikonfigurasi atau target exec sesi memang sudah berupa node, sehingga elevasi bukanlah override lintas host.
  • Empat direktif tersedia per sesi: level on yang tetap mempertahankan persetujuan, level ask yang merupakan aliasnya, level full yang dapat melewati persetujuan, dan level off yang kembali ke eksekusi yang terkurung di sandbox.
Sesi yang peran pembuatnya mewajibkan sandbox tidak dapat menggunakan mode elevated untuk melarikan diri.

Gerbang yang harus selaras

Ketersediaan adalah konjungsi, bukan sakelar. Gerbang global harus aktif, dan pengirim harus tercantum di daftar izin untuk salurannya, yang disimpan sebagai daftar pengenal per saluran. Gerbang per agen hanya dapat membatasi lebih lanjut, jadi gerbang global maupun gerbang per agen harus aktif agar agen memenuhi syarat. Daftar izin per agen bekerja dengan cara yang sama, dan pengirim harus cocok dengan daftar global sekaligus daftar per agen. Plugin saluran dapat menyediakan daftar izin fallback melalui hook adaptor SDK, tetapi saat ini belum ada saluran bawaan yang mengimplementasikan hook tersebut, jadi dalam praktiknya setiap penyedia memerlukan entri daftar izin eksplisitnya sendiri. Jika satu gerbang saja gagal, elevated dianggap tidak tersedia, bukan diberikan sebagian. Entrinya sendiri dapat berupa pengenal biasa, yang cocok dengan ID pengirim, nomor E.164, atau kolom From, atau dapat membawa prefiks yang menargetkan nama tampilan, nama pengguna, atau tag, dengan prefiks identitas eksplisit yang tersedia saat Anda perlu menghindari ambiguitas. Ada juga satu ketergantungan yang lebih tersembunyi, karena perintah chat bash berada di balik flag-nya sendiri dan juga mewajibkan elevated diaktifkan, sehingga mematikan elevated juga mengunci pesan-pesan shell tersebut.

Level dan prioritas

  • Pesan yang hanya berisi direktif menetapkan default sesi, sedangkan direktif yang sama yang digunakan secara inline di depan permintaan hanya berlaku untuk pesan itu saja.
  • Resolusi dimulai dari direktif inline, lalu override sesi, lalu default global yang ditetapkan di konfigurasi.
  • Dalam mode full, persetujuan hanya dilewati jika mode exec dan kebijakan persetujuan host yang telah di-resolve memang sudah sepenuhnya permisif, dan pada level on dan ask, aturan persetujuan yang dikonfigurasi selalu berlaku.

Mode elevated mengasumsikan Anda sudah memiliki sandbox Gateway yang layak ditinggalkan, dan mengasumsikan Anda sudah memutuskan apa yang boleh dilakukan sebuah perintah setelah sampai di tujuan, yang merupakan tugas persetujuan exec. Keduanya bukan hal yang digantikan oleh elevasi.

Mengapa batasannya bertahan

Desainnya memperlakukan elevasi sebagai tuas pada satu sumbu saja, dan menolak membiarkannya menjadi override umum. Jika kebijakan alat menolak alat exec sepenuhnya, elevasi tidak dapat mengembalikannya, karena keduanya menjawab pertanyaan yang berbeda dan yang lebih ketat yang menang. Jika peran operator dari pembuat sesi yang terautentikasi mewajibkan sandbox, elevasi sama sekali tidak dapat menjalankan perintah di Gateway atau di node, sehingga keputusan operator tetap berada di atas direktif chat. Pemilihan host diperlakukan dengan cara yang sama, sehingga target otomatis tidak berubah menjadi kebebasan memilih mesin. Memisahkan gerbang-gerbang ini itulah yang membuat komposisinya dapat diprediksi, dan dokumentasi memiliki halaman tentang bagaimana ketiganya berinteraksi pada saat pemanggilan alat, yang layak dibaca sekali secara utuh (cara ketiga gerbang itu berpadu). Direktif exec yang terkait adalah tuas yang berbeda lagi, yang menyesuaikan default exec per sesi untuk pengirim yang berwenang tanpa memerlukan elevasi sama sekali. Secara keseluruhan, aturan-aturan ini berarti mengaktifkan elevasi memperluas tepat satu hal dan membiarkan setiap batas lainnya tetap di tempatnya.

Di Diali

Di Diali, setiap pelanggan menjalankan asistennya sendiri, dan konfigurasi runtime untuk OpenClaw yang di-hosting di Diali dibuat dari dasbor dan diganti pada setiap rilis. Jika Anda ingin melihat di mana batas-batasnya berada sebelum memperluas salah satunya, mulailah dari halaman keamanan Diali kami.

  • Elevated tidak mengubah apa pun kecuali agen benar-benar berada di sandbox.
  • Setiap gerbang harus lolos: global, per agen, dan daftar izin untuk saluran tersebut.
  • Hanya level full yang melewati persetujuan, dan hanya jika kebijakannya sudah permisif.
Mulai sekarang

Berhenti membaca, buat agen Anda sendiri

Siapkan agen, pilih saluran, dan biarkan ia bekerja di dalam aplikasi yang sudah selalu Anda buka.