القنوات والتوجيه¶
يقوم OpenClaw بتوجيه الردود مرة أخرى إلى القناة التي جاء منها message. لا يختار النموذج قناةً؛ فالتوجيه حتميّ ويتم التحكم فيه بواسطة تهيئة المضيف.
المصطلحات الأساسية¶
- Channel:
whatsapp،telegram،discord،slack،signal،imessage،webchat. - AccountId: مثيل حساب لكل قناة (عند الدعم).
- AgentId: مساحة عمل معزولة + مخزن جلسات («العقل»).
- SessionKey: مفتاح الحاوية المستخدم لتخزين السياق والتحكم في التزامن.
أشكال مفاتيح الجلسة (أمثلة)¶
تندمج الرسائل المباشرة في جلسة الوكيل الرئيسية:
agent:<agentId>:<mainKey>(الافتراضي:agent:main:main)
تبقى المجموعات والقنوات معزولة لكل قناة:
- المجموعات:
agent:<agentId>:<channel>:group:<id> - القنوات/الغرف:
agent:<agentId>:<channel>:channel:<id>
المواضيع (Threads):
- تضيف مواضيع Slack/Discord
:thread:<threadId>إلى المفتاح الأساسي. - تُضمِّن موضوعات منتديات Telegram
:topic:<topicId>ضمن مفتاح المجموعة.
أمثلة:
agent:main:telegram:group:-1001234567890:topic:42agent:main:discord:channel:123456:thread:987654
قواعد التوجيه (كيفية اختيار الوكيل)¶
يختار التوجيه وكيلاً واحدًا لكل رسالة واردة:
- مطابقة النظير الدقيقة (
bindingsمعpeer.kind+peer.id). - مطابقة النقابة (Discord) عبر
guildId. - مطابقة الفريق (Slack) عبر
teamId. - مطابقة الحساب (
accountIdعلى القناة). - مطابقة القناة (أي حساب على تلك القناة).
- الوكيل الافتراضي (
agents.list[].default، وإلا فأول إدخال في القائمة، مع الرجوع إلىmain).
يحدد الوكيل المطابق مساحة العمل ومخزن الجلسات المستخدمين.
مجموعات البث (تشغيل عدة وكلاء)¶
تتيح مجموعات البث تشغيل عدة وكلاء للنظير نفسه عندما يقوم OpenClaw عادةً بالرد (على سبيل المثال: في مجموعات WhatsApp، بعد بوابة الذكر/التفعيل).
التهيئة:
{
broadcast: {
strategy: "parallel",
"120363403215116621@g.us": ["alfred", "baerbel"],
"+15555550123": ["support", "logger"],
},
}
انظر: مجموعات البث.
نظرة عامة على التهيئة¶
agents.list: تعريفات الوكلاء المسماة (مساحة العمل، النموذج، إلخ).bindings: ربط القنوات/الحسابات/الأقران الواردة بالوكلاء.
مثال:
{
agents: {
list: [{ id: "support", name: "Support", workspace: "~/.openclaw/workspace-support" }],
},
bindings: [
{ match: { channel: "slack", teamId: "T123" }, agentId: "support" },
{ match: { channel: "telegram", peer: { kind: "group", id: "-100123" } }, agentId: "support" },
],
}
تخزين الجلسات¶
توجد مخازن الجلسات ضمن دليل الحالة (الافتراضي ~/.openclaw):
~/.openclaw/agents/<agentId>/sessions/sessions.json- تُحفظ سجلات JSONL بجوار المخزن
يمكنك تجاوز مسار المخزن عبر قوالب session.store و{agentId}.
سلوك WebChat¶
يرتبط WebChat بالوكيل المحدد ويستخدم افتراضيًا الجلسة الرئيسية للوكيل. وبسبب ذلك، يتيح WebChat عرض سياق عابر للقنوات لهذا الوكيل في مكان واحد.
سياق الرد¶
تتضمن الردود الواردة:
ReplyToIdوReplyToBodyوReplyToSenderعند توفرها.- يُلحَق السياق المُقتبَس بـ
Bodyعلى هيئة كتلة[Replying to ...].
هذا السلوك متسق عبر القنوات.