CLI commands
CLI แซนด์บ็อกซ์
จัดการรันไทม์แซนด์บ็อกซ์สำหรับการเรียกใช้เอเจนต์แบบแยกสภาพแวดล้อม: คอนเทนเนอร์ Docker, เป้าหมาย SSH หรือแบ็กเอนด์ OpenShell
คำสั่ง
openclaw sandbox list
แสดงรายการรันไทม์แซนด์บ็อกซ์ พร้อมสถานะ แบ็กเอนด์ การตรงกันของการกำหนดค่า อายุ เวลาที่ไม่ได้ใช้งาน และเซสชัน/เอเจนต์ที่เกี่ยวข้อง
openclaw sandbox listopenclaw sandbox list --browser # เฉพาะคอนเทนเนอร์เบราว์เซอร์openclaw sandbox list --jsonopenclaw sandbox recreate
ลบรันไทม์แซนด์บ็อกซ์เพื่อบังคับให้สร้างใหม่ด้วยการกำหนดค่าปัจจุบัน รันไทม์จะถูกสร้างใหม่โดยอัตโนมัติในครั้งถัดไปที่ใช้งานเอเจนต์
openclaw sandbox recreate --allopenclaw sandbox recreate --agent mybot # รวมเซสชันย่อย agent:mybot:*openclaw sandbox recreate --session "agent:main:main"openclaw sandbox recreate --browser --all # เฉพาะคอนเทนเนอร์เบราว์เซอร์openclaw sandbox recreate --all --force # ข้ามการยืนยันตัวเลือก:
--all: สร้างคอนเทนเนอร์แซนด์บ็อกซ์ทั้งหมดใหม่--session <key>: สร้างรันไทม์ที่มีคีย์ขอบเขตตรงกันทุกประการนี้ใหม่ (ตามที่แสดงโดยsandbox list); ไม่มีการขยายชื่อแบบสั้น--agent <id>: สร้างรันไทม์สำหรับเอเจนต์หนึ่งตัวใหม่ (ตรงกับagent:<id>และagent:<id>:*)--browser: มีผลเฉพาะกับคอนเทนเนอร์เบราว์เซอร์--force: ข้ามข้อความแจ้งให้ยืนยัน
ระบุเพียงหนึ่งตัวเลือกจาก --all, --session หรือ --agent
สำหรับ ssh และ OpenShell remote การสร้างใหม่มีความสำคัญมากกว่า Docker: พื้นที่ทำงานระยะไกลจะเป็นแหล่งข้อมูลหลักหลังจากการเตรียมข้อมูลเริ่มต้น recreate จะลบพื้นที่ทำงานระยะไกลหลักนั้นสำหรับขอบเขตที่เลือก และการเรียกใช้ครั้งถัดไปจะเตรียมข้อมูลใหม่จากพื้นที่ทำงานภายในเครื่องปัจจุบัน
openclaw sandbox explain
ตรวจสอบโหมด/ขอบเขตแซนด์บ็อกซ์ที่มีผล การเข้าถึงพื้นที่ทำงาน นโยบายเครื่องมือของแซนด์บ็อกซ์ และเงื่อนไขควบคุมเครื่องมือที่มีสิทธิ์ระดับสูง (พร้อมพาธคีย์การกำหนดค่าสำหรับแก้ไข)
รายงานจะคง workspaceRoot ไว้เป็นรากแซนด์บ็อกซ์ที่กำหนดค่า และแสดงพื้นที่ทำงานของโฮสต์ที่มีผล ไดเรกทอรีทำงานของรันไทม์แบ็กเอนด์ และตารางเมานต์ของ Docker แยกกัน สำหรับ workspaceAccess: "rw" พื้นที่ทำงานของโฮสต์ที่มีผลคือพื้นที่ทำงานของเอเจนต์ ไม่ใช่ไดเรกทอรีภายใต้ workspaceRoot
openclaw sandbox explainopenclaw sandbox explain --session agent:main:mainopenclaw sandbox explain --agent workopenclaw sandbox explain --jsonต่างจาก recreate --session คำสั่งนี้ยอมรับชื่อเซสชันแบบสั้น (ตัวอย่างเช่น main) และขยายชื่อโดยอ้างอิงเอเจนต์ที่ได้รับการแก้ไขแล้ว
เหตุผลที่ต้องสร้างใหม่
การอัปเดตการกำหนดค่าแซนด์บ็อกซ์ไม่มีผลต่อคอนเทนเนอร์ที่กำลังทำงาน: รันไทม์ที่มีอยู่จะยังคงใช้การตั้งค่าเดิม และรันไทม์ที่ไม่ได้ใช้งานจะถูกล้างหลังจาก prune.idleHours เท่านั้น (ค่าเริ่มต้น 24 ชั่วโมง) เอเจนต์ที่ใช้งานเป็นประจำอาจทำให้รันไทม์ที่ใช้การตั้งค่าเก่าคงอยู่ได้โดยไม่มีกำหนด openclaw sandbox recreate จะลบรันไทม์เก่า เพื่อให้การใช้งานครั้งถัดไปสร้างรันไทม์ใหม่จากการกำหนดค่าปัจจุบัน
สาเหตุทั่วไปที่ต้องดำเนินการ
| การเปลี่ยนแปลง | คำสั่ง |
|---|---|
อัปเดตอิมเมจ Docker (agents.defaults.sandbox.docker.image) |
openclaw sandbox recreate --all |
การกำหนดค่าแซนด์บ็อกซ์ (agents.defaults.sandbox.*) |
openclaw sandbox recreate --all |
เป้าหมาย/การยืนยันตัวตน SSH (agents.defaults.sandbox.ssh.{target,workspaceRoot,identityFile,certificateFile,knownHostsFile,identityData,certificateData,knownHostsData}) |
openclaw sandbox recreate --all |
แหล่งที่มา/นโยบาย/โหมดของ OpenShell (plugins.entries.openshell.config.{from,mode,policy}) |
openclaw sandbox recreate --all |
setupCommand |
openclaw sandbox recreate --all (หรือ --agent <id> สำหรับเอเจนต์หนึ่งตัว) |
การย้ายรีจิสทรี
ข้อมูลเมตาของรันไทม์แซนด์บ็อกซ์อยู่ในฐานข้อมูลสถานะ SQLite ที่ใช้ร่วมกัน การติดตั้งรุ่นเก่าอาจมีไฟล์รีจิสทรีแบบเดิมที่การอ่านตามปกติจะไม่เขียนทับอีกต่อไป:
~/.openclaw/sandbox/containers.json~/.openclaw/sandbox/browsers.json- ชาร์ด JSON หนึ่งไฟล์ต่อคอนเทนเนอร์/เบราว์เซอร์ภายใต้
~/.openclaw/sandbox/containers/หรือ~/.openclaw/sandbox/browsers/
เรียกใช้ openclaw doctor --fix เพื่อย้ายรายการแบบเดิมที่ถูกต้องไปยัง SQLite ไฟล์แบบเดิมที่ไม่ถูกต้องจะถูกแยกกัก เพื่อไม่ให้รีจิสทรีเก่าที่เสียหายบดบังรายการรันไทม์ปัจจุบัน
การกำหนดค่า
การตั้งค่าแซนด์บ็อกซ์อยู่ใน ~/.openclaw/openclaw.json ภายใต้ agents.defaults.sandbox (ค่าที่กำหนดทับสำหรับแต่ละเอเจนต์อยู่ใน agents.list[].sandbox):
{ "agents": { "defaults": { "sandbox": { "mode": "all", // ปิด, ไม่ใช่เซสชันหลัก, ทั้งหมด "backend": "docker", // docker, ssh, openshell (Plugin เป็นผู้จัดหา) "scope": "agent", // เซสชัน, เอเจนต์, ใช้ร่วมกัน "docker": { "image": "openclaw-sandbox:bookworm-slim", "containerPrefix": "openclaw-sbx-", // ... ตัวเลือก Docker เพิ่มเติม }, "prune": { "idleHours": 24, // ล้างโดยอัตโนมัติหลังจากไม่ได้ใช้งาน 24 ชั่วโมง "maxAgeDays": 7, // ล้างโดยอัตโนมัติหลังจาก 7 วัน }, }, }, },}เนื้อหาที่เกี่ยวข้อง
- ข้อมูลอ้างอิง CLI
- การใช้แซนด์บ็อกซ์
- พื้นที่ทำงานของเอเจนต์
- Doctor: ตรวจสอบการตั้งค่าแซนด์บ็อกซ์