Skip to main content
Setiap agen dalam penyiapan multiagen dapat mengganti kebijakan sandbox dan alat global. Halaman ini membahas konfigurasi per agen, aturan prioritas, dan contoh.

Sandbox

Backend dan mode — referensi lengkap sandbox.

Sandbox vs kebijakan alat vs elevated

Debug “mengapa ini diblokir?”

Mode elevated

Eksekusi elevated untuk pengirim tepercaya.
Autentikasi dicakup per agen: setiap agen memiliki penyimpanan autentikasi agentDir sendiri di ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. Jangan pernah menggunakan kembali agentDir pada agen yang berbeda. Agen dapat membaca profil autentikasi agen default/utama jika tidak memiliki profil lokal, tetapi token penyegaran OAuth tidak dikloning ke penyimpanan agen sekunder. Jika Anda menyalin kredensial secara manual, salin hanya profil statis portabel api_key atau token.

Contoh konfigurasi

Hasil:
  • Agen main: berjalan di host, dengan akses penuh ke alat.
  • Agen family: berjalan di Docker (satu kontainer per agen), hanya dapat menggunakan read dan mengirim pesan dalam percakapan saat ini.
Hasil:
  • agen default mendapatkan alat pengodean.
  • agen support hanya dapat menggunakan perpesanan (+ alat Slack).

Prioritas konfigurasi

Jika konfigurasi global (agents.defaults.*) dan khusus agen (agents.list[].*) tersedia:

Konfigurasi sandbox

Pengaturan khusus agen menggantikan pengaturan global:
agents.list[].sandbox.{docker,browser,prune}.* menggantikan agents.defaults.sandbox.{docker,browser,prune}.* untuk agen tersebut (diabaikan jika cakupan sandbox ditetapkan sebagai "shared").

Pembatasan alat

Urutan pemfilterannya adalah:
1

Profil alat

tools.profile atau agents.list[].tools.profile.
2

Profil alat penyedia

tools.byProvider[provider].profile atau agents.list[].tools.byProvider[provider].profile.
3

Kebijakan alat global

tools.allow / tools.deny.
4

Kebijakan alat penyedia

tools.byProvider[provider].allow/deny.
5

Kebijakan alat khusus agen

agents.list[].tools.allow/deny.
6

Kebijakan penyedia agen

agents.list[].tools.byProvider[provider].allow/deny.
7

Kebijakan alat sandbox

tools.sandbox.tools atau agents.list[].tools.sandbox.tools.
8

Kebijakan alat subagen

tools.subagents.tools, jika berlaku.
  • Setiap tingkat dapat membatasi alat lebih lanjut, tetapi tidak dapat mengizinkan kembali alat yang ditolak pada tingkat sebelumnya.
  • Jika agents.list[].tools.sandbox.tools ditetapkan, nilai tersebut menggantikan tools.sandbox.tools untuk agen tersebut.
  • Jika agents.list[].tools.profile ditetapkan, nilai tersebut menggantikan tools.profile untuk agen tersebut.
  • Kunci alat penyedia menerima provider (misalnya google-antigravity) atau provider/model (misalnya openai/gpt-5.4).
Jika daftar izin eksplisit mana pun dalam rangkaian tersebut membuat proses tidak memiliki alat yang dapat dipanggil, OpenClaw berhenti sebelum mengirimkan prompt ke model. Ini disengaja: agen yang dikonfigurasi dengan alat yang tidak tersedia, seperti agents.list[].tools.allow: ["query_db"], harus gagal secara jelas sampai plugin yang mendaftarkan query_db diaktifkan, bukan berlanjut sebagai agen khusus teks.
Kebijakan alat mendukung bentuk singkat group:* yang diperluas menjadi beberapa alat. Lihat Grup alat untuk daftar lengkap. Penggantian elevated per agen (agents.list[].tools.elevated) dapat membatasi lebih lanjut eksekusi elevated untuk agen tertentu. Lihat Mode elevated untuk detailnya.

Migrasi dari agen tunggal

Kunci konfigurasi lama agents.defaults.*/agents.list[].* (seperti sandbox.perSession, agentRuntime, embeddedPi) dimigrasikan oleh openclaw doctor; selanjutnya, utamakan agents.defaults + agents.list.

Contoh pembatasan alat


Kesalahan umum: “non-main”

agents.defaults.sandbox.mode: "non-main" memeriksa kunci sesi terhadap kunci sesi utama (selalu "main"; session.mainKey tidak dapat dikonfigurasi oleh pengguna, dan OpenClaw memperingatkan serta mengabaikan nilai lainnya), bukan ID agen. Sesi grup/saluran selalu mendapatkan kuncinya sendiri, sehingga diperlakukan sebagai nonutama dan akan ditempatkan dalam sandbox. Jika Anda ingin agar suatu agen tidak pernah menggunakan sandbox, tetapkan agents.list[].sandbox.mode: "off".

Pengujian

Setelah mengonfigurasi sandbox dan alat multiagen:
1

Periksa resolusi agen

2

Verifikasi kontainer sandbox

3

Uji pembatasan alat

  • Kirim pesan yang memerlukan alat terbatas.
  • Verifikasi bahwa agen tidak dapat menggunakan alat yang ditolak.
4

Pantau log


Pemecahan masalah

  • Periksa apakah ada agents.defaults.sandbox.mode global yang menggantikannya.
  • Konfigurasi khusus agen memiliki prioritas, jadi tetapkan agents.list[].sandbox.mode: "all".
  • Periksa urutan pemfilteran lengkap: profil → profil penyedia → kebijakan global → kebijakan penyedia → kebijakan agen → kebijakan penyedia agen → sandbox → subagen.
  • Setiap tingkat hanya dapat membatasi lebih lanjut, bukan memberikan kembali akses.
  • Lihat Sandbox vs kebijakan alat vs elevated untuk penelusuran kesalahan langkah demi langkah.
  • scope bawaan adalah "agent" (satu kontainer per ID agen).
  • Atur scope: "session" untuk satu kontainer per sesi, atau scope: "shared" untuk menggunakan kembali satu kontainer bagi beberapa agen.

Terkait