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"] } } ] }}المثال 2ب: ملف تعريف عام للبرمجة + وكيل للمراسلة فقط
{ "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.list[].*) معًا:
إعداد العزل
تتجاوز الإعدادات الخاصة بالوكيل الإعدادات العامة:
agents.list[].sandbox.mode > agents.defaults.sandbox.modeagents.list[].sandbox.scope > agents.defaults.sandbox.scopeagents.list[].sandbox.workspaceRoot > agents.defaults.sandbox.workspaceRootagents.list[].sandbox.workspaceAccess > agents.defaults.sandbox.workspaceAccessagents.list[].sandbox.docker.* > agents.defaults.sandbox.docker.*agents.list[].sandbox.browser.* > agents.defaults.sandbox.browser.*agents.list[].sandbox.prune.* > agents.defaults.sandbox.prune.*قيود الأدوات
ترتيب التصفية هو:
ملف تعريف الأدوات
tools.profile أو agents.list[].tools.profile.
ملف تعريف أدوات المزوّد
tools.byProvider[provider].profile أو agents.list[].tools.byProvider[provider].profile.
سياسة الأدوات العامة
tools.allow / tools.deny.
سياسة أدوات المزوّد
tools.byProvider[provider].allow/deny.
سياسة الأدوات الخاصة بالوكيل
agents.list[].tools.allow/deny.
سياسة مزوّد الوكيل
agents.list[].tools.byProvider[provider].allow/deny.
سياسة أدوات العزل
tools.sandbox.tools أو agents.list[].tools.sandbox.tools.
سياسة أدوات الوكيل الفرعي
tools.subagents.tools، إن كانت منطبقة.
قواعد الأولوية
- يمكن لكل مستوى فرض قيود إضافية على الأدوات، لكنه لا يستطيع إعادة منح الأدوات التي حُظرت في مستويات سابقة.
- إذا ضُبط
agents.list[].tools.sandbox.tools، فإنه يحل محلtools.sandbox.toolsلذلك الوكيل. - إذا ضُبط
agents.list[].tools.profile، فإنه يتجاوزtools.profileلذلك الوكيل. - تقبل مفاتيح أدوات المزوّد إما
provider(مثلgoogle-antigravity) أوprovider/model(مثلopenai/gpt-5.4).
سلوك قائمة السماح الفارغة
إذا أدت أي قائمة سماح صريحة في تلك السلسلة إلى عدم توفر أي أدوات قابلة للاستدعاء للتشغيل، يتوقف OpenClaw قبل إرسال الموجّه إلى النموذج. هذا مقصود: يجب أن يفشل الوكيل المضبوط بأداة مفقودة مثل agents.list[].tools.allow: ["query_db"] بوضوح إلى أن يُفعّل Plugin الذي يسجّل query_db، بدلًا من الاستمرار بصفته وكيلًا نصيًا فقط.
تدعم سياسات الأدوات الاختصارات group:* التي تتوسع إلى عدة أدوات. راجع مجموعات الأدوات للاطلاع على القائمة الكاملة.
يمكن لتجاوزات الوضع المرتفع لكل وكيل (agents.list[].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/العرض الكامل، وXML المشوّه لاستدعاءات أدوات MiniMax، وذلك قبل التنقيح/الاقتطاع.
خطأ شائع: "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.list[].sandbox.mode: "all".
الأدوات التي تظل متاحة رغم قائمة المنع
- تحقّق من ترتيب التصفية الكامل: ملف التعريف ← ملف تعريف المزوّد ← السياسة العامة ← سياسة المزوّد ← سياسة الوكيل ← سياسة مزوّد الوكيل ← البيئة المعزولة ← الوكيل الفرعي.
- لا يمكن لكل مستوى إلا فرض مزيد من القيود، ولا يمكنه إعادة منح الصلاحيات.
- راجع البيئة المعزولة مقابل سياسة الأدوات مقابل الوضع المرتفع لتصحيح الأخطاء خطوة بخطوة.
الحاوية غير معزولة لكل وكيل
- قيمة
scopeالافتراضية هي"agent"(حاوية واحدة لكل معرّف وكيل). - عيّن
scope: "session"لاستخدام حاوية واحدة لكل جلسة، أوscope: "shared"لإعادة استخدام حاوية واحدة عبر الوكلاء.
ذو صلة
- الوضع المرتفع
- توجيه الوكلاء المتعددين
- تهيئة البيئة المعزولة
- البيئة المعزولة مقابل سياسة الأدوات مقابل الوضع المرتفع — تصحيح سبب حظر هذا
- العزل — المرجع الكامل للبيئة المعزولة (الأوضاع، والنطاقات، والواجهات الخلفية، والصور)
- إدارة الجلسات