Agent coordination
मल्टी-एजेंट सैंडबॉक्स और टूल्स
बहु-एजेंट सेटअप में प्रत्येक एजेंट वैश्विक सैंडबॉक्स और टूल नीति को ओवरराइड कर सकता है। यह पृष्ठ प्रति-एजेंट कॉन्फ़िगरेशन, प्राथमिकता नियमों और उदाहरणों को शामिल करता है।
बैकएंड और मोड — संपूर्ण सैंडबॉक्स संदर्भ।
"यह अवरुद्ध क्यों है?" की डीबगिंग करें।
विश्वसनीय प्रेषकों के लिए एलिवेटेड निष्पादन।
कॉन्फ़िगरेशन के उदाहरण
उदाहरण 1: व्यक्तिगत + प्रतिबंधित पारिवारिक एजेंट
{ "agents": { "list": [ { "id": "main", "default": true, "name": "Personal Assistant", "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "off" } }, { "id": "family", "name": "Family Bot", "workspace": "~/.openclaw/workspace-family", "sandbox": { "mode": "all", "scope": "agent" }, "tools": { "allow": ["read", "message"], "deny": ["exec", "write", "edit", "apply_patch", "process", "browser"], "message": { "crossContext": { "allowWithinProvider": false, "allowAcrossProviders": false } } } } ] }, "bindings": [ { "agentId": "family", "match": { "provider": "whatsapp", "accountId": "*", "peer": { "kind": "group", "id": "120363424282127706@g.us" } } } ]}परिणाम:
mainएजेंट: होस्ट पर चलता है, सभी टूल तक पूर्ण पहुँच।familyएजेंट: Docker में चलता है (प्रति एजेंट एक कंटेनर), केवलreadऔर वर्तमान वार्तालाप में संदेश भेज सकता है।
उदाहरण 2: साझा सैंडबॉक्स वाला कार्य एजेंट
{ "agents": { "list": [ { "id": "personal", "workspace": "~/.openclaw/workspace-personal", "sandbox": { "mode": "off" } }, { "id": "work", "workspace": "~/.openclaw/workspace-work", "sandbox": { "mode": "all", "scope": "shared", "workspaceRoot": "/tmp/work-sandboxes" }, "tools": { "allow": ["read", "write", "apply_patch", "exec"], "deny": ["browser", "gateway", "discord"] } } ] }}उदाहरण 2b: वैश्विक कोडिंग प्रोफ़ाइल + केवल-संदेश एजेंट
{ "tools": { "profile": "coding" }, "agents": { "list": [ { "id": "support", "tools": { "profile": "messaging", "allow": ["slack"] } } ] }}परिणाम:
- डिफ़ॉल्ट एजेंटों को कोडिंग टूल मिलते हैं।
supportएजेंट केवल-संदेश वाला है (+ Slack टूल)।
उदाहरण 3: प्रत्येक एजेंट के लिए अलग-अलग सैंडबॉक्स मोड
{ "agents": { "defaults": { "sandbox": { "mode": "non-main", "scope": "session" } }, "list": [ { "id": "main", "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "off" } }, { "id": "public", "workspace": "~/.openclaw/workspace-public", "sandbox": { "mode": "all", "scope": "agent" }, "tools": { "allow": ["read"], "deny": ["exec", "write", "edit", "apply_patch"] } } ] }}कॉन्फ़िगरेशन की प्राथमिकता
जब वैश्विक (agents.defaults.*) और एजेंट-विशिष्ट (agents.entries.*.*) दोनों कॉन्फ़िगरेशन मौजूद हों:
सैंडबॉक्स कॉन्फ़िगरेशन
एजेंट-विशिष्ट सेटिंग वैश्विक सेटिंग को ओवरराइड करती हैं:
agents.entries.*.sandbox.mode > agents.defaults.sandbox.modeagents.entries.*.sandbox.scope > agents.defaults.sandbox.scopeagents.entries.*.sandbox.workspaceRoot > agents.defaults.sandbox.workspaceRootagents.entries.*.sandbox.workspaceAccess > agents.defaults.sandbox.workspaceAccessagents.entries.*.sandbox.docker.* > agents.defaults.sandbox.docker.*agents.entries.*.sandbox.browser.* > agents.defaults.sandbox.browser.*agents.entries.*.sandbox.prune.* > agents.defaults.sandbox.prune.*टूल प्रतिबंध
फ़िल्टर करने का क्रम यह है:
टूल प्रोफ़ाइल
tools.profile या agents.entries.*.tools.profile।
प्रदाता टूल प्रोफ़ाइल
tools.byProvider[provider].profile या agents.entries.*.tools.byProvider[provider].profile।
वैश्विक टूल नीति
tools.allow / tools.deny।
प्रदाता टूल नीति
tools.byProvider[provider].allow/deny।
एजेंट-विशिष्ट टूल नीति
agents.entries.*.tools.allow/deny।
एजेंट प्रदाता नीति
agents.entries.*.tools.byProvider[provider].allow/deny।
सैंडबॉक्स टूल नीति
tools.sandbox.tools या agents.entries.*.tools.sandbox.tools।
उप-एजेंट टूल नीति
यदि लागू हो, तो tools.subagents.tools।
प्राथमिकता नियम
- प्रत्येक स्तर टूल को और प्रतिबंधित कर सकता है, लेकिन पहले के स्तरों पर अस्वीकृत टूल को वापस अनुमति नहीं दे सकता।
- यदि
agents.entries.*.tools.sandbox.toolsसेट है, तो यह उस एजेंट के लिएtools.sandbox.toolsको प्रतिस्थापित करता है। - यदि
agents.entries.*.tools.profileसेट है, तो यह उस एजेंट के लिएtools.profileको ओवरराइड करता है। - प्रदाता टूल कुंजियाँ
provider(उदाहरण के लिएgoogle-antigravity) याprovider/model(उदाहरण के लिएopenai/gpt-5.4) में से किसी एक को स्वीकार करती हैं।
खाली अनुमति-सूची का व्यवहार
यदि इस श्रृंखला की कोई भी स्पष्ट अनुमति-सूची रन को बिना किसी कॉल किए जा सकने वाले टूल के छोड़ देती है, तो OpenClaw मॉडल को प्रॉम्प्ट भेजने से पहले रुक जाता है। यह जानबूझकर किया गया है: agents.entries.*.tools.allow: ["query_db"] जैसे अनुपलब्ध टूल के साथ कॉन्फ़िगर किए गए एजेंट को तब तक स्पष्ट रूप से विफल होना चाहिए, जब तक query_db पंजीकृत करने वाला Plugin सक्षम न हो जाए; उसे केवल-पाठ एजेंट के रूप में जारी नहीं रहना चाहिए।
टूल नीतियाँ group:* संक्षिप्त रूपों का समर्थन करती हैं, जो कई टूल में विस्तारित होते हैं। पूरी सूची के लिए टूल समूह देखें।
प्रति-एजेंट एलिवेटेड ओवरराइड (agents.entries.*.tools.elevated) विशिष्ट एजेंटों के लिए एलिवेटेड निष्पादन को और प्रतिबंधित कर सकते हैं। विवरण के लिए एलिवेटेड मोड देखें।
एकल एजेंट से माइग्रेशन
पहले (एकल एजेंट)
{ "agents": { "defaults": { "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "non-main" } } }, "tools": { "sandbox": { "tools": { "allow": ["read", "write", "apply_patch", "exec"], "deny": [] } } }}बाद में (बहु-एजेंट)
{ "agents": { "list": [ { "id": "main", "default": true, "workspace": "~/.openclaw/workspace", "sandbox": { "mode": "off" } } ] }}टूल प्रतिबंध के उदाहरण
केवल-पठन एजेंट
{ "tools": { "allow": ["read"], "deny": ["exec", "write", "edit", "apply_patch", "process"] }}फ़ाइल-सिस्टम टूल अक्षम रखते हुए शेल निष्पादन
{ "tools": { "allow": ["read", "exec", "process"], "deny": ["write", "edit", "apply_patch", "browser", "gateway"] }}केवल-संचार
{ "tools": { "sessions": { "visibility": "tree" }, "allow": ["sessions_list", "sessions_send", "sessions_history", "session_status"], "deny": ["exec", "write", "edit", "apply_patch", "read", "browser"] }}इस प्रोफ़ाइल में sessions_history अभी भी कच्चे ट्रांसक्रिप्ट डंप के बजाय सीमित, स्वच्छीकृत स्मरण दृश्य लौटाता है। सहायक स्मरण, संपादन/काट-छाँट से पहले चिंतन टैग, <relevant-memories> स्कैफ़ोल्डिंग, सादा-पाठ टूल-कॉल XML पेलोड (जिसमें <tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls>, <function_calls>...</function_calls> और काटे गए टूल-कॉल ब्लॉक शामिल हैं), निम्नीकृत टूल-कॉल स्कैफ़ोल्डिंग, लीक हुए ASCII/पूर्ण-चौड़ाई मॉडल नियंत्रण टोकन और विकृत MiniMax टूल-कॉल XML हटा देता है।
सामान्य समस्या: "non-main"
परीक्षण
बहु-एजेंट सैंडबॉक्स और टूल कॉन्फ़िगर करने के बाद:
एजेंट निर्धारण जाँचें
openclaw agents list --bindingsसैंडबॉक्स कंटेनर सत्यापित करें
docker ps --filter "name=openclaw-sbx-"टूल प्रतिबंधों का परीक्षण करें
- प्रतिबंधित टूल की आवश्यकता वाला संदेश भेजें।
- सत्यापित करें कि एजेंट अस्वीकृत टूल का उपयोग नहीं कर सकता।
लॉग की निगरानी करें
openclaw logs --follow | grep -E "routing|sandbox|tools"समस्या निवारण
`mode: 'all'` के बावजूद एजेंट सैंडबॉक्स में नहीं है
- जाँचें कि क्या कोई वैश्विक
agents.defaults.sandbox.modeइसे ओवरराइड कर रहा है। - एजेंट-विशिष्ट कॉन्फ़िगरेशन को प्राथमिकता मिलती है, इसलिए
agents.entries.*.sandbox.mode: "all"सेट करें।
अस्वीकरण सूची के बावजूद टूल अभी भी उपलब्ध हैं
- पूर्ण फ़िल्टरिंग क्रम देखें: प्रोफ़ाइल → प्रदाता प्रोफ़ाइल → वैश्विक नीति → प्रदाता नीति → एजेंट नीति → एजेंट प्रदाता नीति → सैंडबॉक्स → उप-एजेंट।
- प्रत्येक स्तर केवल और अधिक प्रतिबंध लगा सकता है, अनुमति वापस नहीं दे सकता।
- चरण-दर-चरण डीबगिंग के लिए सैंडबॉक्स बनाम टूल नीति बनाम एलिवेटेड देखें।
कंटेनर प्रत्येक एजेंट के लिए पृथक नहीं है
- डिफ़ॉल्ट
scope,"agent"है (प्रत्येक एजेंट आईडी के लिए एक कंटेनर)। - प्रत्येक सत्र के लिए एक कंटेनर हेतु
scope: "session"सेट करें, या सभी एजेंटों में एक कंटेनर का पुनः उपयोग करने के लिएscope: "shared"सेट करें।
संबंधित
- एलिवेटेड मोड
- मल्टी-एजेंट रूटिंग
- सैंडबॉक्स कॉन्फ़िगरेशन
- सैंडबॉक्स बनाम टूल नीति बनाम एलिवेटेड — "यह अवरुद्ध क्यों है?" की डीबगिंग
- सैंडबॉक्सिंग — सैंडबॉक्स का पूर्ण संदर्भ (मोड, स्कोप, बैकएंड, इमेज)
- सत्र प्रबंधन