Skip to main content
Статус: Экспериментальная функция. Добавлена в версии 2026.1.9. Только для WhatsApp (веб-канал).

Обзор

Группы рассылки запускают несколько агентов для одного входящего сообщения. Каждый агент обрабатывает сообщение в собственном изолированном сеансе и публикует свой ответ, поэтому один номер WhatsApp может обслуживать команду специализированных агентов в одном групповом чате или личной переписке. Группы рассылки проверяются после списков разрешённых каналов и правил активации групп. В группах WhatsApp рассылка выполняется, когда OpenClaw обычно должен ответить (например, при упоминании — в зависимости от настроек группы). Она изменяет только то, какие агенты запускаются, но не определяет, допускается ли сообщение к обработке. Активный контур контроля качества WhatsApp включает whatsapp-broadcast-group-fanout, который проверяет, что одно сообщение с упоминанием в группе может привести к появлению разных видимых ответов от двух настроенных агентов.

Конфигурация

Базовая настройка

Добавьте раздел верхнего уровня broadcast (рядом с bindings). Ключи — идентификаторы собеседников WhatsApp, значения — массивы идентификаторов агентов:
  • групповые чаты: JID группы (например, 120363403215116621@g.us)
  • личные сообщения: номер телефона отправителя в формате E.164 (например, +15551234567)
Результат: когда OpenClaw должен ответить в этом чате, запускаются все три агента. Каждый указанный идентификатор агента должен существовать в agents.list: проверка конфигурации сообщает о неизвестных идентификаторах, а среда выполнения пропускает их с предупреждением Broadcast agent <id> not found in agents.list; skipping.

Стратегия обработки

broadcast.strategy определяет, как агенты обрабатывают сообщение:

Полный пример

Принцип работы

Поток сообщений

1

Поступает входящее сообщение

Поступает сообщение из группы WhatsApp или личной переписки.
2

Маршрутизация и допуск

OpenClaw применяет списки разрешённых каналов, правила активации групп и настроенное владение привязкой ACP.
3

Проверка рассылки

Если маршрут не принадлежит настроенной привязке ACP, OpenClaw проверяет наличие идентификатора собеседника в broadcast.
4

Если применяется рассылка

  • Все указанные агенты обрабатывают сообщение.
  • У каждого агента есть собственный ключ сеанса и изолированный контекст.
  • Агенты обрабатывают сообщение параллельно (по умолчанию) или последовательно.
  • Аудиовложения расшифровываются один раз перед разветвлением, поэтому агенты используют общую расшифровку вместо отдельных вызовов STT.
5

Если рассылка не применяется

OpenClaw направляет сообщение по обычному маршруту или по настроенному маршруту сеанса ACP, выбранному при маршрутизации.
Группы рассылки не обходят списки разрешённых каналов или правила активации групп (упоминания, команды и т. д.). Они изменяют только то, какие агенты запускаются, когда сообщение допущено к обработке.

Изоляция сеансов

Для каждого агента в группе рассылки полностью разделены:
  • Ключи сеансов (agent:alfred:whatsapp:group:120363... и agent:baerbel:whatsapp:group:120363...)
  • История переписки (агент не видит ответы других агентов)
  • Рабочее пространство (отдельные песочницы, если они настроены)
  • Доступ к инструментам (разные списки разрешений и запретов)
  • Память и контекст (отдельные IDENTITY.md, SOUL.md и т. д.)
Одно исключение намеренно является общим: буфер контекста группы (последние сообщения группы, используемые для контекста) совместно используется для каждого собеседника, поэтому при запуске все агенты рассылки видят одинаковый контекст. Он очищается один раз после завершения разветвления. Благодаря этому агенты могут иметь разные характеры, модели, навыки и права доступа к инструментам (например, только чтение или чтение и запись).

Пример: изолированные сеансы

В группе 120363403215116621@g.us с агентами ["alfred", "baerbel"]:

