---
read_when:
    - Налаштування саме груп WhatsApp
    - Зміна режимів активації WhatsApp (`mention` проти `always`)
    - Налаштування ключів групових сеансів WhatsApp або контексту повідомлень в очікуванні
sidebarTitle: WhatsApp groups
summary: Обробка групових повідомлень WhatsApp — активація, списки дозволених, сеанси та впровадження контексту
title: Повідомлення груп WhatsApp
x-i18n:
    generated_at: "2026-06-27T17:10:13Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 790866fd959b43d94b745082f3c90920b81c0a016492e9e164c600663f1b2eee
    source_path: channels/group-messages.md
    workflow: 16
---

Для моделі груп між каналами (Discord, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo) див. [Групи](/uk/channels/groups). Ця сторінка описує специфічну для WhatsApp поведінку поверх цієї моделі: активацію, списки дозволених груп, сеансові ключі для кожної групи та додавання контексту з очікуваних повідомлень.

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

<Note>
`agents.list[].groupChat.mentionPatterns` також використовується Telegram, Discord, Slack та iMessage. Для налаштувань із кількома агентами задайте це для кожного агента або використовуйте `messages.groupChat.mentionPatterns` як глобальний запасний варіант.
</Note>

## Поведінка

- Режими активації: `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)]`, щоб OpenClaw знав, хто говорить.
- Ефемерні/одноразові для перегляду повідомлення: ми розгортаємо їх перед видобуванням тексту/згадок, тож звернення всередині них усе одно спрацьовують.
- Системний промпт групи: на першому кроці групового сеансу (і щоразу, коли `/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`) застосовуються лише до сеансу цієї групи; надсилайте їх як окремі повідомлення, щоб вони зареєструвалися. Ваш особистий сеанс приватних повідомлень залишається незалежним.

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

- Ручна димова перевірка:
  - Надішліть звернення `@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-tool-only, набір типово починається негайно, щоб учасники групи бачили, що агент працює, навіть якщо автоматична фінальна відповідь не буде опублікована. Явна конфігурація режиму набору все одно має пріоритет.

## Пов’язане

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