شغّل عدة وكلاء معزولين، لكل منهم مساحة العمل الخاصة به، ودليل الحالة (Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
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، ثم تُرشَّح بواسطة قائمة السماح الفعالة للوكيل عند تكوينها. استخدم 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 (أو دع المعالج يفعل ذلك) لتوجيه الرسائل الواردة.
تحقق عبر:
البدء السريع
Create each agent workspace
استخدم المعالج أو أنشئ مساحات العمل يدويًا:يحصل كل وكيل على مساحة عمل خاصة به تحتوي
SOUL.md وAGENTS.md وUSER.md اختياريًا، بالإضافة إلى agentDir مخصص ومخزن جلسات تحت ~/.openclaw/agents/<agentId>.Add agents, accounts, and bindings
أضف الوكلاء تحت
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 (الاقتران/قائمة السماح)، وليس لكل وكيل.
- للمجموعات المشتركة، اربط المجموعة بوكيل واحد أو استخدم مجموعات البث.
قواعد التوجيه (كيف تختار الرسائل وكيلًا)
الارتباطات حتمية والأكثر تحديدًا يفوز:Tie-breaking and AND semantics
Tie-breaking and AND semantics
- إذا طابقت عدة ارتباطات في المستوى نفسه، يفوز أول ارتباط بترتيب الإعدادات.
- إذا عيّن ارتباط عدة حقول مطابقة (مثل
peer+guildId)، فكل الحقول المحددة مطلوبة (دلالاتAND).
Account-scope detail
Account-scope detail
- الارتباط الذي يحذف
accountIdيطابق الحساب الافتراضي فقط. - استخدم
accountId: "*"لرجوع احتياطي على مستوى القناة عبر كل الحسابات. - إذا أضفت لاحقًا الارتباط نفسه للوكيل نفسه مع معرف حساب صريح، يرقي 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)ومعرفات النقابة/الفريق اختياريًا.- تنهار المحادثات المباشرة إلى
agent:<agentId>:<mainKey>(“الرئيسية” لكل وكيل؛session.mainKey).
أمثلة المنصات
Discord bots per agent
Discord bots per agent
يعيَّن كل حساب روبوت Discord إلى
accountId فريد. اربط كل حساب بوكيل وحافظ على قوائم السماح لكل روبوت.- ادعُ كل بوت إلى الخادم وفعّل Message Content Intent.
- تعيش الرموز في
channels.discord.accounts.<id>.token(يمكن للحساب الافتراضي استخدامDISCORD_BOT_TOKEN).
بوتات Telegram لكل وكيل
بوتات Telegram لكل وكيل
- أنشئ بوتًا واحدًا لكل وكيل باستخدام BotFather وانسخ كل رمز.
- تعيش الرموز في
channels.telegram.accounts.<id>.botToken(يمكن للحساب الافتراضي استخدامTELEGRAM_BOT_TOKEN).
أرقام WhatsApp لكل وكيل
أرقام WhatsApp لكل وكيل
اربط كل حساب قبل بدء Gateway:
~/.openclaw/openclaw.json (JSON5):الأنماط الشائعة
- WhatsApp اليومي + العمل العميق على Telegram
- القناة نفسها، نظير واحد إلى Opus
- وكيل عائلي مربوط بمجموعة WhatsApp
قسّم حسب القناة: وجّه WhatsApp إلى وكيل يومي سريع، وTelegram إلى وكيل Opus.ملاحظات:
- إذا كانت لديك حسابات متعددة لقناة، فأضف
accountIdإلى الربط (على سبيل المثال{ channel: "whatsapp", accountId: "personal" }). - لتوجيه رسالة مباشرة/مجموعة واحدة إلى Opus مع إبقاء البقية على الدردشة، أضف ربط
match.peerلذلك النظير؛ تطابقات النظير تفوز دائمًا على القواعد العامة للقناة.
إعداد صندوق العزل والأدوات لكل وكيل
يمكن لكل وكيل أن تكون لديه قيود صندوق عزل وأدوات خاصة به:يعيش
setupCommand تحت sandbox.docker ويُشغَّل مرة واحدة عند إنشاء الحاوية. يتم تجاهل تجاوزات sandbox.docker.* الخاصة بكل وكيل عندما يكون النطاق المحسوم هو "shared".- عزل أمني: قيّد الأدوات للوكلاء غير الموثوقين.
- التحكم في الموارد: اعزل وكلاء محددين مع إبقاء الآخرين على المضيف.
- سياسات مرنة: أذونات مختلفة لكل وكيل.
tools.elevated عام ومبني على المُرسِل؛ ولا يمكن تكوينه لكل وكيل. إذا كنت تحتاج إلى حدود لكل وكيل، فاستخدم agents.list[].tools لمنع exec. لاستهداف المجموعات، استخدم agents.list[].groupChat.mentionPatterns بحيث تُطابَق إشارات @ بوضوح مع الوكيل المقصود.ذات صلة
- وكلاء ACP — تشغيل حاضنات ترميز خارجية
- توجيه القنوات — كيف تُوجَّه الرسائل إلى الوكلاء
- الحضور — حضور الوكيل وتوفره
- الجلسة — عزل الجلسات وتوجيهها
- الوكلاء الفرعيون — بدء تشغيلات وكلاء في الخلفية