Сценарии использования

  • Команды специализированных агентов: группа разработчиков, в которой code-reviewer, security-auditor, test-generator и docs-checker отвечают на одно сообщение каждый со своей точки зрения.
  • Многоязычная поддержка: один чат поддержки, в котором support-en, support-de и support-es отвечают на своих языках.
  • Контроль качества: support-agent отвечает, а qa-agent проверяет ответ и отвечает только при обнаружении проблем.
  • Автоматизация задач: task-tracker, time-logger и report-generator получают одно и то же обновление состояния.

Рекомендации

Назначайте каждому агенту одну чёткую обязанность (formatter, linter, tester) вместо одного универсального агента «помощник разработчика».
reviewer имеет доступ только для чтения. fixer может читать и записывать.
При большом количестве агентов предпочитайте "strategy": "parallel" (по умолчанию), ограничивайте группы рассылки несколькими агентами и используйте более быстрые модели для простых агентов.
Сбои агентов происходят независимо. Ошибка одного агента записывается в журнал (Broadcast agent <id> failed: ...) и не блокирует остальных.

Совместимость

Провайдеры

В настоящее время группы рассылки реализованы только для WhatsApp (веб-канал). Другие каналы игнорируют конфигурацию broadcast.

Маршрутизация

Группы рассылки работают вместе с существующей маршрутизацией:
  • GROUP_A: отвечает только alfred (обычная маршрутизация).
  • GROUP_B: отвечают agent1 И agent2 (рассылка).
Приоритет: broadcast имеет приоритет над обычными привязками маршрутов. Настроенные привязки ACP (bindings[].type="acp") являются эксклюзивными: при совпадении OpenClaw направляет сообщение в настроенный сеанс ACP вместо разветвлённой рассылки.

Устранение неполадок

Проверьте:
  1. Идентификаторы агентов существуют в agents.list (проверка конфигурации отклоняет неизвестные идентификаторы).
  2. Формат идентификатора собеседника корректен (JID группы, например 120363403215116621@g.us, или номер E.164, например +15551234567, для личных сообщений).
  3. Сообщение прошло обычные проверки допуска (правила упоминаний и активации по-прежнему применяются).
Отладка:
При успешном разветвлении в журнал записывается Broadcasting message to <n> agents (<strategy>).
Причина: идентификатор собеседника может находиться в обычных привязках маршрутов, но отсутствовать в broadcast, либо он может соответствовать эксклюзивной настроенной привязке ACP.Исправление: добавьте собеседников с обычной привязкой маршрута в конфигурацию рассылки или удалите либо измените настроенную привязку ACP, если требуется разветвлённая рассылка.
Если при большом количестве агентов работа замедляется: сократите число агентов в группе, используйте более лёгкие модели и проверьте время запуска песочницы.

Примеры

Один фрагмент кода в группе приводит к четырём ответам: исправления форматирования, обнаруженная проблема безопасности, пробел в покрытии тестами и небольшое замечание к документации.

Справочник API

Схема конфигурации

Поля

"parallel" | "sequential"
по умолчанию:"\"parallel\""
Способ обработки агентами. parallel запускает всех агентов одновременно; sequential запускает их в порядке массива.
string[]
JID группы WhatsApp или номер телефона в формате E.164. Значение — массив идентификаторов агентов, каждый из которых должен обрабатывать сообщения от этого собеседника.

Ограничения

  1. Максимальное количество агентов: жёсткого ограничения нет, но большое количество агентов (10+) может замедлить работу.
  2. Общий контекст: агенты не видят ответы друг друга (это предусмотрено архитектурой).
  3. Порядок сообщений: параллельные ответы могут поступать в любом порядке.
  4. Ограничения частоты запросов: все ответы отправляются из одной учётной записи WhatsApp, поэтому ответ каждого агента учитывается в общих ограничениях частоты запросов WhatsApp.

Связанные материалы