เอเจนต์แต่ละตัวในการตั้งค่าแบบหลายเอเจนต์สามารถเขียนทับ sandbox และนโยบายเครื่องมือส่วนกลางได้ หน้านี้ครอบคลุมการกำหนดค่ารายเอเจนต์ กฎลำดับความสำคัญ และตัวอย่างต่าง ๆDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Sandboxing
แบ็กเอนด์และโหมดต่าง ๆ — เอกสารอ้างอิง sandbox ฉบับเต็ม
Sandbox กับนโยบายเครื่องมือกับ elevated
ดีบัก “ทำไมสิ่งนี้ถึงถูกบล็อก?”
โหมด Elevated
exec แบบ Elevated สำหรับผู้ส่งที่เชื่อถือได้
ตัวอย่างการกำหนดค่า
ตัวอย่างที่ 1: เอเจนต์ส่วนตัว + เอเจนต์ครอบครัวแบบจำกัด
ตัวอย่างที่ 1: เอเจนต์ส่วนตัว + เอเจนต์ครอบครัวแบบจำกัด
- เอเจนต์
main: ทำงานบนโฮสต์ เข้าถึงเครื่องมือได้เต็มรูปแบบ - เอเจนต์
family: ทำงานใน Docker (หนึ่งคอนเทนเนอร์ต่อเอเจนต์) ส่งข้อความได้เฉพาะreadและบทสนทนาปัจจุบัน
ตัวอย่างที่ 2: เอเจนต์งานพร้อม sandbox ที่แชร์ร่วมกัน
ตัวอย่างที่ 2: เอเจนต์งานพร้อม sandbox ที่แชร์ร่วมกัน
ตัวอย่างที่ 2b: โปรไฟล์เขียนโค้ดส่วนกลาง + เอเจนต์เฉพาะการส่งข้อความ
ตัวอย่างที่ 2b: โปรไฟล์เขียนโค้ดส่วนกลาง + เอเจนต์เฉพาะการส่งข้อความ
- เอเจนต์เริ่มต้นได้รับเครื่องมือเขียนโค้ด
- เอเจนต์
supportเป็นแบบเฉพาะการส่งข้อความเท่านั้น (+ เครื่องมือ Slack)
ตัวอย่างที่ 3: โหมด sandbox ต่างกันตามเอเจนต์
ตัวอย่างที่ 3: โหมด sandbox ต่างกันตามเอเจนต์
ลำดับความสำคัญของการกำหนดค่า
เมื่อมีทั้งการกำหนดค่าส่วนกลาง (agents.defaults.*) และการกำหนดค่าเฉพาะเอเจนต์ (agents.list[].*):
การกำหนดค่า sandbox
การตั้งค่าเฉพาะเอเจนต์จะเขียนทับส่วนกลาง:agents.list[].sandbox.{docker,browser,prune}.* เขียนทับ agents.defaults.sandbox.{docker,browser,prune}.* สำหรับเอเจนต์นั้น (ถูกละเว้นเมื่อขอบเขต sandbox resolve เป็น "shared")ข้อจำกัดของเครื่องมือ
ลำดับการกรองคือ:โปรไฟล์เครื่องมือของผู้ให้บริการ
tools.byProvider[provider].profile หรือ agents.list[].tools.byProvider[provider].profileกฎลำดับความสำคัญ
กฎลำดับความสำคัญ
- แต่ละระดับสามารถจำกัดเครื่องมือเพิ่มเติมได้ แต่ไม่สามารถให้สิทธิ์เครื่องมือที่ถูกปฏิเสธจากระดับก่อนหน้ากลับคืนมาได้
- หากตั้งค่า
agents.list[].tools.sandbox.toolsไว้ ค่านี้จะแทนที่tools.sandbox.toolsสำหรับเอเจนต์นั้น - หากตั้งค่า
agents.list[].tools.profileไว้ ค่านี้จะเขียนทับtools.profileสำหรับเอเจนต์นั้น - คีย์เครื่องมือของผู้ให้บริการรับได้ทั้ง
provider(เช่นgoogle-antigravity) หรือprovider/model(เช่นopenai/gpt-5.4)
พฤติกรรมของ allowlist ว่าง
พฤติกรรมของ allowlist ว่าง
หาก allowlist ที่ระบุไว้อย่างชัดเจนในเชนดังกล่าวทำให้การรันไม่มีเครื่องมือที่เรียกใช้ได้ OpenClaw จะหยุดก่อนส่งพรอมป์ไปยังโมเดล นี่เป็นพฤติกรรมที่ตั้งใจไว้: เอเจนต์ที่กำหนดค่าด้วยเครื่องมือที่หายไป เช่น
agents.list[].tools.allow: ["query_db"] ควรล้มเหลวอย่างชัดเจนจนกว่า Plugin ที่ลงทะเบียน query_db จะถูกเปิดใช้งาน ไม่ใช่ดำเนินการต่อในฐานะเอเจนต์แบบข้อความเท่านั้นgroup:* ที่ขยายเป็นหลายเครื่องมือ ดูรายการทั้งหมดที่ กลุ่มเครื่องมือ
การเขียนทับ elevated แบบรายเอเจนต์ (agents.list[].tools.elevated) สามารถจำกัด exec แบบ elevated เพิ่มเติมสำหรับเอเจนต์เฉพาะได้ ดูรายละเอียดที่ โหมด Elevated
การย้ายจากเอเจนต์เดียว
- ก่อนหน้า (เอเจนต์เดียว)
- หลังจากนั้น (หลายเอเจนต์)
การตั้งค่า
agent.* แบบเดิมจะถูกย้ายโดย openclaw doctor; แนะนำให้ใช้ agents.defaults + agents.list ต่อไปตัวอย่างการจำกัดเครื่องมือ
- เอเจนต์แบบอ่านอย่างเดียว
- การเรียกใช้เชลล์โดยปิดใช้งานเครื่องมือระบบไฟล์
- การสื่อสารเท่านั้น
ข้อผิดพลาดที่พบบ่อย: “non-main”
การทดสอบ
หลังจากกำหนดค่า sandbox และเครื่องมือสำหรับหลายเอเจนต์แล้ว:ทดสอบการจำกัดเครื่องมือ
- ส่งข้อความที่ต้องใช้เครื่องมือที่ถูกจำกัด
- ตรวจสอบว่าเอเจนต์ไม่สามารถใช้เครื่องมือที่ถูกปฏิเสธได้
การแก้ไขปัญหา
เอเจนต์ไม่ถูก sandbox แม้จะตั้งค่า `mode: 'all'`
เอเจนต์ไม่ถูก sandbox แม้จะตั้งค่า `mode: 'all'`
- ตรวจสอบว่ามี
agents.defaults.sandbox.modeแบบ global ที่ override ค่านี้หรือไม่ - การตั้งค่าเฉพาะเอเจนต์มีลำดับความสำคัญสูงกว่า ดังนั้นให้ตั้งค่า
agents.list[].sandbox.mode: "all"
เครื่องมือยังพร้อมใช้งานแม้จะมีรายการปฏิเสธ
เครื่องมือยังพร้อมใช้งานแม้จะมีรายการปฏิเสธ
- ตรวจสอบลำดับการกรองเครื่องมือ: global → agent → sandbox → subagent
- แต่ละระดับทำได้เพียงจำกัดเพิ่มเติมเท่านั้น ไม่สามารถให้สิทธิ์กลับคืนได้
- ตรวจสอบด้วยบันทึก:
[tools] filtering tools for agent:${agentId}
คอนเทนเนอร์ไม่ได้แยกตามเอเจนต์
คอนเทนเนอร์ไม่ได้แยกตามเอเจนต์
- ตั้งค่า
scope: "agent"ในการตั้งค่า sandbox เฉพาะเอเจนต์ - ค่าเริ่มต้นคือ
"session"ซึ่งสร้างหนึ่งคอนเทนเนอร์ต่อหนึ่งเซสชัน
ที่เกี่ยวข้อง
- โหมดยกระดับ
- การกำหนดเส้นทางหลายเอเจนต์
- การกำหนดค่าแซนด์บ็อกซ์
- แซนด์บ็อกซ์เทียบกับนโยบายเครื่องมือเทียบกับโหมดยกระดับ — การดีบัก “ทำไมสิ่งนี้จึงถูกบล็อก?”
- การทำแซนด์บ็อกซ์ — เอกสารอ้างอิงแซนด์บ็อกซ์ฉบับเต็ม (โหมด, ขอบเขต, แบ็กเอนด์, อิมเมจ)
- การจัดการเซสชัน