Skip to main content
OpenShell adalah backend sandbox terkelola: alih-alih menjalankan kontainer Docker secara lokal, OpenClaw mendelegasikan siklus hidup sandbox ke CLI openshell, yang menyediakan lingkungan jarak jauh dan menjalankan perintah melalui SSH. Plugin ini menggunakan kembali transportasi SSH dan jembatan sistem berkas jarak jauh yang sama dengan backend SSH generik, serta menambahkan siklus hidup OpenShell (sandbox create/get/delete/ssh-config) dan mode sinkronisasi ruang kerja mirror opsional.

Prasyarat

  • Plugin OpenShell terinstal (openclaw plugins install @openclaw/openshell-sandbox)
  • CLI openshell tersedia di PATH (atau jalur khusus melalui plugins.entries.openshell.config.command)
  • Akun OpenShell dengan akses sandbox
  • Gateway OpenClaw berjalan di host

Mulai cepat

Mulai ulang Gateway. Pada giliran agen berikutnya, OpenClaw membuat sandbox OpenShell dan merutekan eksekusi alat melaluinya. Verifikasi dengan:

Mode ruang kerja

Ini adalah keputusan OpenShell yang paling penting.

mirror (bawaan)

plugins.entries.openshell.config.mode: "mirror" mempertahankan ruang kerja lokal sebagai sumber kanonis:
  • Sebelum exec, OpenClaw menyinkronkan ruang kerja lokal ke dalam sandbox.
  • Setelah exec, OpenClaw menyinkronkan kembali ruang kerja jarak jauh ke lokal.
  • Alat berkas melewati jembatan sandbox, tetapi ruang kerja lokal tetap menjadi sumber kebenaran di antara giliran.
Paling cocok untuk alur kerja pengembangan: perubahan lokal di luar OpenClaw akan muncul pada exec berikutnya, dan perilaku sandbox mendekati backend Docker. Konsekuensi: biaya unggah + unduh pada setiap giliran exec.

remote

mode: "remote" menjadikan ruang kerja OpenShell sebagai sumber kanonis:
  • Saat sandbox pertama kali dibuat, OpenClaw mengisi ruang kerja jarak jauh dari ruang kerja lokal satu kali.
  • Setelah itu, exec, read, write, edit, dan apply_patch beroperasi langsung pada ruang kerja jarak jauh. OpenClaw tidak menyinkronkan perubahan jarak jauh kembali ke lokal.
  • Pembacaan media saat penyusunan prompt tetap berfungsi (alat berkas/media membaca melalui jembatan sandbox).
Paling cocok untuk agen yang berjalan lama dan CI: overhead per giliran lebih rendah, dan perubahan lokal pada host tidak dapat menimpa keadaan jarak jauh secara diam-diam.
Perubahan berkas pada host di luar OpenClaw setelah pengisian awal tidak terlihat oleh sandbox jarak jauh. Jalankan openclaw sandbox recreate untuk mengisi ulang.

Memilih mode

Referensi konfigurasi

Semua konfigurasi OpenShell berada di bawah plugins.entries.openshell.config: remoteWorkspaceDir dan remoteAgentWorkspaceDir harus berupa jalur absolut dan tetap berada di bawah akar terkelola /sandbox atau /agent; jalur absolut lainnya ditolak. Pengaturan tingkat sandbox (mode, scope, workspaceAccess) berada di bawah agents.defaults.sandbox seperti backend lainnya. Lihat Sandboxing untuk matriks lengkap.

Contoh

Penyiapan remote minimal

Mode mirror dengan GPU

OpenShell per agen dengan Gateway khusus

Pengelolaan siklus hidup

Untuk mode remote, pembuatan ulang sangat penting: tindakan ini menghapus ruang kerja jarak jauh kanonis untuk cakupan tersebut, dan penggunaan berikutnya akan mengisi ruang kerja baru dari ruang kerja lokal. Untuk mode mirror, pembuatan ulang terutama mengatur ulang lingkungan eksekusi jarak jauh karena ruang kerja lokal tetap kanonis. Buat ulang setelah mengubah salah satu dari:
  • agents.defaults.sandbox.backend
  • plugins.entries.openshell.config.from
  • plugins.entries.openshell.config.mode
  • plugins.entries.openshell.config.policy

Penguatan keamanan

Jembatan sistem berkas mode mirror menyematkan akar ruang kerja lokal dan memeriksa ulang jalur kanonis (melalui realpath) sebelum setiap operasi baca, tulis, mkdir, hapus, dan ganti nama, serta menolak symlink di tengah jalur. Pertukaran symlink atau ruang kerja yang dipasang ulang tidak dapat mengalihkan akses berkas ke luar pohon yang dicerminkan.

Batasan saat ini

  • Browser sandbox tidak didukung pada backend OpenShell.
  • sandbox.docker.binds tidak berlaku untuk OpenShell; pembuatan sandbox gagal jika bind dikonfigurasi.
  • Opsi runtime khusus Docker di bawah sandbox.docker.* (selain env) hanya berlaku untuk backend Docker.

Cara kerjanya

  1. OpenClaw menjalankan sandbox get untuk nama sandbox (dengan --gateway/--gateway-endpoint yang dikonfigurasi); jika gagal, OpenClaw membuatnya dengan sandbox create, meneruskan --name, --from, --policy jika diatur, --gpu jika diaktifkan, --auto-providers/--no-auto-providers, dan satu flag --provider untuk setiap penyedia yang dikonfigurasi.
  2. OpenClaw menjalankan sandbox ssh-config untuk nama sandbox guna mengambil detail koneksi SSH.
  3. Inti menulis konfigurasi SSH ke berkas sementara dan membuka sesi SSH melalui jembatan sistem berkas jarak jauh yang sama dengan backend SSH generik.
  4. Dalam mode mirror: sinkronkan lokal ke jarak jauh sebelum exec, jalankan, lalu sinkronkan kembali setelahnya.
  5. Dalam mode remote: isi satu kali saat pembuatan, lalu operasikan langsung pada ruang kerja jarak jauh.

Terkait