التكوين

مجموعات البث

الحالة: تجريبي
الإصدار: أُضيف في 2026.1.9

نظرة عامة

تمكن مجموعات البث وكلاء متعددين من معالجة والرد على نفس الرسالة في وقت واحد. يتيح لك ذلك إنشاء فرق وكلاء متخصصين يعملون معًا في مجموعة واتساب واحدة أو محادثة خاصة — كل ذلك باستخدام رقم هاتف واحد. النطاق الحالي: واتساب فقط (قناة الويب). يتم تقييم مجموعات البث بعد قوائم السماح للقناة وقواعد تفعيل المجموعة. في مجموعات واتساب، هذا يعني أن البث يحدث عندما يكون OpenClaw سيرد عادةً (على سبيل المثال: عند الاشارة إليه، اعتمادًا على إعدادات مجموعتك).

حالات الاستخدام

1. فرق وكلاء متخصصة

انشر وكلاء متعددين بمسؤوليات ذرية ومركزة:

Group: "فريق التطوير"
Agents:
  - CodeReviewer (يراجع مقاطع الكود)
  - DocumentationBot (يولد التوثيق)
  - SecurityAuditor (يفحص الثغرات الأمنية)
  - TestGenerator (يقترح حالات اختبار)

كل وكيل يعالج نفس الرسالة ويقدم منظوراته المتخصصة.

2. دعم متعدد اللغات

Group: "الدعم الدولي"
Agents:
  - Agent_EN (يرد بالإنجليزية)
  - Agent_DE (يرد بالألمانية)
  - Agent_ES (يرد بالإسبانية)

3. سير عمل ضمان الجودة

Group: "دعم العملاء"
Agents:
  - SupportAgent (يوفر الإجابة)
  - QAAgent (يراجع الجودة، يرد فقط إذا وجد مشاكل)

4. أتمتة المهام

Group: "إدارة المشروع"
Agents:
  - TaskTracker (يحدث قاعدة بيانات المهام)
  - TimeLogger (يسجل الوقت المستغرق)
  - ReportGenerator (ينشئ الملخصات)

التكوين

الإعداد الأساسي

أضف قسم broadcast على المستوى الأعلى (بجانب bindings). المفاتيح هي معرفات النظير (peer) في واتساب:

  • محادثات المجموعة: معرف مجموعة JID (مثال: 120363403215116621@g.us)
  • المحادثات الخاصة: رقم هاتف بتنسيق E.164 (مثال: +15551234567)
{
  "broadcast": {
    "120363403215116621@g.us": ["alfred", "baerbel", "assistant3"]
  }
}

النتيجة: عندما يكون OpenClaw سيرد في هذه الدردشة، سيشغل الوكلاء الثلاثة جميعًا.

استراتيجية المعالجة

تحكم في كيفية معالجة الوكلاء للرسائل:

متوازي (الافتراضي)

جميع الوكلاء يعالجون في وقت واحد:

{
  "broadcast": {
    "strategy": "parallel",
    "120363403215116621@g.us": ["alfred", "baerbel"]
  }
}

متسلسل

الوكلاء يعالجون بالترتيب (ينتظر كل واحد انتهاء الذي قبله):

{
  "broadcast": {
    "strategy": "sequential",
    "120363403215116621@g.us": ["alfred", "baerbel"]
  }
}

مثال كامل

{
  "agents": {
    "list": [
      {
        "id": "code-reviewer",
        "name": "Code Reviewer",
        "workspace": "/path/to/code-reviewer",
        "sandbox": { "mode": "all" }
      },
      {
        "id": "security-auditor",
        "name": "Security Auditor",
        "workspace": "/path/to/security-auditor",
        "sandbox": { "mode": "all" }
      },
      {
        "id": "docs-generator",
        "name": "Documentation Generator",
        "workspace": "/path/to/docs-generator",
        "sandbox": { "mode": "all" }
      }
    ]
  },
  "broadcast": {
    "strategy": "parallel",
    "120363403215116621@g.us": ["code-reviewer", "security-auditor", "docs-generator"],
    "120363424282127706@g.us": ["support-en", "support-de"],
    "+15555550123": ["assistant", "logger"]
  }
}

آلية العمل

