---
read_when:
    - Зміна правил групових повідомлень або згадок
summary: Поведінка та конфігурація для обробки групових повідомлень у WhatsApp (`mentionPatterns` спільно використовуються на всіх поверхнях)
title: Групові повідомлення
x-i18n:
    generated_at: "2026-04-23T22:57:27Z"
    model: gpt-5.4
    provider: openai
    source_hash: f67ed72c0e61aef18a529cb1d9dbc98909e213352ff7cbef93fe4c9bf8357186
    source_path: channels/group-messages.md
    workflow: 15
---

# Групові повідомлення (вебканал WhatsApp)

Мета: дозволити Clawd бути в групах WhatsApp, прокидатися лише коли його згадують, і тримати цей потік окремо від особистої сесії в DM.

Примітка: `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` (надіслані як окремі повідомлення), прив’язуються до цієї групи; стан особистих DM не змінюється. Heartbeat пропускається для групових потоків.
- Додавання контексту: групові повідомлення **лише в очікуванні** (типово 50), які _не_ спричинили запуск, додаються на початок під `[Chat messages since your last reply - for context]`, а рядок, що спричинив запуск, — під `[Current message - respond to this]`. Повідомлення, які вже є в сесії, не додаються повторно.
- Відображення відправника: кожна групова порція тепер закінчується рядком `[from: Ім’я відправника (+E164)]`, щоб Pi знав, хто говорить.
- Ефемерні/view-once: ми розгортаємо їх перед витягуванням тексту/згадок, тому згадки всередині них теж спричиняють запуск.
- Системний промпт групи: на першому ході групової сесії (і щоразу, коли `/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-шаблони нечутливі до регістру та використовують ті самі захисні обмеження safe-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`) застосовуються лише до сесії цієї групи; надсилайте їх як окремі повідомлення, щоб вони спрацювали. Ваша особиста DM-сесія залишається незалежною.

## Тестування / перевірка

- Ручна smoke-перевірка:
  - Надішліть згадку `@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`, коли немає згадки).

## Пов’язане

- [Групи](/uk/channels/groups)
- [Маршрутизація каналів](/uk/channels/channel-routing)
- [Групи розсилки](/uk/channels/broadcast-groups)
