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"],
"deny": ["exec", "write", "edit", "apply_patch", "process", "browser"]
}
}
]
},
"bindings": [
{
"agentId": "family",
"match": {
"provider": "whatsapp",
"accountId": "*",
"peer": {
"kind": "group",
"id": "[email protected]"
}
}
}
]
}
النتيجة:
- وكيل
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.mode
agents.list[].sandbox.scope > agents.defaults.sandbox.scope
agents.list[].sandbox.workspaceRoot > agents.defaults.sandbox.workspaceRoot
agents.list[].sandbox.workspaceAccess > agents.defaults.sandbox.workspaceAccess
agents.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-"
اختبار قيود الأدوات
- أرسل رسالة تتطلب أدوات مقيّدة.
- تحقق من أن الوكيل لا يستطيع استخدام الأدوات المرفوضة.
مراقبة السجلات
tail -f "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}/logs/gateway.log" | grep -E "routing|sandbox|tools"
استكشاف الأخطاء وإصلاحها
الوكيل غير معزول رغم `mode: 'all'`
- تحقق مما إذا كان هناك
agents.defaults.sandbox.modeعام يتجاوزه. - تكون للتكوين الخاص بالوكيل الأسبقية، لذا اضبط
agents.list[].sandbox.mode: "all".
الأدوات لا تزال متاحة رغم قائمة الرفض
- تحقق من ترتيب تصفية الأدوات: عام → وكيل → عزل → وكيل فرعي.
- يمكن لكل مستوى أن يقيّد أكثر فقط، لا أن يعيد المنح.
- تحقق من السجلات:
[tools] filtering tools for agent:${agentId}.
الحاوية ليست معزولة لكل وكيل
- اضبط
scope: "agent"في تكوين العزل الخاص بالوكيل. - الإعداد الافتراضي هو
"session"، وهو ينشئ حاوية واحدة لكل جلسة.
ذات صلة
- الوضع المرتفع
- توجيه الوكلاء المتعددين
- تكوين العزل
- العزل مقابل سياسة الأدوات مقابل الوضع المرتفع — تصحيح "لماذا تم حظر هذا؟"
- العزل — مرجع العزل الكامل (الأوضاع، النطاقات، الواجهات الخلفية، الصور)
- إدارة الجلسات