Группы рассылки
Статус: Экспериментальный Версия: Добавлено в 2026.1.9
Обзор
Группы рассылки позволяют нескольким агентам обрабатывать и отвечать на одно и то же сообщение одновременно. Это даёт возможность создавать специализированные команды агентов, работающих вместе в одной группе WhatsApp или ЛС — всё через один номер телефона.
Текущий охват: только WhatsApp (веб-канал).
Группы рассылки оцениваются после списков доступа канала и правил активации групп. В группах WhatsApp это означает, что рассылка происходит, когда OpenClaw обычно ответил бы (например: при упоминании, в зависимости от настроек группы).
Сценарии использования
1. Специализированные команды агентов
Развёртывание нескольких агентов с атомарными, сфокусированными обязанностями:
Группа: "Development Team"
Агенты:
- CodeReviewer (ревью фрагментов кода)
- DocumentationBot (генерация документации)
- SecurityAuditor (проверка уязвимостей)
- TestGenerator (предложение тестов)
Каждый агент обрабатывает одно и то же сообщение и предоставляет свою специализированную точку зрения.
2. Мультиязычная поддержка
Группа: "International Support"
Агенты:
- Agent_EN (отвечает на английском)
- Agent_DE (отвечает на немецком)
- Agent_ES (отвечает на испанском)
3. Рабочие процессы контроля качества
Группа: "Customer Support"
Агенты:
- SupportAgent (даёт ответ)
- QAAgent (проверяет качество, отвечает только при обнаружении проблем)
4. Автоматизация задач
Группа: "Project Management"
Агенты:
- TaskTracker (обновляет базу задач)
- TimeLogger (логирует затраченное время)
- ReportGenerator (создаёт сводки)
Конфигурация
Базовая настройка
Добавьте секцию broadcast верхнего уровня (рядом с bindings). Ключи — ID пиров WhatsApp:
- Групповые чаты: JID группы (например,
[email protected]) - ЛС: номер телефона E.164 (например,
+15551234567)
{
"broadcast": {
"[email protected]": ["alfred", "baerbel", "assistant3"]
}
}
Результат: Когда OpenClaw ответил бы в этом чате, будут запущены все три агента.
Стратегия обработки
Управление порядком обработки агентами:
Параллельная (по умолчанию)
Все агенты обрабатывают одновременно:
{
"broadcast": {
"strategy": "parallel",
"[email protected]": ["alfred", "baerbel"]
}
}
Последовательная
Агенты обрабатывают по порядку (каждый ждёт завершения предыдущего):
{
"broadcast": {
"strategy": "sequential",
"[email protected]": ["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",
"[email protected]": ["code-reviewer", "security-auditor", "docs-generator"],
"[email protected]": ["support-en", "support-de"],
"+15555550123": ["assistant", "logger"]
}
}
Как это работает
Поток сообщений
- Входящее сообщение приходит в группу WhatsApp
- Проверка рассылки: система проверяет, есть ли ID пира в
broadcast - Если в списке рассылки:
- Все перечисленные агенты обрабатывают сообщение
- Каждый агент имеет свой ключ сессии и изолированный контекст
- Агенты обрабатывают параллельно (по умолчанию) или последовательно
- Если не в списке рассылки:
- Применяется обычная маршрутизация (первая совпавшая привязка)
Примечание: Группы рассылки не обходят списки доступа каналов или правила активации групп (упоминания/команды/и т.д.). Они только определяют, какие агенты запускаются, когда сообщение допущено к обработке.
Изоляция сессий
Каждый агент в группе рассылки поддерживает полностью отдельные:
- Ключи сессий (
agent:alfred:whatsapp:group:120363...vsagent:baerbel:whatsapp:group:120363...) - Историю диалога (агент не видит сообщения других агентов)
- Рабочее пространство (отдельные песочницы при настройке)
- Доступ к инструментам (разные списки разрешений/запретов)
- Память/контекст (отдельные IDENTITY.md, SOUL.md и т.д.)
- Буфер контекста группы (недавние групповые сообщения для контекста) общий для пира, поэтому все агенты рассылки видят одинаковый контекст при активации
Лучшие практики
1. Держите агентов сфокусированными
Проектируйте каждого агента с одной, чёткой ответственностью.
2. Используйте описательные имена
Делайте очевидным, что делает каждый агент.
3. Настройте разный доступ к инструментам
Давайте агентам только нужные инструменты.
4. Следите за производительностью
При большом количестве агентов:
- Используйте
"strategy": "parallel"(по умолчанию) для скорости - Ограничьте группы рассылки 5-10 агентами
- Используйте более быстрые модели для простых агентов
5. Обрабатывайте сбои корректно
Агенты отказывают независимо. Ошибка одного не блокирует остальных:
Message -> [Agent A ok, Agent B error, Agent C ok]
Результат: Agent A и C отвечают, Agent B логирует ошибку
Совместимость
Провайдеры
Группы рассылки работают с:
- WhatsApp (реализовано)
- Telegram (планируется)
- Discord (планируется)
- Slack (планируется)
Маршрутизация
Группы рассылки работают параллельно с существующей маршрутизацией:
{
"bindings": [
{
"match": { "channel": "whatsapp", "peer": { "kind": "group", "id": "GROUP_A" } },
"agentId": "alfred"
}
],
"broadcast": {
"GROUP_B": ["agent1", "agent2"]
}
}
GROUP_A: отвечает только alfred (обычная маршрутизация)GROUP_B: отвечают agent1 И agent2 (рассылка)
Приоритет: broadcast имеет приоритет над bindings.
Устранение неполадок
Агенты не отвечают
Проверьте:
- ID агентов существуют в
agents.list - Формат ID пира правильный (например,
[email protected]) - Агенты не в списках запретов
Отладка:
tail -f ~/.openclaw/logs/gateway.log | grep broadcast
Отвечает только один агент
Причина: ID пира может быть в bindings, но не в broadcast.
Исправление: Добавьте в конфигурацию broadcast или удалите из bindings.
Проблемы производительности
Если медленно при большом количестве агентов:
- Уменьшите количество агентов на группу
- Используйте более лёгкие модели (sonnet вместо opus)
- Проверьте время запуска песочницы
Справочник API
Схема конфигурации
interface OpenClawConfig {
broadcast?: {
strategy?: "parallel" | "sequential";
[peerId: string]: string[];
};
}
Поля
strategy(опционально): как обрабатывать агентов"parallel"(по умолчанию): все агенты обрабатывают одновременно"sequential": агенты обрабатывают в порядке массива
[peerId]: JID группы WhatsApp, номер E.164 или другой ID пира- Значение: массив ID агентов, которые должны обрабатывать сообщения
Ограничения
- Максимум агентов: жёсткого лимита нет, но 10+ агентов могут быть медленными
- Общий контекст: агенты не видят ответы друг друга (by design)
- Порядок сообщений: при параллельной обработке ответы могут приходить в любом порядке
- Лимиты частоты: все агенты учитываются в лимитах частоты WhatsApp
Планируемые улучшения
- Режим общего контекста (агенты видят ответы друг друга)
- Координация агентов (агенты могут сигнализировать друг другу)
- Динамический выбор агентов (выбор агентов на основе содержания сообщения)
- Приоритеты агентов (одни агенты отвечают раньше других)