Установлення (на вимогу)
- Onboarding (
openclaw onboard) іopenclaw channels add --channel whatsappпропонують установити плагін WhatsApp під час першого вибору. openclaw channels login --channel whatsappтакож пропонує потік установлення, коли плагін ще не наявний.- Dev-канал + git checkout: за замовчуванням використовує локальний шлях плагіна.
- Stable/Beta: спершу встановлює офіційний плагін
@openclaw/whatsappіз ClawHub, з npm як резервним варіантом. - Runtime WhatsApp поширюється поза основним npm-пакетом OpenClaw, щоб специфічні для WhatsApp runtime-залежності залишалися із зовнішнім плагіном.
@openclaw/whatsapp) лише тоді, коли потрібен резервний
варіант registry. Закріплюйте точну версію лише тоді, коли потрібне відтворюване встановлення.
Сполучення
Усунення несправностей каналу
Конфігурація Gateway
Швидке налаштування
Під’єднайте WhatsApp (QR)
Виклик поточного запитувача за допомогою MeowCaller (експериментально)
Плагін WhatsApp може надаватиwhatsapp_call у WhatsApp-ініційованих ходах агента. Інструмент
використовує MeowCaller, щоб здійснити голосовий виклик WhatsApp
поточному авторизованому запитувачу та відтворити повідомлення OpenClaw TTS після відповіді. Інструмент
не приймає номер призначення, тому prompt не може перенаправити виклик третій стороні.
Ця експериментальна можливість вимкнена за замовчуванням.
Увімкніть експериментальні виклики
actions.calls: true до каналу WhatsApp в openclaw.json:false, OpenClaw не надає агенту інструмент whatsapp_call.Установіть перевірений MeowCaller CLI
meowcaller у PATH хоста gateway.
Поки MeowCaller PR #7 не буде злито, зберіть
перевірену гілку на коміті 752050471fc2bf7a8cdfbf7dbd3cd4e865d85d3f:$HOME/.local/bin також є в PATH служби gateway. Ця ревізія надає
явні команди pair і send-only notify. notify не відкриває мікрофон, динамік,
відеопристрій, приймач вхідного аудіо або діагностичне захоплення. Не підставляйте команду
play з прикладу CLI.Сполучіть пов’язаний пристрій MeowCaller
whatsapp_call повідомляє
каталог стану для конкретного облікового запису й команду сполучення. Для стандартного облікового запису:MeowCaller linked device ready. Після цього команда завершується. Зберігайте wa-voip.db
приватним; це сеанс пов’язаного пристрою MeowCaller. Status-дія whatsapp_call
повертає команду й shell для конкретного облікового запису, коли використовується нестандартний обліковий запис. На
Windows запустіть відповідну команду PowerShell; MeowCaller створить каталог сховища.Налаштуйте TTS і виклик з WhatsApp
Call me and say the build finished. Інструмент визначає відправника
з довіреного вхідного контексту, синтезує тимчасовий приватний WAV-файл, запускає MeowCaller на
обмежене вікно виклику й після цього видаляє аудіофайл. OpenClaw явно передає сховище
облікового запису, очікує нульовий код завершення після відповіді, відтворення й завершення виклику та вважає
timeout або ненульовий код завершення невдалим викликом інструмента.- лише вихідні аудіовиклики один-на-один
- немає довільних номерів призначення
- немає спільної автентифікації зі з’єднанням чату
- немає самовикликів у режимі особистого номера/чату із собою
- синтезоване аудіо обмежене 60 секундами
- немає підтвердження чутності на боці слухавки, окрім завершення відповіді/відтворення/завершення виклику MeowCaller
- OpenClaw зупиняє супровідний процес після обмеженого вікна 115–175 секунд, включно з фазами з’єднання, відповіді, відтворення й завершення MeowCaller
Шаблони розгортання
Виділений номер (рекомендовано)
Виділений номер (рекомендовано)
- окрема ідентичність WhatsApp для OpenClaw
- чіткіші allowlist для DM і межі маршрутизації
- нижча ймовірність плутанини з чатом із собою
Резервний варіант з особистим номером
Резервний варіант з особистим номером
dmPolicy: "allowlist"allowFromмістить ваш особистий номерselfChatMode: true
allowFrom.Обсяг каналу лише WhatsApp Web
Обсяг каналу лише WhatsApp Web
Baileys) у поточній архітектурі каналів OpenClaw.У вбудованому registry каналів чату немає окремого каналу повідомлень Twilio WhatsApp.Runtime-модель
- Gateway керує сокетом WhatsApp і циклом повторного підключення.
- Watchdog повторного підключення використовує транспортну активність WhatsApp Web, а не лише обсяг вхідних повідомлень застосунку, тому тихий сеанс пов’язаного пристрою не перезапускається лише через те, що ніхто не надсилав повідомлення останнім часом. Довше обмеження application-silence усе ще примусово виконує повторне підключення, якщо транспортні кадри продовжують надходити, але жодні повідомлення застосунку не обробляються протягом watchdog-вікна; після тимчасового повторного підключення для нещодавно активного сеансу ця перевірка application-silence використовує звичайний timeout повідомлення для першого вікна відновлення.
- Таймінги сокета Baileys явно задані в
web.whatsapp.*:keepAliveIntervalMsкерує application ping WhatsApp Web,connectTimeoutMsкерує timeout початкового handshake, аdefaultQueryTimeoutMsкерує очікуваннями запитів Baileys плюс локальними межами операцій OpenClaw для вихідного надсилання/presence і вхідного read-receipt. - Вихідні надсилання потребують активного слухача WhatsApp для цільового облікового запису.
- Групові надсилання додають нативні метадані згадок для токенів
@+<digits>і@<digits>у тексті та підписах медіа, коли токен відповідає поточним метаданим учасника WhatsApp, включно з групами на базі LID. - Чати статусів і broadcast ігноруються (
@status,@broadcast). - Watchdog повторного підключення стежить за транспортною активністю WhatsApp Web, а не лише за обсягом вхідних повідомлень застосунку: тихі сеанси пов’язаних пристроїв залишаються активними, доки транспортні кадри продовжують надходити, але зависання транспорту примусово викликає повторне підключення значно раніше за пізніший шлях віддаленого від’єднання.
- Прямі чати використовують правила DM-сеансів (
session.dmScope; стандартнийmainзгортає DM до головного сеансу агента). - Групові сеанси ізольовані (
agent:<agentId>:whatsapp:group:<jid>). - WhatsApp Channels/Newsletters можуть бути явними вихідними цілями зі своїм нативним JID
@newsletter. Вихідні надсилання newsletter використовують метадані сеансу каналу (agent:<agentId>:whatsapp:channel:<jid>), а не семантику DM-сеансу. - Транспорт WhatsApp Web поважає стандартні змінні середовища proxy на хості gateway (
HTTPS_PROXY,HTTP_PROXY,NO_PROXY/ варіанти в нижньому регістрі). Віддавайте перевагу proxy-конфігурації на рівні хоста над специфічними для каналу налаштуваннями proxy WhatsApp. - Коли ввімкнено
messages.removeAckAfterReply, OpenClaw очищає ack-реакцію WhatsApp після доставки видимої відповіді.
Prompt-и схвалення
WhatsApp може рендерити prompt-и схвалення exec і плагіна за допомогою реакцій👍 / 👎. Доставкою
керує конфігурація пересилання схвалень верхнього рівня:
approvals.exec і approvals.plugin є незалежними. Увімкнення WhatsApp як каналу лише під’єднує
транспорт; воно не надсилає prompt-и схвалення, якщо відповідну family схвалень не ввімкнено
й не маршрутизовано до WhatsApp. Режим session доставляє нативні emoji-схвалення лише для схвалень, що
походять із WhatsApp. Режим target використовує спільний pipeline пересилання для явних цілей WhatsApp
і не створює окремий fanout approver-DM.
Реакції схвалення WhatsApp потребують явних approver-ів WhatsApp із allowFrom або "*".
defaultTo керує звичайними стандартними цілями повідомлень; це не approver для схвалень. Ручні
команди /approve усе ще проходять через звичайний шлях авторизації відправника WhatsApp перед
вирішенням схвалення.
Хуки плагіна та приватність
Повідомлення, що надходять у WhatsApp, можуть містити особистий вміст повідомлень, номери телефонів, ідентифікатори груп, імена відправників і поля кореляції сеансів. З цієї причини WhatsApp не транслює вхідні payload-и hook-аmessage_received до plugins,
якщо ви явно не погодитеся на це:
Контроль доступу й активація
- DM policy
- Group policy + allowlists
- Mentions + /activation
channels.whatsapp.dmPolicy керує доступом до прямих чатів:pairing(типово)allowlistopen(потребує, щобallowFromмістив"*")disabled
allowFrom приймає номери у стилі E.164 (нормалізуються внутрішньо).allowFrom — це список контролю доступу відправників DM. Він не обмежує явні вихідні надсилання до JID груп WhatsApp або JID каналів @newsletter.Перевизначення для кількох облікових записів: channels.whatsapp.accounts.<id>.dmPolicy (і allowFrom) мають пріоритет над типовими значеннями рівня каналу для цього облікового запису.Подробиці поведінки під час виконання:- спарювання зберігаються в allow-store каналу й об’єднуються з налаштованим
allowFrom - запланована автоматизація та fallback отримувача Heartbeat використовують явні цілі доставки або налаштований
allowFrom; схвалення спарювання DM не є неявними отримувачами Cron або Heartbeat - якщо allowlist не налаштовано, пов’язаний власний номер дозволено типово
- OpenClaw ніколи автоматично не спаровує вихідні DM
fromMe(повідомлення, які ви надсилаєте собі з пов’язаного пристрою)
Налаштовані прив’язки ACP
WhatsApp підтримує сталі прив’язки ACP із записами верхнього рівняbindings[]:
- Прямі чати зіставляються з номерами E.164, як-от
+15555550123. - Групи зіставляються з JID груп WhatsApp, як-от
120363424282127706@g.us. - Allowlist-и груп, політика відправників і перевірка згадки або активації виконуються до того, як OpenClaw забезпечує існування налаштованого сеансу ACP.
- Зіставлена налаштована прив’язка ACP володіє маршрутом. Групи трансляції WhatsApp не розгалужують цей turn до звичайних сеансів WhatsApp.
Поведінка особистого номера й чату із собою
Коли пов’язаний власний номер також присутній уallowFrom, активуються запобіжники чату із собою у WhatsApp:
- пропускати сповіщення про прочитання для turn-ів чату із собою
- ігнорувати поведінку автоматичного запуску за mention-JID, яка інакше пінгувала б вас самих
- якщо
messages.responsePrefixне задано, відповіді в чаті із собою типово мають префікс[{identity.name}]або[openclaw]
Нормалізація повідомлень і контекст
Inbound envelope + reply context
Inbound envelope + reply context
ReplyToId, ReplyToBody, ReplyToSender, JID/E.164 відправника).
Коли ціль цитованої відповіді — медіа, яке можна завантажити, OpenClaw зберігає його через
звичайне сховище вхідних медіа й показує як MediaPath/MediaType, щоб
агент міг переглянути посилане зображення, а не лише бачити
<media:image>.Media placeholders and location/contact extraction
Media placeholders and location/contact extraction
<media:image><media:video><media:audio><media:document><media:sticker>
<media:audio>, тож вимовлена згадка бота в голосовій нотатці може
запустити відповідь. Якщо транскрипт усе одно не згадує бота,
транскрипт зберігається в очікуваній історії групи замість сирого placeholder-а.Тіла локацій використовують стислий текст координат. Мітки/коментарі локацій і деталі контактів/vCard відображаються як fenced недовірені метадані, а не як inline текст prompt-а.Pending group history injection
Pending group history injection
- типовий ліміт:
50 - конфігурація:
channels.whatsapp.historyLimit - fallback:
messages.groupChat.historyLimit 0вимикає
[Chat messages since your last reply - for context][Current message - respond to this]
Read receipts
Read receipts
Доставка, chunking і медіа
Text chunking
Text chunking
- типовий ліміт chunk-а:
channels.whatsapp.textChunkLimit = 4000 channels.whatsapp.chunkMode = "length" | "newline"- режим
newlineнадає перевагу межам абзаців (порожнім рядкам), а потім повертається до chunking-а, безпечного за довжиною
Outbound media behavior
Outbound media behavior
- підтримує payload-и зображень, відео, аудіо (голосова нотатка PTT) і документів
- аудіомедіа надсилається через payload Baileys
audioзptt: true, тож клієнти WhatsApp відображають його як push-to-talk голосову нотатку - payload-и відповідей зберігають
audioAsVoice; вивід голосової нотатки TTS для WhatsApp залишається на цьому PTT-шляху, навіть коли провайдер повертає MP3 або WebM - native Ogg/Opus-аудіо надсилається як
audio/ogg; codecs=opusдля сумісності голосових нотаток - аудіо не в Ogg, зокрема MP3/WebM-вивід Microsoft Edge TTS, транскодується за допомогою
ffmpegу моно Ogg/Opus 48 kHz перед доставкою PTT /tts latestнадсилає останню відповідь асистента як одну голосову нотатку й пригнічує повторні надсилання для тієї самої відповіді;/tts chat on|off|defaultкерує auto-TTS для поточного чату WhatsApp- відтворення анімованих GIF підтримується через
gifPlayback: trueпід час надсилання відео forceDocument/asDocumentнадсилає вихідні зображення, GIF і відео через document payload Baileys, щоб уникнути стиснення медіа WhatsApp, зберігаючи визначені ім’я файлу та MIME-тип- підписи застосовуються до першого медіаелемента під час надсилання payload-ів відповідей із кількома медіа, окрім голосових нотаток PTT: вони надсилають аудіо першим, а видимий текст окремо, бо клієнти WhatsApp не відображають підписи голосових нотаток послідовно
- джерело медіа може бути HTTP(S),
file://або локальними шляхами
Media size limits and fallback behavior
Media size limits and fallback behavior
- ліміт збереження вхідних медіа:
channels.whatsapp.mediaMaxMb(типово50) - ліміт надсилання вихідних медіа:
channels.whatsapp.mediaMaxMb(типово50) - перевизначення для окремого облікового запису використовують
channels.whatsapp.accounts.<accountId>.mediaMaxMb - зображення автоматично оптимізуються (зміна розміру/підбір якості), щоб укластися в ліміти, якщо
forceDocument/asDocumentне запитує доставку як документа - у разі збою надсилання медіа fallback першого елемента надсилає текстове попередження замість мовчазного відкидання відповіді
Цитування відповідей
WhatsApp підтримує native цитування відповідей, коли вихідні відповіді видимо цитують вхідне повідомлення. Керуйте цим черезchannels.whatsapp.replyToMode.
| Значення | Поведінка |
|---|---|
"off" | Ніколи не цитувати; надсилати як звичайне повідомлення |
"first" | Цитувати лише перший chunk вихідної відповіді |
"all" | Цитувати кожен chunk вихідної відповіді |
"batched" | Цитувати queued batched відповіді, залишаючи негайні відповіді без цитування |
"off". Перевизначення для окремого облікового запису використовують channels.whatsapp.accounts.<id>.replyToMode.
Рівень реакцій
channels.whatsapp.reactionLevel керує тим, наскільки широко агент використовує emoji-реакції у WhatsApp:
| Рівень | Ack-реакції | Реакції, ініційовані агентом | Опис |
|---|---|---|---|
"off" | Ні | Ні | Жодних реакцій |
"ack" | Так | Ні | Лише ack-реакції (підтвердження перед відповіддю) |
"minimal" | Так | Так (консервативно) | Ack + реакції агента з консервативними настановами |
"extensive" | Так | Так (заохочується) | Ack + реакції агента із заохочувальними настановами |
"minimal".
Перевизначення для окремого облікового запису використовують channels.whatsapp.accounts.<id>.reactionLevel.
Реакції підтвердження
WhatsApp підтримує негайні ack-реакції на отримання вхідних повідомлень черезchannels.whatsapp.ackReaction.
Ack-реакції обмежуються reactionLevel — вони пригнічуються, коли reactionLevel має значення "off".
- надсилається одразу після прийняття вхідного повідомлення (до відповіді)
- якщо
ackReactionвказано безemoji, WhatsApp використовує емодзі ідентичності маршрутизованого агента, з відступом до ”👀”; пропустітьackReactionабо встановітьemoji: "", щоб не надсилати реакцію підтвердження - збої журналюються, але не блокують звичайну доставку відповіді
- груповий режим
mentionsреагує на ходи, запущені згадкою; групова активаціяalwaysдіє як обхід цієї перевірки - WhatsApp використовує
channels.whatsapp.ackReaction(застарілийmessages.ackReactionтут не використовується)
Реакції стану життєвого циклу
Установітьmessages.statusReactions.enabled: true, щоб WhatsApp замінював реакцію підтвердження під час ходу, а не залишав статичний емодзі отримання. Коли це ввімкнено, OpenClaw використовує той самий слот реакції вхідного повідомлення для станів життєвого циклу, як-от у черзі, обдумування, активність інструментів, Compaction, завершено й помилка.
channels.whatsapp.ackReactionі далі контролює, чи можуть реакції стану застосовуватися для прямих повідомлень і груп.- Реакція стану в черзі використовує той самий ефективний емодзі підтвердження, що й звичайні реакції підтвердження.
- WhatsApp має один слот реакції бота на повідомлення, тому оновлення життєвого циклу замінюють поточну реакцію на місці.
messages.removeAckAfterReply: trueочищує фінальну реакцію стану після налаштованого утримання стану завершення/помилки.- Категорії емодзі інструментів включають
tool,coding,web,deploy,buildіconcierge.
Кілька облікових записів і облікові дані
Вибір облікового запису та типові значення
Вибір облікового запису та типові значення
- ідентифікатори облікових записів походять із
channels.whatsapp.accounts - типовий вибір облікового запису:
default, якщо він наявний, інакше перший налаштований ідентифікатор облікового запису (за сортуванням) - ідентифікатори облікових записів внутрішньо нормалізуються для пошуку
Шляхи облікових даних і сумісність із застарілими версіями
Шляхи облікових даних і сумісність із застарілими версіями
- поточний шлях автентифікації:
~/.openclaw/credentials/whatsapp/<accountId>/creds.json - файл резервної копії:
creds.json.bak - застаріла типова автентифікація в
~/.openclaw/credentials/досі розпізнається/мігрується для потоків типового облікового запису
Поведінка виходу
Поведінка виходу
openclaw channels logout --channel whatsapp [--account <id>] очищує стан автентифікації WhatsApp для цього облікового запису.Коли Gateway доступний, вихід спершу зупиняє активний слухач WhatsApp для вибраного облікового запису, щоб пов’язана сесія не продовжувала отримувати повідомлення до наступного перезапуску. openclaw channels remove --channel whatsapp також зупиняє активний слухач перед вимкненням або видаленням конфігурації облікового запису.У застарілих каталогах автентифікації oauth.json зберігається, а файли автентифікації Baileys видаляються.Інструменти, дії та записи конфігурації
- Підтримка інструментів агента включає дію реакції WhatsApp (
react). - Шлюзи дій:
channels.whatsapp.actions.reactionschannels.whatsapp.actions.polls
- Записи конфігурації, ініційовані каналом, увімкнено типово (вимкнення через
channels.whatsapp.configWrites=false).
Усунення несправностей
Не пов'язано (потрібен QR)
Не пов'язано (потрібен QR)
Пов'язано, але від'єднано / цикл перепідключення
Пов'язано, але від'єднано / цикл перепідключення
status=408 Request Time-out Connection was lost, налаштуйте
таймінги сокета Baileys у web.whatsapp. Почніть зі скорочення
keepAliveIntervalMs нижче тайм-ауту простою вашої мережі та збільшення
connectTimeoutMs на повільних або нестабільних з’єднаннях:~/.openclaw/logs/whatsapp-health.log каже Gateway inactive, але
openclaw gateway status і openclaw channels status --probe показують, що
gateway і WhatsApp справні, запустіть openclaw doctor. У Linux doctor
попереджає про застарілі записи crontab, які досі викликають
~/.openclaw/bin/ensure-whatsapp.sh; видаліть ці застарілі записи через
crontab -e, оскільки cron може не мати середовища користувацької шини systemd і
змушувати цей старий скрипт неправильно повідомляти про справність gateway.За потреби повторно пов’яжіть через channels login.Вхід за QR завершується тайм-аутом за проксі
Вхід за QR завершується тайм-аутом за проксі
openclaw channels login --channel whatsapp завершується збоєм до показу придатного QR-коду з status=408 Request Time-out або від’єднанням TLS-сокета.Вхід WhatsApp Web використовує стандартне проксі-середовище хоста gateway (HTTPS_PROXY, HTTP_PROXY, варіанти в нижньому регістрі та NO_PROXY). Перевірте, що процес gateway успадковує змінні середовища проксі та що NO_PROXY не збігається з mmg.whatsapp.net.Немає активного слухача під час надсилання
Немає активного слухача під час надсилання
Відповідь з'являється в транскрипті, але не в WhatsApp
Відповідь з'являється в транскрипті, але не в WhatsApp
auto-reply delivery failed або auto-reply was not accepted by WhatsApp provider.Групові повідомлення неочікувано ігноруються
Групові повідомлення неочікувано ігноруються
groupPolicygroupAllowFrom/allowFrom- записи allowlist у
groups - шлюзування згадок (
requireMention+ шаблони згадок) - дублікати ключів у
openclaw.json(JSON5): пізніші записи перевизначають раніші, тому залишайте одинgroupPolicyна область
channels.whatsapp.groups наявний, WhatsApp усе ще може спостерігати повідомлення з інших груп, але OpenClaw відкидає їх до маршрутизації сесії. Додайте JID групи до channels.whatsapp.groups або додайте groups["*"], щоб допустити всі групи, зберігаючи авторизацію відправників під groupPolicy і groupAllowFrom.Попередження середовища виконання Bun
Попередження середовища виконання Bun
Системні промпти
WhatsApp підтримує системні промпти в стилі Telegram для груп і прямих чатів через мапиgroups і direct.
Ієрархія розв’язання для групових повідомлень:
Ефективна мапа groups визначається першою: якщо обліковий запис визначає власну groups, вона повністю замінює кореневу мапу groups (без глибокого злиття). Потім пошук промпта виконується на отриманій єдиній мапі:
- Системний промпт для конкретної групи (
groups["<groupId>"].systemPrompt): використовується, коли конкретний запис групи існує в мапі і його ключsystemPromptвизначено. ЯкщоsystemPromptє порожнім рядком (""), wildcard пригнічується й системний промпт не застосовується. - Wildcard-системний промпт групи (
groups["*"].systemPrompt): використовується, коли конкретний запис групи повністю відсутній у мапі або коли він існує, але не визначає ключsystemPrompt.
direct визначається першою: якщо обліковий запис визначає власну direct, вона повністю замінює кореневу мапу direct (без глибокого злиття). Потім пошук промпта виконується на отриманій єдиній мапі:
- Системний промпт для конкретного прямого чату (
direct["<peerId>"].systemPrompt): використовується, коли конкретний запис співрозмовника існує в мапі і його ключsystemPromptвизначено. ЯкщоsystemPromptє порожнім рядком (""), wildcard пригнічується й системний промпт не застосовується. - Wildcard-системний промпт прямого чату (
direct["*"].systemPrompt): використовується, коли конкретний запис співрозмовника повністю відсутній у мапі або коли він існує, але не визначає ключsystemPrompt.
dms залишається легким контейнером перевизначення історії для окремих DM (dms.<id>.historyLimit). Перевизначення промптів розміщуються в direct.groups навмисно пригнічується для всіх облікових записів у налаштуванні з кількома обліковими записами — навіть для тих, що не визначають власні groups, — щоб запобігти отриманню ботом групових повідомлень із груп, до яких він не належить. WhatsApp не застосовує цей запобіжник: кореневі groups і кореневий direct завжди успадковуються обліковими записами, які не визначають перевизначення на рівні облікового запису, незалежно від кількості налаштованих облікових записів. У налаштуванні WhatsApp із кількома обліковими записами, якщо потрібні групові або прямі промпти для кожного облікового запису, визначайте повну мапу явно в кожному обліковому записі, а не покладайтеся на типові значення кореневого рівня.
Важлива поведінка:
channels.whatsapp.groupsє одночасно мапою конфігурації для окремих груп і allowlist груп рівня чату. На кореневому рівні або в області облікового записуgroups["*"]означає “усі групи допускаються” для цієї області.- Додавайте wildcard-групу
systemPromptлише тоді, коли вже хочете, щоб ця область допускала всі групи. Якщо ви все ще хочете, щоб придатним був лише фіксований набір ідентифікаторів груп, не використовуйтеgroups["*"]як типовий промпт. Натомість повторіть промпт у кожному явно внесеному до allowlist записі групи. - Допуск групи та авторизація відправника є окремими перевірками.
groups["*"]розширює набір груп, які можуть досягти обробки груп, але сам по собі не авторизує кожного відправника в цих групах. Доступ відправника й далі окремо контролюєтьсяchannels.whatsapp.groupPolicyіchannels.whatsapp.groupAllowFrom. channels.whatsapp.directне має такого самого побічного ефекту для DM.direct["*"]лише надає типову конфігурацію прямого чату після того, як DM уже допущено черезdmPolicyплюсallowFromабо правила сховища парування.
Вказівники на довідник конфігурації
Основний довідник: Поля WhatsApp із високою інформативністю:- доступ:
dmPolicy,allowFrom,groupPolicy,groupAllowFrom,groups - доставка:
textChunkLimit,chunkMode,mediaMaxMb,sendReadReceipts,ackReaction,reactionLevel - кілька облікових записів:
accounts.<id>.enabled,accounts.<id>.authDir, перевизначення на рівні облікового запису - операції:
configWrites,debounceMs,web.enabled,web.heartbeatSeconds,web.reconnect.*,web.whatsapp.* - поведінка сесії:
session.dmScope,historyLimit,dmHistoryLimit,dms.<id>.historyLimit - промпти:
groups.<id>.systemPrompt,groups["*"].systemPrompt,direct.<id>.systemPrompt,direct["*"].systemPrompt