Sandbox बनाम Tool Policy बनाम Elevated
OpenClaw में तीन संबंधित (लेकिन अलग-अलग) नियंत्रण हैं:- Sandbox (
agents.defaults.sandbox.*/agents.list[].sandbox.*) यह तय करता है कि टूल कहाँ चलते हैं (Docker बनाम होस्ट)। - Tool policy (
tools.*,tools.sandbox.tools.*,agents.list[].tools.*) यह तय करता है कि कौन-से टूल उपलब्ध/अनुमत हैं। - Elevated (
tools.elevated.*,agents.list[].tools.elevated.*) एक केवल-exec एस्केप हैच है, जिससे sandbox में होने पर होस्ट पर चलाया जा सके।
त्वरित डिबग
OpenClaw वास्तव में क्या कर रहा है, यह देखने के लिए inspector का उपयोग करें:- प्रभावी sandbox मोड/स्कोप/वर्कस्पेस एक्सेस
- क्या सत्र वर्तमान में sandboxed है (main बनाम non-main)
- प्रभावी sandbox टूल allow/deny (और क्या यह agent/global/default से आया है)
- elevated गेट्स और fix-it key पाथ्स
Sandbox: टूल कहाँ चलते हैं
Sandboxing कोagents.defaults.sandbox.mode द्वारा नियंत्रित किया जाता है:
"off": सब कुछ होस्ट पर चलता है।"non-main": केवल non-main सत्र sandboxed होते हैं (समूह/चैनलों के लिए आम “सरप्राइज़”)।"all": सब कुछ sandboxed होता है।
Bind mounts (सुरक्षा त्वरित जाँच)
docker.bindssandbox फ़ाइलसिस्टम को भेद देता है: जो भी आप माउंट करते हैं, वह कंटेनर के भीतर आपके सेट किए गए मोड (:roया:rw) के साथ दिखाई देता है।- यदि आप मोड छोड़ देते हैं तो डिफ़ॉल्ट read-write होता है; स्रोत/सीक्रेट्स के लिए
:roको प्राथमिकता दें। scope: "shared"प्रति-एजेंट बाइंड्स को अनदेखा करता है (केवल ग्लोबल बाइंड्स लागू होते हैं)।/var/run/docker.sockको बाइंड करना प्रभावी रूप से sandbox को होस्ट नियंत्रण दे देता है; यह केवल जानबूझकर करें।- वर्कस्पेस एक्सेस (
workspaceAccess: "ro"/"rw") बाइंड मोड्स से स्वतंत्र है।
Tool policy: कौन-से टूल मौजूद/कॉल किए जा सकते हैं
दो लेयर महत्वपूर्ण हैं:- Tool profile:
tools.profileऔरagents.list[].tools.profile(बेस allowlist) - Provider tool profile:
tools.byProvider[provider].profileऔरagents.list[].tools.byProvider[provider].profile - Global/per-agent tool policy:
tools.allow/tools.denyऔरagents.list[].tools.allow/agents.list[].tools.deny - Provider tool policy:
tools.byProvider[provider].allow/denyऔरagents.list[].tools.byProvider[provider].allow/deny - Sandbox tool policy (केवल sandboxed होने पर लागू):
tools.sandbox.tools.allow/tools.sandbox.tools.denyऔरagents.list[].tools.sandbox.tools.*
denyहमेशा जीतता है।- यदि
allowखाली नहीं है, तो बाकी सब कुछ ब्लॉक माना जाता है। - Tool policy अंतिम रोक है:
/execकिसी अस्वीकृतexecटूल को ओवरराइड नहीं कर सकता। /execकेवल अधिकृत senders के लिए session defaults बदलता है; यह tool access प्रदान नहीं करता। Provider tool keysprovider(जैसेgoogle-antigravity) याprovider/model(जैसेopenai/gpt-5.2) दोनों स्वीकार करते हैं।
Tool groups (शॉर्टहैंड)
Tool policies (global, agent, sandbox)group:* प्रविष्टियों का समर्थन करती हैं, जो कई टूल्स में विस्तारित होती हैं:
group:runtime:exec,bash,processgroup:fs:read,write,edit,apply_patchgroup:sessions:sessions_list,sessions_history,sessions_send,sessions_spawn,session_statusgroup:memory:memory_search,memory_getgroup:ui:browser,canvasgroup:automation:cron,gatewaygroup:messaging:messagegroup:nodes:nodesgroup:openclaw: सभी बिल्ट-इन OpenClaw टूल्स (provider plugins शामिल नहीं)
Elevated: केवल-exec “होस्ट पर चलाएँ”
Elevated अतिरिक्त टूल्स प्रदान नहीं करता; यह केवलexec को प्रभावित करता है।
- यदि आप sandboxed हैं, तो
/elevated on(याexecके साथelevated: true) होस्ट पर चलता है (अनुमोदन अभी भी लागू हो सकता है)। - सत्र के लिए exec अनुमोदन छोड़ने हेतु
/elevated fullका उपयोग करें। - यदि आप पहले से direct चल रहे हैं, तो elevated प्रभावी रूप से no-op है (फिर भी gated)।
- Elevated skill-scoped नहीं है और टूल allow/deny को ओवरराइड नहीं करता।
/execelevated से अलग है। यह केवल अधिकृत senders के लिए प्रति-session exec defaults समायोजित करता है।
- Enablement:
tools.elevated.enabled(और वैकल्पिक रूप सेagents.list[].tools.elevated.enabled) - Sender allowlists:
tools.elevated.allowFrom.<provider>`` (और वैकल्पिक रूप सेagents.list[].tools.elevated.allowFrom.<provider>“)`
सामान्य “sandbox jail” सुधार
“Tool X sandbox tool policy द्वारा ब्लॉक किया गया”
Fix-it कुंजियाँ (एक चुनें):- Sandbox अक्षम करें:
agents.defaults.sandbox.mode=off(या प्रति-एजेंटagents.list[].sandbox.mode=off) - Sandbox के भीतर टूल को अनुमति दें:
- इसे
tools.sandbox.tools.denyसे हटाएँ (या प्रति-एजेंटagents.list[].tools.sandbox.tools.deny) - या इसे
tools.sandbox.tools.allowमें जोड़ें (या प्रति-एजेंट allow)
- इसे
“मुझे लगा यह main है, फिर यह sandboxed क्यों है?”
"non-main" मोड में, group/channel keys main नहीं होते। मुख्य session key का उपयोग करें (sandbox explain द्वारा दिखाया गया) या मोड को "off" पर स्विच करें।