Gateway
Lingkungan terisolasi vs kebijakan alat vs hak istimewa yang ditingkatkan
OpenClaw memiliki tiga kontrol yang terkait (tetapi berbeda):
- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) menentukan di mana alat berjalan (backend sandbox vs host). - Kebijakan alat (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) menentukan alat mana yang tersedia/diizinkan. - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) adalah jalan keluar khusus exec untuk berjalan di luar sandbox saat Anda berada dalam sandbox (gatewaysecara default, ataunodesaat target exec dikonfigurasi kenode).
Debug cepat
Gunakan pemeriksa untuk melihat apa yang sebenarnya dilakukan OpenClaw:
openclaw sandbox explain
openclaw sandbox explain --session agent:main:main
openclaw sandbox explain --agent work
openclaw sandbox explain --json
Ini mencetak:
- mode/cakupan/akses workspace sandbox yang efektif
- apakah sesi saat ini berada dalam sandbox (main vs non-main)
- allow/deny alat sandbox yang efektif (dan apakah berasal dari agen/global/default)
- gate elevated dan jalur kunci perbaikan
Sandbox: tempat alat berjalan
Sandboxing dikontrol oleh agents.defaults.sandbox.mode:
"off": semuanya berjalan di host."non-main": hanya sesi non-main yang berada dalam sandbox (sumber "kejutan" umum untuk grup/channel)."all": semuanya berada dalam sandbox.
Lihat Sandboxing untuk matriks lengkap (cakupan, mount workspace, image).
Bind mount (pemeriksaan keamanan cepat)
docker.bindsmenembus filesystem sandbox: apa pun yang Anda mount terlihat di dalam container dengan mode yang Anda tetapkan (:roatau:rw).- Default-nya adalah read-write jika Anda menghilangkan mode; lebih baik gunakan
:rountuk source/secret. scope: "shared"mengabaikan bind per agen (hanya bind global yang berlaku).- OpenClaw memvalidasi sumber bind dua kali: pertama pada jalur sumber yang sudah dinormalisasi, lalu sekali lagi setelah me-resolve melalui ancestor terdalam yang sudah ada. Escape melalui symlink-parent tidak melewati pemeriksaan blocked-path atau allowed-root.
- Jalur leaf yang belum ada tetap diperiksa dengan aman. Jika
/workspace/alias-out/new-filedi-resolve melalui parent symlink ke jalur yang diblokir atau ke luar allowed root yang dikonfigurasi, bind akan ditolak. - Mem-bind
/var/run/docker.socksecara efektif memberikan kontrol host ke sandbox; lakukan ini hanya secara sengaja. - Akses workspace (
workspaceAccess: "ro"/"rw") independen dari mode bind.
Kebijakan alat: alat mana yang ada/dapat dipanggil
Ada dua lapisan yang penting:
- Profil alat:
tools.profiledanagents.list[].tools.profile(allowlist dasar) - Profil alat penyedia:
tools.byProvider[provider].profiledanagents.list[].tools.byProvider[provider].profile - Kebijakan alat global/per agen:
tools.allow/tools.denydanagents.list[].tools.allow/agents.list[].tools.deny - Kebijakan alat penyedia:
tools.byProvider[provider].allow/denydanagents.list[].tools.byProvider[provider].allow/deny - Kebijakan alat sandbox (hanya berlaku saat berada dalam sandbox):
tools.sandbox.tools.allow/tools.sandbox.tools.denydanagents.list[].tools.sandbox.tools.*
Aturan praktis:
denyselalu menang.- Jika
allowtidak kosong, semua yang lain dianggap diblokir. - Kebijakan alat adalah penghenti keras:
/exectidak dapat mengesampingkan alatexecyang ditolak. /exechanya mengubah default sesi untuk pengirim yang berwenang; ini tidak memberikan akses alat. Kunci alat penyedia menerimaprovider(misalnyagoogle-antigravity) atauprovider/model(misalnyaopenai/gpt-5.4).
Grup alat (singkatan)
Kebijakan alat (global, agen, sandbox) mendukung entri group:* yang diperluas menjadi beberapa alat:
{
tools: {
sandbox: {
tools: {
allow: ["group:runtime", "group:fs", "group:sessions", "group:memory"],
},
},
},
}
Grup yang tersedia:
group:runtime:exec,process,code_execution(bashditerima sebagai alias untukexec)group:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,sessions_yield,subagents,session_statusgroup:memory:memory_search,memory_getgroup:web:web_search,x_search,web_fetchgroup:ui:browser,canvasgroup:automation:heartbeat_respond,cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:agents:agents_list,update_plangroup:media:image,image_generate,music_generate,video_generate,ttsgroup:openclaw: semua alat bawaan OpenClaw (tidak termasuk Plugin penyedia)
Elevated: khusus exec "jalankan di host"
Elevated tidak memberikan alat tambahan; ini hanya memengaruhi exec.
- Jika Anda berada dalam sandbox,
/elevated on(atauexecdenganelevated: true) berjalan di luar sandbox (approval mungkin tetap berlaku). - Gunakan
/elevated fulluntuk melewati approval exec untuk sesi tersebut. - Jika Anda sudah berjalan langsung, elevated secara efektif tidak melakukan apa-apa (tetap melalui gate).
- Elevated tidak dibatasi cakupan Skills dan tidak mengesampingkan allow/deny alat.
- Elevated tidak memberikan override lintas-host arbitrer dari
host=auto; ini mengikuti aturan target exec normal dan hanya mempertahankannodesaat target yang dikonfigurasi/sesi sudahnode. /execterpisah dari elevated. Ini hanya menyesuaikan default exec per sesi untuk pengirim yang berwenang.
Gate:
- Pengaktifan:
tools.elevated.enabled(dan opsionalagents.list[].tools.elevated.enabled) - Allowlist pengirim:
tools.elevated.allowFrom.<provider>(dan opsionalagents.list[].tools.elevated.allowFrom.<provider>)
Lihat Mode Elevated.
Perbaikan umum "penjara sandbox"
"Alat X diblokir oleh kebijakan alat sandbox"
Kunci perbaikan (pilih salah satu):
- Nonaktifkan sandbox:
agents.defaults.sandbox.mode=off(atau per agenagents.list[].sandbox.mode=off) - Izinkan alat di dalam sandbox:
- hapus dari
tools.sandbox.tools.deny(atau per agenagents.list[].tools.sandbox.tools.deny) - atau tambahkan ke
tools.sandbox.tools.allow(atau allow per agen)
- hapus dari
"Saya kira ini main, mengapa ini berada dalam sandbox?"
Dalam mode "non-main", kunci grup/channel bukan main. Gunakan kunci sesi main (ditampilkan oleh sandbox explain) atau ubah mode ke "off".
Terkait
- Sandboxing -- referensi sandbox lengkap (mode, cakupan, backend, image)
- Sandbox & Alat Multi-Agen -- override per agen dan presedensi
- Mode Elevated