CLI commands
CLI แซนด์บ็อกซ์
จัดการรันไทม์แซนด์บ็อกซ์สำหรับการดำเนินการเอเจนต์แบบแยกส่วนอย่างโดดเดี่ยว
ภาพรวม
OpenClaw สามารถเรียกใช้เอเจนต์ในรันไทม์แซนด์บ็อกซ์แบบแยกส่วนอย่างโดดเดี่ยวเพื่อความปลอดภัยได้ คำสั่ง sandbox ช่วยให้คุณตรวจสอบและสร้างรันไทม์เหล่านั้นใหม่หลังจากการอัปเดตหรือการเปลี่ยนแปลงการกำหนดค่า
ปัจจุบันโดยทั่วไปหมายถึง:
- คอนเทนเนอร์แซนด์บ็อกซ์ Docker
- รันไทม์แซนด์บ็อกซ์ SSH เมื่อ
agents.defaults.sandbox.backend = "ssh" - รันไทม์แซนด์บ็อกซ์ OpenShell เมื่อ
agents.defaults.sandbox.backend = "openshell"
สำหรับ ssh และ OpenShell remote การสร้างใหม่สำคัญกว่ากรณี Docker:
- เวิร์กสเปซระยะไกลเป็นแหล่งอ้างอิงหลักหลังจากการเริ่มต้น seed ครั้งแรก
openclaw sandbox recreateจะลบเวิร์กสเปซระยะไกลหลักนั้นสำหรับขอบเขตที่เลือก- การใช้งานครั้งถัดไปจะ seed อีกครั้งจากเวิร์กสเปซภายในเครื่องปัจจุบัน
คำสั่ง
openclaw sandbox explain
ตรวจสอบโหมด/ขอบเขต/การเข้าถึงเวิร์กสเปซของแซนด์บ็อกซ์ที่มีผลจริง นโยบายเครื่องมือแซนด์บ็อกซ์ และเกตการยกระดับสิทธิ์ พร้อมเส้นทางคีย์การกำหนดค่าสำหรับแก้ไข
openclaw sandbox explainopenclaw sandbox explain --session agent:main:mainopenclaw sandbox explain --agent workopenclaw sandbox explain --jsonopenclaw sandbox list
แสดงรันไทม์แซนด์บ็อกซ์ทั้งหมดพร้อมสถานะและการกำหนดค่า
openclaw sandbox listopenclaw sandbox list --browser # List only browser containersopenclaw sandbox list --json # JSON outputผลลัพธ์ประกอบด้วย:
- ชื่อและสถานะของรันไทม์
- แบ็กเอนด์ (
docker,openshellฯลฯ) - ป้ายกำกับการกำหนดค่าและระบุว่าตรงกับการกำหนดค่าปัจจุบันหรือไม่
- อายุ (เวลาตั้งแต่สร้าง)
- เวลาว่าง (เวลาตั้งแต่ใช้งานครั้งล่าสุด)
- เซสชัน/เอเจนต์ที่เกี่ยวข้อง
openclaw sandbox recreate
ลบรันไทม์แซนด์บ็อกซ์เพื่อบังคับให้สร้างใหม่ด้วยการกำหนดค่าที่อัปเดตแล้ว
openclaw sandbox recreate --all # Recreate all containersopenclaw sandbox recreate --session main # Specific sessionopenclaw sandbox recreate --agent mybot # Specific agentopenclaw sandbox recreate --browser # Only browser containersopenclaw sandbox recreate --all --force # Skip confirmationตัวเลือก:
--all: สร้างคอนเทนเนอร์แซนด์บ็อกซ์ทั้งหมดใหม่--session <key>: สร้างคอนเทนเนอร์สำหรับเซสชันที่ระบุใหม่--agent <id>: สร้างคอนเทนเนอร์สำหรับเอเจนต์ที่ระบุใหม่--browser: สร้างเฉพาะคอนเทนเนอร์เบราว์เซอร์ใหม่--force: ข้ามพรอมป์ยืนยัน
กรณีการใช้งาน
หลังจากอัปเดตอิมเมจ Docker
# Pull new imagedocker pull openclaw-sandbox:latestdocker tag openclaw-sandbox:latest openclaw-sandbox:bookworm-slim # Update config to use new image# Edit config: agents.defaults.sandbox.docker.image (or agents.list[].sandbox.docker.image) # Recreate containersopenclaw sandbox recreate --allหลังจากเปลี่ยนการกำหนดค่าแซนด์บ็อกซ์
# Edit config: agents.defaults.sandbox.* (or agents.list[].sandbox.*) # Recreate to apply new configopenclaw sandbox recreate --allหลังจากเปลี่ยนเป้าหมาย SSH หรือข้อมูลรับรอง SSH
# Edit config:# - agents.defaults.sandbox.backend# - agents.defaults.sandbox.ssh.target# - agents.defaults.sandbox.ssh.workspaceRoot# - agents.defaults.sandbox.ssh.identityFile / certificateFile / knownHostsFile# - agents.defaults.sandbox.ssh.identityData / certificateData / knownHostsData openclaw sandbox recreate --allสำหรับแบ็กเอนด์หลัก ssh การสร้างใหม่จะลบรากเวิร์กสเปซระยะไกลตามขอบเขตบนเป้าหมาย SSH การรันครั้งถัดไปจะ seed อีกครั้งจากเวิร์กสเปซภายในเครื่อง
หลังจากเปลี่ยนแหล่งที่มา นโยบาย หรือโหมดของ OpenShell
# Edit config:# - agents.defaults.sandbox.backend# - plugins.entries.openshell.config.from# - plugins.entries.openshell.config.mode# - plugins.entries.openshell.config.policy openclaw sandbox recreate --allสำหรับโหมด OpenShell remote การสร้างใหม่จะลบเวิร์กสเปซระยะไกลหลักสำหรับขอบเขตนั้น การรันครั้งถัดไปจะ seed อีกครั้งจากเวิร์กสเปซภายในเครื่อง
หลังจากเปลี่ยน setupCommand
openclaw sandbox recreate --all# or just one agent:openclaw sandbox recreate --agent familyสำหรับเอเจนต์ที่ระบุเท่านั้น
# Update only one agent's containersopenclaw sandbox recreate --agent alfredเหตุผลที่จำเป็น
เมื่อคุณอัปเดตการกำหนดค่าแซนด์บ็อกซ์:
- รันไทม์ที่มีอยู่จะยังคงทำงานด้วยการตั้งค่าเดิม
- รันไทม์จะถูก prune หลังจากไม่มีการใช้งาน 24 ชั่วโมงเท่านั้น
- เอเจนต์ที่ใช้งานเป็นประจำจะทำให้รันไทม์เดิมยังคงทำงานอยู่ไม่มีกำหนด
ใช้ openclaw sandbox recreate เพื่อบังคับลบรันไทม์เดิม รันไทม์เหล่านั้นจะถูกสร้างใหม่โดยอัตโนมัติด้วยการตั้งค่าปัจจุบันเมื่อจำเป็นต้องใช้งานครั้งถัดไป
การย้ายรีจิสทรี
OpenClaw จัดเก็บเมตาดาต้ารันไทม์แซนด์บ็อกซ์เป็นชาร์ด JSON หนึ่งรายการต่อคอนเทนเนอร์/รายการเบราว์เซอร์ภายใต้ไดเรกทอรีสถานะแซนด์บ็อกซ์ การติดตั้งรุ่นเก่าอาจยังมีไฟล์เดิมแบบรวมศูนย์:
~/.openclaw/sandbox/containers.json~/.openclaw/sandbox/browsers.json
การอ่านรันไทม์แซนด์บ็อกซ์ตามปกติจะไม่เขียนไฟล์เหล่านั้นใหม่ เรียกใช้ openclaw doctor --fix เพื่อย้ายรายการเดิมที่ถูกต้องเข้าสู่ไดเรกทอรีรีจิสทรีแบบชาร์ด ไฟล์เดิมที่ไม่ถูกต้องจะถูกกักกัน เพื่อไม่ให้รีจิสทรีเก่าที่เสียเพียงไฟล์เดียวซ่อนรายการรันไทม์ปัจจุบันได้
การกำหนดค่า
การตั้งค่าแซนด์บ็อกซ์อยู่ใน ~/.openclaw/openclaw.json ภายใต้ agents.defaults.sandbox (การกำหนดทับสำหรับแต่ละเอเจนต์อยู่ใน agents.list[].sandbox):
{ "agents": { "defaults": { "sandbox": { "mode": "all", // off, non-main, all "backend": "docker", // docker, ssh, openshell "scope": "agent", // session, agent, shared "docker": { "image": "openclaw-sandbox:bookworm-slim", "containerPrefix": "openclaw-sbx-", // ... more Docker options }, "prune": { "idleHours": 24, // Auto-prune after 24h idle "maxAgeDays": 7, // Auto-prune after 7 days }, }, }, },}ที่เกี่ยวข้อง
- ข้อมูลอ้างอิง CLI
- การใช้แซนด์บ็อกซ์
- เวิร์กสเปซของเอเจนต์
- Doctor: ตรวจสอบการตั้งค่าแซนด์บ็อกซ์