---
read_when:
    - تغيير قواعد رسائل المجموعات أو الإشارات
summary: السلوك والإعدادات الخاصة بمعالجة رسائل مجموعات WhatsApp (`mentionPatterns` مشتركة عبر جميع الواجهات)
title: رسائل المجموعات
x-i18n:
    generated_at: "2026-04-12T23:27:59Z"
    model: gpt-5.4
    provider: openai
    source_hash: 5d9484dd1de74d42f8dce4c3ac80d60c24864df30a7802e64893ef55506230fe
    source_path: channels/group-messages.md
    workflow: 15
---

# رسائل المجموعات (قناة WhatsApp web)

الهدف: السماح لـ Clawd بالبقاء داخل مجموعات WhatsApp، والاستيقاظ فقط عند الإشارة إليه، مع إبقاء هذا الخيط منفصلًا عن جلسة الرسائل الخاصة الشخصية.

ملاحظة: يُستخدم `agents.list[].groupChat.mentionPatterns` الآن أيضًا بواسطة Telegram/Discord/Slack/iMessage؛ يركّز هذا المستند على السلوك الخاص بـ WhatsApp. في إعدادات الوكلاء المتعددين، اضبط `agents.list[].groupChat.mentionPatterns` لكل وكيل (أو استخدم `messages.groupChat.mentionPatterns` كبديل عام).

## التنفيذ الحالي (2025-12-03)

- أوضاع التفعيل: `mention` (الافتراضي) أو `always`. يتطلب `mention` إشارة (إشارات WhatsApp @ الحقيقية عبر `mentionedJids`، أو أنماط regex آمنة، أو رقم E.164 الخاص بالبوت في أي موضع داخل النص). يؤدي `always` إلى إيقاظ الوكيل عند كل رسالة، لكن ينبغي أن يرد فقط عندما يمكنه إضافة قيمة فعلية؛ وإلا فإنه يعيد رمز الصمت المطابق تمامًا `NO_REPLY` / `no_reply`. يمكن تعيين القيم الافتراضية في الإعدادات (`channels.whatsapp.groups`) وتجاوزها لكل مجموعة عبر `/activation`. عند تعيين `channels.whatsapp.groups`، فإنه يعمل أيضًا كقائمة سماح للمجموعات (ضمّن `"*"` للسماح بالجميع).
- سياسة المجموعات: يتحكم `channels.whatsapp.groupPolicy` فيما إذا كانت رسائل المجموعات مقبولة (`open|disabled|allowlist`). يستخدم `allowlist` القيمة `channels.whatsapp.groupAllowFrom` (والاحتياطية: `channels.whatsapp.allowFrom` الصريحة). القيمة الافتراضية هي `allowlist` (محظور حتى تضيف المرسلين).
- جلسات لكل مجموعة: تبدو مفاتيح الجلسات بهذا الشكل `agent:<agentId>:whatsapp:group:<jid>` لذلك تكون أوامر مثل `/verbose on` أو `/trace on` أو `/think high` (المرسلة كرسائل مستقلة) محصورة في تلك المجموعة؛ ولا تتأثر حالة الرسائل الخاصة الشخصية. يتم تخطي Heartbeat لخيوط المجموعات.
- حقن السياق: تُضاف رسائل المجموعات **المعلقة فقط** (الافتراضي 50) التي _لم_ تؤدِّ إلى تشغيل تحت السابقة `[Chat messages since your last reply - for context]`، مع وضع السطر المُشغِّل تحت `[Current message - respond to this]`. الرسائل الموجودة بالفعل في الجلسة لا يُعاد حقنها.
- إظهار المرسل: تنتهي كل دفعة مجموعة الآن بـ `[from: Sender Name (+E164)]` لكي يعرف Pi من الذي يتحدث.
- المؤقتة/العرض مرة واحدة: نفكّ تغليفها قبل استخراج النص/الإشارات، لذا تظل الإشارات بداخلها قادرة على التشغيل.
- مطالبة النظام للمجموعة: في أول دور من جلسة المجموعة (وفي كل مرة يغيّر فيها `/activation` الوضع) نحقن فقرة قصيرة في مطالبة النظام مثل `You are replying inside the WhatsApp group "<subject>". Group members: Alice (+44...), Bob (+43...), … Activation: trigger-only … Address the specific sender noted in the message context.` إذا لم تكن البيانات الوصفية متاحة، فإننا لا نزال نخبر الوكيل بأنها دردشة مجموعة.

