Skip to main content
يمكن لكل وكيل في إعداد متعدد الوكلاء تجاوز سياسة العزل والأدوات العامة. تتناول هذه الصفحة الإعداد لكل وكيل، وقواعد الأولوية، وأمثلة.

العزل

الواجهات الخلفية والأوضاع — المرجع الكامل للعزل.

العزل مقابل سياسة الأدوات مقابل الوضع المرتفع

تصحيح سبب الحظر.

الوضع المرتفع

تنفيذ مرتفع للمرسلين الموثوقين.
يقتصر نطاق المصادقة على الوكيل: لكل وكيل مخزن مصادقة خاص به في agentDir ضمن ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite. لا تُعِد استخدام agentDir مطلقًا بين الوكلاء. يمكن للوكلاء الرجوع إلى ملفات تعريف المصادقة الخاصة بالوكيل الافتراضي/الرئيسي عندما لا يكون لديهم ملف تعريف محلي، لكن رموز تحديث OAuth لا تُنسخ إلى مخازن الوكلاء الثانويين. إذا نسخت بيانات الاعتماد يدويًا، فلا تنسخ سوى ملفات تعريف api_key أو token الثابتة والقابلة للنقل.

أمثلة الإعداد

النتيجة:
  • الوكيل main: يعمل على المضيف ويتمتع بوصول كامل إلى الأدوات.
  • الوكيل family: يعمل داخل Docker (حاوية واحدة لكل وكيل)، ولا يُسمح له إلا باستخدام read وإرسال الرسائل ضمن المحادثة الحالية.
النتيجة:
  • تحصل الوكلاء الافتراضية على أدوات البرمجة.
  • يقتصر الوكيل support على المراسلة فقط (+ أداة Slack).

أولوية الإعداد

عند وجود إعدادات عامة (agents.defaults.*) وأخرى خاصة بالوكيل (agents.list[].*) معًا:

إعداد العزل

تتجاوز الإعدادات الخاصة بالوكيل الإعدادات العامة:
يتجاوز agents.list[].sandbox.{docker,browser,prune}.* الإعداد agents.defaults.sandbox.{docker,browser,prune}.* لذلك الوكيل (ويُتجاهل عندما يُحسم نطاق العزل إلى "shared").

قيود الأدوات

ترتيب التصفية هو:
1

ملف تعريف الأدوات

tools.profile أو agents.list[].tools.profile.
2

ملف تعريف أدوات المزوّد

tools.byProvider[provider].profile أو agents.list[].tools.byProvider[provider].profile.
3

سياسة الأدوات العامة

tools.allow / tools.deny.
4

سياسة أدوات المزوّد

tools.byProvider[provider].allow/deny.
5

سياسة الأدوات الخاصة بالوكيل

agents.list[].tools.allow/deny.
6

سياسة مزوّد الوكيل

agents.list[].tools.byProvider[provider].allow/deny.
7

سياسة أدوات العزل

tools.sandbox.tools أو agents.list[].tools.sandbox.tools.
8

سياسة أدوات الوكيل الفرعي

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) فرض قيود إضافية على التنفيذ المرتفع لوكلاء محددين. راجع الوضع المرتفع للاطلاع على التفاصيل.

الترحيل من وكيل واحد

يرحّل openclaw doctor مفاتيح إعداد agents.defaults.*/agents.list[].* القديمة (مثل sandbox.perSession وagentRuntime وembeddedPi)؛ ويُفضّل استخدام agents.defaults + agents.list من الآن فصاعدًا.

أمثلة قيود الأدوات


خطأ شائع: "non-main"

يتحقق agents.defaults.sandbox.mode: "non-main" من مفتاح الجلسة مقارنةً بمفتاح الجلسة الرئيسية (وهو دائمًا "main"؛ لا يمكن للمستخدم ضبط session.mainKey، ويحذّر OpenClaw من أي قيمة أخرى ويتجاهلها)، وليس من معرّف الوكيل. تحصل جلسات المجموعات/القنوات دائمًا على مفاتيحها الخاصة، لذا تُعامل على أنها غير رئيسية وتُعزل. إذا أردت ألا يُعزل وكيل مطلقًا، فاضبط agents.list[].sandbox.mode: "off".

الاختبار

بعد إعداد العزل والأدوات للوكلاء المتعددين:
1

التحقق من حسم الوكيل

2

التحقق من حاويات العزل

3

اختبار قيود الأدوات

  • أرسل رسالة تتطلب أدوات مقيّدة.
  • تحقق من أن الوكيل لا يستطيع استخدام الأدوات المحظورة.
4

مراقبة السجلات


استكشاف الأخطاء وإصلاحها

  • تحقق مما إذا كان هناك agents.defaults.sandbox.mode عام يتجاوزه.
  • للإعداد الخاص بالوكيل الأولوية، لذا اضبط agents.list[].sandbox.mode: "all".
  • قيمة scope الافتراضية هي "agent" (حاوية واحدة لكل معرّف وكيل).
  • عيّن scope: "session" لاستخدام حاوية واحدة لكل جلسة، أو scope: "shared" لإعادة استخدام حاوية واحدة عبر الوكلاء.

ذو صلة