تدفق الرسالة

  1. وصول رسالة إلى مجموعة واتساب
  2. فحص البث: يتحقق النظام مما إذا كان معرف النظير موجودًا في broadcast
  3. إذا كان في قائمة البث:
    • جميع الوكلاء المدرجين يعالجون الرسالة
    • كل وكيل له مفتاح جلسة خاص وسياق معزول
    • الوكلاء يعالجون بشكل متوازي (افتراضي) أو متسلسل
  4. إذا لم يكن في قائمة البث:
    • يتم تطبيق التوجيه العادي (أول ربط مطابق)

ملاحظة: مجموعات البث لا تتجاوز قوائم السماح للقناة أو قواعد تفعيل المجموعة (الإشارات/الأوامر/إلخ). هي فقط تغير أي وكلاء يتم تشغيلهم عندما تكون الرسالة مؤهلة للمعالجة.

عزل الجلسة

كل وكيل في مجموعة بث يحافظ على فصل تام لـ:

  • مفاتيح الجلسة (agent:alfred:whatsapp:group:120363... مقابل agent:baerbel:whatsapp:group:120363...)
  • سجل المحادثة (الوكيل لا يرى رسائل الوكلاء الآخرين)
  • مساحة العمل (بيئات معزولة إذا تم تكوينها)
  • الوصول للأدوات (قوائم سماح/منع مختلفة)
  • الذاكرة/السياق (ملفات IDENTITY.md، SOUL.md، إلخ منفصلة)
  • مخزن سياق المجموعة (الرسائل الأخيرة للمجموعة المستخدمة للسياق) يتم مشاركته لكل نظير، لذا جميع وكلاء البث يرون نفس السياق عند التشغيل

هذا يسمح لكل وكيل بأن يكون له:

  • شخصيات مختلفة
  • وصول مختلف للأدوات (مثلاً، للقراءة فقط مقابل القراءة والكتابة)
  • نماذج مختلفة (مثلاً، opus مقابل sonnet)
  • مهارات مثبتة مختلفة

مثال: جلسات معزولة

في المجموعة 120363403215116621@g.us مع الوكلاء ["alfred", "baerbel"]: سياق ألفريد:

Session: agent:alfred:whatsapp:group:120363403215116621@g.us
History: [user message, alfred's previous responses]
Workspace: /Users/pascal/openclaw-alfred/
Tools: read, write, exec

سياق بيربل:

Session: agent:baerbel:whatsapp:group:120363403215116621@g.us
History: [user message, baerbel's previous responses]
Workspace: /Users/pascal/openclaw-baerbel/
Tools: read only

أفضل الممارسات

1. حافظ على تركيز الوكلاء

صمم كل وكيل بمسؤولية واحدة واضحة:

{
  "broadcast": {
    "DEV_GROUP": ["formatter", "linter", "tester"]
  }
}

جيد: كل وكيل له وظيفة واحدة
سيء: وكيل عام واحد "مساعد-التطوير"

2. استخدم أسماء توضيحية

اجعل وظيفة كل وكيل واضحة:

{
  "agents": {
    "security-scanner": { "name": "Security Scanner" },
    "code-formatter": { "name": "Code Formatter" },
    "test-generator": { "name": "Test Generator" }
  }
}

3. قم بتكوين وصول مختلف للأدوات

أعطِ الوكلاء فقط الأدوات التي يحتاجونها:

{
  "agents": {
    "reviewer": {
      "tools": { "allow": ["read", "exec"] } // للقراءة فقط
    },
    "fixer": {
      "tools": { "allow": ["read", "write", "edit", "exec"] } // للقراءة والكتابة
    }
  }
}

4. راقب الأداء

مع العديد من الوكلاء، ضع في اعتبارك:

  • استخدام "strategy": "parallel" (الافتراضي) للسرعة
  • تحديد مجموعات البث بـ 5-10 وكلاء كحد أقصى
  • استخدام نماذج أسرع للوكلاء الأبسط

5. تعامل مع الأعطال بأسلوب أنيق

يفشل الوكلاء بشكل مستقل. خطأ وكيل واحد لا يعيق الآخرين:

Message → [Agent A ✓, Agent B ✗ error, Agent C ✓]
Result: Agent A and C respond, Agent B logs error

التوافقية

مقدمي الخدمة

مجموعات البث تعمل حاليًا مع:

  • ✅ واتساب (مُطَبَّق)
  • 🚧 تيليجرام (مخطط له)
  • 🚧 ديسكورد (مخطط له)
  • 🚧 سلاك (مخطط له)

التوجيه

تعمل مجموعات البث جنبًا إلى جنب مع التوجيه الحالي:

{
  "bindings": [
    {
      "match": { "channel": "whatsapp", "peer": { "kind": "group", "id": "GROUP_A" } },
      "agentId": "alfred"
    }
  ],
  "broadcast": {
    "GROUP_B": ["agent1", "agent2"]
  }
}
  • GROUP_A: فقط ألفريد يرد (توجيه عادي)
  • GROUP_B: agent1 و agent2 يردان (بث)

الأولوية: broadcast يأخذ الأولوية على bindings.

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

الوكلاء لا يردون

تحقق من:

  1. معرفات الوكلاء موجودة في agents.list
  2. تنسيق معرف النظير صحيح (مثال: 120363403215116621@g.us)
  3. الوكلاء غير مدرجين في قوائم المنع

التصحيح:

tail -f ~/.openclaw/logs/gateway.log | grep broadcast

وكيل واحد فقط يرد

السبب: معرف النظير قد يكون في bindings وليس في broadcast. الحل: أضفه إلى تكوين البث أو احذفه من الربط.

مشاكل في الأداء

إذا كان بطيئًا مع العديد من الوكلاء:

  • قلل عدد الوكلاء لكل مجموعة
  • استخدم نماذج أخف (sonnet بدلاً من opus)
  • تحقق من وقت بدء البيئة المعزولة

أمثلة

المثال 1: فريق مراجعة الكود

{
  "broadcast": {
    "strategy": "parallel",
    "120363403215116621@g.us": [
      "code-formatter",
      "security-scanner",
      "test-coverage",
      "docs-checker"
    ]
  },
  "agents": {
    "list": [
      {
        "id": "code-formatter",
        "workspace": "~/agents/formatter",
        "tools": { "allow": ["read", "write"] }
      },
      {
        "id": "security-scanner",
        "workspace": "~/agents/security",
        "tools": { "allow": ["read", "exec"] }
      },
      {
        "id": "test-coverage",
        "workspace": "~/agents/testing",
        "tools": { "allow": ["read", "exec"] }
      },
      { "id": "docs-checker", "workspace": "~/agents/docs", "tools": { "allow": ["read"] } }
    ]
  }
}

المستخدم يرسل: مقتطف كود
الردود:

  • code-formatter: "تم إصلاح المسافات البادئة وإضافة تلميحات النوع"
  • security-scanner: "⚠️ ثغرة حقن SQL في السطر 12"
  • test-coverage: "التغطية 45%، ناقص اختبارات لحالات الخطأ"
  • docs-checker: "ناقص وثيقة للدالة process_data"

المثال 2: دعم متعدد اللغات

{
  "broadcast": {
    "strategy": "sequential",
    "+15555550123": ["detect-language", "translator-en", "translator-de"]
  },
  "agents": {
    "list": [
      { "id": "detect-language", "workspace": "~/agents/lang-detect" },
      { "id": "translator-en", "workspace": "~/agents/translate-en" },
      { "id": "translator-de", "workspace": "~/agents/translate-de" }
    ]
  }
}

مرجع API

مخطط التكوين

interface OpenClawConfig {
  broadcast?: {
    strategy?: "parallel" | "sequential";
    [peerId: string]: string[];
  };
}

الحقول

  • strategy (اختياري): كيفية معالجة الوكلاء
    • "parallel" (الافتراضي): جميع الوكلاء يعالجون في وقت واحد
    • "sequential": الوكلاء يعالجون بترتيب المصفوفة
  • [peerId]: معرف مجموعة واتساب JID، رقم E.164، أو معرف نظير آخر
    • القيمة: مصفوفة من معرفات الوكلاء التي يجب أن تعالج الرسائل

القيود

  1. الحد الأقصى للوكلاء: لا يوجد حد صارم، لكن 10+ وكلاء قد يكون بطيئًا
  2. السياق المشترك: الوكلاء لا يرون ردود بعضهم البعض (عن قصد)
  3. ترتيب الرسائل: الردود المتوازية قد تصل بأي ترتيب
  4. حدود المعدل: جميع الوكلاء تحتسب ضمن حدود معدل واتساب

تحسينات مستقبلية

ميزات مخطط لها:

  • وضع السياق المشترك (الوكلاء يرون ردود بعضهم البعض)
  • تنسيق الوكلاء (يمكن للوكلاء إرسال إشارات لبعضهم البعض)
  • اختيار وكيل ديناميكي (اختيار الوكلاء بناءً على محتوى الرسالة)
  • أولويات الوكلاء (بعض الوكلاء يرد قبل الآخرين)

انظر أيضًا

المجموعاتتوجيه القناة