## مثال إعدادات (WhatsApp)

أضف كتلة `groupChat` إلى `~/.openclaw/openclaw.json` لكي تعمل الإشارات بأسماء العرض حتى عندما يزيل WhatsApp الرمز المرئي `@` من نص الرسالة:

```json5
{
  channels: {
    whatsapp: {
      groups: {
        "*": { requireMention: true },
      },
    },
  },
  agents: {
    list: [
      {
        id: "main",
        groupChat: {
          historyLimit: 50,
          mentionPatterns: ["@?openclaw", "\\+?15555550123"],
        },
      },
    ],
  },
}
```

ملاحظات:

- تعابير regex غير حساسة لحالة الأحرف وتستخدم وسائل الحماية نفسها الخاصة بالتعبيرات الآمنة كما في أسطح إعدادات regex الأخرى؛ يتم تجاهل الأنماط غير الصالحة والتكرار المتداخل غير الآمن.
- لا يزال WhatsApp يرسل الإشارات القياسية عبر `mentionedJids` عندما ينقر شخص ما على جهة الاتصال، لذلك نادرًا ما تكون الحاجة إلى الاحتياط باستخدام الرقم مطلوبة، لكنها تظل وسيلة أمان مفيدة.

### أمر التفعيل (للمالك فقط)

استخدم أمر دردشة المجموعة:

- `/activation mention`
- `/activation always`

يمكن فقط لرقم المالك (من `channels.whatsapp.allowFrom`، أو رقم E.164 الخاص بالبوت نفسه عند عدم التعيين) تغيير هذا. أرسل `/status` كرسالة مستقلة داخل المجموعة لمعرفة وضع التفعيل الحالي.

## كيفية الاستخدام

1. أضف حساب WhatsApp الخاص بك (الذي يشغّل OpenClaw) إلى المجموعة.
2. قل `@openclaw …` (أو ضمّن الرقم). لن يتمكن من تشغيله إلا المرسلون الموجودون في قائمة السماح ما لم تضبط `groupPolicy: "open"`.
3. ستتضمن مطالبة الوكيل سياق المجموعة الحديث بالإضافة إلى العلامة الختامية `[from: …]` حتى يتمكن من مخاطبة الشخص الصحيح.
4. التوجيهات على مستوى الجلسة (`/verbose on`، `/trace on`، `/think high`، `/new` أو `/reset`، `/compact`) تنطبق فقط على جلسة تلك المجموعة؛ أرسلها كرسائل مستقلة حتى يتم تسجيلها. وتظل جلسة الرسائل الخاصة الشخصية مستقلة.

## الاختبار / التحقق

- اختبار يدوي سريع:
  - أرسل إشارة `@openclaw` في المجموعة وتأكد من وجود رد يشير إلى اسم المرسل.
  - أرسل إشارة ثانية وتحقق من تضمين كتلة السجل ثم مسحها في الدور التالي.
- افحص سجلات Gateway (شغّل باستخدام `--verbose`) لرؤية إدخالات `inbound web message` التي تعرض `from: <groupJid>` واللاحقة `[from: …]`.

## اعتبارات معروفة

- يتم تخطي Heartbeat عمدًا في المجموعات لتجنب الرسائل المزعجة.
- يستخدم منع التكرار النص المجمع للدفعة؛ إذا أرسلت النص نفسه مرتين بدون إشارات، فلن يحصل إلا الأول على رد.
- ستظهر إدخالات مخزن الجلسات بالشكل `agent:<agentId>:whatsapp:group:<jid>` في مخزن الجلسات (`~/.openclaw/agents/<agentId>/sessions/sessions.json` افتراضيًا)؛ وعدم وجود إدخال يعني فقط أن المجموعة لم تؤدِّ إلى تشغيل بعد.
- مؤشرات الكتابة في المجموعات تتبع `agents.defaults.typingMode` (الافتراضي: `message` عند عدم وجود إشارة).
