agentDir)، وسجل جلسات، إلى جانب عدة حسابات قنوات (مثل حسابي WhatsApp) ضمن Gateway واحد قيد التشغيل. تُوجَّه الرسائل الواردة إلى الوكيل الصحيح عبر الارتباطات.
الوكيل هنا هو النطاق الكامل لكل شخصية: ملفات مساحة العمل، وملفات تعريف المصادقة، وسجل النماذج، ومخزن الجلسات. agentDir هو دليل الحالة على القرص الذي يحتوي على هذا الإعداد الخاص بكل وكيل في ~/.openclaw/agents/<agentId>/. أما الارتباط فيربط حساب قناة (مثل مساحة عمل Slack أو رقم WhatsApp) بأحد هؤلاء الوكلاء.
ما هو “الوكيل الواحد”؟
الوكيل هو عقل محدد النطاق بالكامل وله ما يلي:- مساحة العمل (الملفات، وAGENTS.md/SOUL.md/USER.md، والملاحظات المحلية، وقواعد الشخصية).
- دليل الحالة (
agentDir) لملفات تعريف المصادقة، وسجل النماذج، وإعدادات كل وكيل. - مخزن الجلسات (سجل المحادثات + حالة التوجيه) ضمن
~/.openclaw/agents/<agentId>/sessions.
sessions_history هو مسار الاستدعاء عبر الجلسات الأكثر أمانا هنا أيضا: فهو يعيد عرضا محدودا ومنقحا، وليس تفريغا خاما للنص الكامل. يزيل استدعاء المساعد وسوم التفكير، وبنية <relevant-memories>، وحمولات XML النصية الصريحة لاستدعاءات الأدوات (بما في ذلك <tool_call>...</tool_call> و<function_call>...</function_call> و<tool_calls>...</tool_calls> و<function_calls>...</function_calls> وكتل استدعاء الأدوات المقتطعة)، وبنية استدعاءات الأدوات المخفضة، ورموز تحكم النموذج المسرّبة بصيغة ASCII أو كاملة العرض، وXML استدعاءات أدوات MiniMax المشوهة قبل التنقيح/الاقتطاع.~/.openclaw/skills، ثم تُصفّى بحسب قائمة Skills المسموح بها للوكيل الفعّال عند إعدادها. استخدم agents.defaults.skills كأساس مشترك وagents.list[].skills للاستبدال لكل وكيل. راجع Skills: لكل وكيل مقابل المشتركة وSkills: قوائم السماح بمهارات الوكيل.
يمكن لـ Gateway استضافة وكيل واحد (افتراضيا) أو عدة وكلاء جنبا إلى جنب.
ملاحظة مساحة العمل: مساحة عمل كل وكيل هي cwd الافتراضي، وليست عزلا صارما. تُحل المسارات النسبية داخل مساحة العمل، لكن المسارات المطلقة يمكن أن تصل إلى مواقع أخرى على المضيف ما لم يكن العزل مفعلا. راجع العزل.
المسارات (خريطة سريعة)
- الإعداد:
~/.openclaw/openclaw.json(أوOPENCLAW_CONFIG_PATH) - دليل الحالة:
~/.openclaw(أوOPENCLAW_STATE_DIR) - مساحة العمل:
~/.openclaw/workspace(أو~/.openclaw/workspace-<agentId>) - دليل الوكيل:
~/.openclaw/agents/<agentId>/agent(أوagents.list[].agentDir) - الجلسات:
~/.openclaw/agents/<agentId>/sessions
وضع الوكيل الواحد (افتراضي)
إذا لم تفعل شيئا، يشغّل OpenClaw وكيلا واحدا:- تكون قيمة
agentIdالافتراضية هيmain. - تُفهرس الجلسات بصيغة
agent:main:<mainKey>. - تكون مساحة العمل الافتراضية
~/.openclaw/workspace(أو~/.openclaw/workspace-<profile>عند ضبطOPENCLAW_PROFILE). - تكون الحالة الافتراضية
~/.openclaw/agents/main/agent.
مساعد الوكلاء
استخدم معالج الوكلاء لإضافة وكيل معزول جديد:bindings (أو دع المعالج يفعل ذلك) لتوجيه الرسائل الواردة.
تحقق باستخدام:
بدء سريع
إنشاء مساحة عمل كل وكيل
استخدم المعالج أو أنشئ مساحات العمل يدويا:يحصل كل وكيل على مساحة عمل خاصة به تتضمن
SOUL.md وAGENTS.md وUSER.md اختياريا، إضافة إلى agentDir مخصص ومخزن جلسات ضمن ~/.openclaw/agents/<agentId>.إضافة الوكلاء والحسابات والارتباطات
أضف الوكلاء ضمن
agents.list، وحسابات القنوات ضمن channels.<channel>.accounts، واربطها باستخدام bindings (الأمثلة أدناه).عدة وكلاء = عدة أشخاص، عدة شخصيات
مع عدة وكلاء، يصبح كلagentId شخصية معزولة بالكامل:
- أرقام هواتف/حسابات مختلفة (لكل قناة
accountId). - شخصيات مختلفة (ملفات مساحة عمل لكل وكيل مثل
AGENTS.mdوSOUL.md). - مصادقة + جلسات منفصلة (لا تداخل إلا إذا فُعّل صراحة).
بحث ذاكرة QMD عبر الوكلاء
إذا كان على وكيل البحث في نصوص جلسات QMD لوكيل آخر، فأضف مجموعات إضافية ضمنagents.list[].memorySearch.qmd.extraCollections. استخدم agents.defaults.memorySearch.qmd.extraCollections فقط عندما يجب أن يرث كل وكيل مجموعات النصوص المشتركة نفسها.
رقم WhatsApp واحد، عدة أشخاص (تقسيم الرسائل المباشرة)
يمكنك توجيه رسائل WhatsApp المباشرة المختلفة إلى وكلاء مختلفين مع البقاء على حساب WhatsApp واحد. طابق حسب مرسل E.164 (مثل+15551234567) باستخدام peer.kind: "direct". لا تزال الردود تأتي من رقم WhatsApp نفسه (لا توجد هوية مرسل لكل وكيل).
تنهار المحادثات المباشرة إلى مفتاح الجلسة الرئيسي للوكيل، لذا يتطلب العزل الحقيقي وكيلا واحدا لكل شخص.
- التحكم في وصول الرسائل المباشرة عام لكل حساب WhatsApp (الاقتران/قائمة السماح)، وليس لكل وكيل.
- للمجموعات المشتركة، اربط المجموعة بوكيل واحد أو استخدم مجموعات البث.
قواعد التوجيه (كيف تختار الرسائل وكيلا)
الارتباطات حتمية والأكثر تحديدا يفوز:كسر التعادل ودلالات AND
كسر التعادل ودلالات AND
- إذا طابقت عدة ارتباطات في المستوى نفسه، يفوز الأول حسب ترتيب الإعداد.
- إذا عيّن ارتباط عدة حقول مطابقة (مثلا
peer+guildId)، فكل الحقول المحددة مطلوبة (دلالاتAND).
تفاصيل نطاق الحساب
تفاصيل نطاق الحساب
- الارتباط الذي يحذف
accountIdيطابق الحساب الافتراضي فقط. ولا يطابق كل الحسابات. - استخدم
accountId: "*"لمسار احتياطي على مستوى القناة عبر كل الحسابات. - استخدم
accountId: "<name>"لمطابقة حساب واحد. - إذا أضفت لاحقا الارتباط نفسه للوكيل نفسه مع معرّف حساب صريح، يرقّي OpenClaw الارتباط الحالي الخاص بالقناة فقط إلى ارتباط محدد النطاق بالحساب بدلا من تكراره.
عدة حسابات / أرقام هواتف
تستخدم القنوات التي تدعم عدة حسابات (مثل WhatsApp)accountId لتحديد كل تسجيل دخول. يمكن توجيه كل accountId إلى وكيل مختلف، وبذلك يمكن لخادم واحد استضافة عدة أرقام هواتف دون خلط الجلسات.
إذا أردت حسابا افتراضيا على مستوى القناة عندما يُحذف accountId، فاضبط channels.<channel>.defaultAccount (اختياري). عند عدم ضبطه، يرجع OpenClaw إلى default إذا كان موجودا، وإلا إلى أول معرّف حساب مضبوط (مرتبا).
تشمل القنوات الشائعة التي تدعم هذا النمط:
whatsapp,telegram,discord,slack,signal,imessageirc,line,googlechat,mattermost,matrix,nextcloud-talkzalo,zalouser,nostr,feishu
المفاهيم
agentId: “عقل” واحد (مساحة عمل، ومصادقة لكل وكيل، ومخزن جلسات لكل وكيل).accountId: مثيل حساب قناة واحد (مثل حساب WhatsApp"personal"مقابل"biz").binding: يوجّه الرسائل الواردة إلىagentIdعبر(channel, accountId, peer)ومعرّفات guild/team اختياريا.- تنهار المحادثات المباشرة إلى
agent:<agentId>:<mainKey>(“الرئيسية” لكل وكيل؛session.mainKey).
أمثلة المنصات
روبوتات Discord لكل وكيل
روبوتات Discord لكل وكيل
يرتبط كل حساب روبوت Discord بـ
accountId فريد. اربط كل حساب بوكيل وأبق قوائم السماح لكل روبوت.- ادعُ كل روبوت إلى خادم Discord وفعّل Message Content Intent.
- تعيش الرموز في
channels.discord.accounts.<id>.token(يمكن للحساب الافتراضي استخدامDISCORD_BOT_TOKEN).
روبوتات Telegram لكل وكيل
روبوتات Telegram لكل وكيل
- أنشئ روبوتًا واحدًا لكل وكيل باستخدام BotFather وانسخ كل رمز.
- تعيش الرموز في
channels.telegram.accounts.<id>.botToken(يمكن للحساب الافتراضي استخدامTELEGRAM_BOT_TOKEN). - عند وجود روبوتات متعددة في مجموعة Telegram نفسها، ادعُ كل روبوت واذكر الروبوت الذي يجب أن يجيب.
- عطّل Privacy Mode في BotFather لكل روبوت مجموعة، ثم أعد إضافة الروبوت حتى يطبق Telegram الإعداد.
- اسمح بالمجموعات باستخدام
channels.telegram.groups، أو استخدمgroupPolicy: "open"فقط لنشرات المجموعات الموثوقة. - ضع معرّفات المستخدمين المرسلين في
groupAllowFrom. تنتمي معرّفات المجموعات والمجموعات الفائقة إلىchannels.telegram.groups، وليسgroupAllowFrom. - اربط باستخدام
accountIdحتى يوجّه كل روبوت إلى وكيله الخاص.
أرقام WhatsApp لكل وكيل
أرقام WhatsApp لكل وكيل
اربط كل حساب قبل بدء Gateway:
~/.openclaw/openclaw.json (JSON5):الأنماط الشائعة
- WhatsApp اليومي + العمل العميق على Telegram
- القناة نفسها، نظير واحد إلى Opus
- وكيل عائلة مرتبط بمجموعة WhatsApp
اقسم حسب القناة: وجّه WhatsApp إلى وكيل يومي سريع وTelegram إلى وكيل Opus.ملاحظات:
- تستخدم هذه الأمثلة
accountId: "*"حتى تستمر الارتباطات في العمل إذا أضفت حسابات لاحقًا. - لتوجيه رسالة مباشرة واحدة أو مجموعة واحدة إلى Opus مع إبقاء الباقي على الدردشة، أضف ارتباط
match.peerلذلك النظير؛ تطابقات النظراء تفوز دائمًا على القواعد على مستوى القناة.
إعداد الصندوق المعزول والأدوات لكل وكيل
يمكن أن يكون لكل وكيل صندوقه المعزول وقيود أدواته الخاصة:يقع
setupCommand تحت sandbox.docker ويعمل مرة واحدة عند إنشاء الحاوية. يتم تجاهل تجاوزات sandbox.docker.* لكل وكيل عندما يكون النطاق المحسوم هو "shared".- عزل الأمان: قيّد الأدوات للوكلاء غير الموثوقين.
- التحكم بالموارد: اعزل وكلاء محددين مع إبقاء الآخرين على المضيف.
- سياسات مرنة: أذونات مختلفة لكل وكيل.
tools.elevated عام ويستند إلى المرسل؛ ولا يمكن إعداده لكل وكيل. إذا كنت تحتاج إلى حدود لكل وكيل، فاستخدم agents.list[].tools لمنع exec. لاستهداف المجموعات، استخدم agents.list[].groupChat.mentionPatterns حتى ترتبط إشارات @mentions بوضوح بالوكيل المقصود.ذات صلة
- وكلاء ACP — تشغيل أحزمة ترميز خارجية
- توجيه القنوات — كيف يتم توجيه الرسائل إلى الوكلاء
- الحضور — حضور الوكيل وتوافره
- الجلسة — عزل الجلسات وتوجيهها
- الوكلاء الفرعيون — تشغيل مهام وكلاء في الخلفية