Pular para o conteúdo principal
O client.bot (WaBotCoordinator) funciona com bots do WhatsApp - qualquer conta no domínio @bot. O Meta AI é o mais comum, mas não é o único bot; listBots() retorna todos os bots disponíveis para a sua conta. O coordinator descobre bots, lê seus perfis, envia prompts e descriptografa os chunks em stream da resposta de um bot.

Descobrindo bots e obtendo um JID de bot

Você não fixa JIDs de bot no código - você os descobre com listBots() e escolhe um:
O WaBotInfo.jid é o valor que você passa abaixo como to (caminho direto) ou options.botJid (caminho de menção).

Enviando um prompt

sendPrompt(to, content, options?) invoca um bot. Há dois caminhos, dependendo de to:

Caminho direto — conversar com o bot

Quando to é um JID @bot, você está conversando com o bot diretamente. O zapo gera um novo aiThreadId (um id de conversa); reutilize-o em prompts posteriores para manter o contexto:

Caminho de menção — invocar um bot dentro de um grupo

Quando to é um JID de grupo/chat, você precisa nomear o bot via options.botJid. O bot é invocado indiretamente através de uma menção:
No caminho de menção, aiThreadId / aiThreadType são ignorados — os bots descartam a requisição se metadados de persona/thread forem anexados a uma menção.
O WaBotPromptOptions estende WaSendMessageOptions e adiciona botJid, personaId, capabilities, extraMentionedJids, aiThreadId e aiThreadType.

Recebendo a resposta em stream

A resposta de um bot não chega como uma única message. Ela chega em stream como múltiplos chunks criptografados, expostos no evento message_bot_chunk. O zapo os descriptografa automaticamente a cada mensagem de entrada, então você só escuta:
Os campos do evento de chunk:
Reconstrua a resposta completa concatenando os chunks de um dado targetMessageId na ordem de chegada até ver last (ou um único full).

Descriptografia manual de chunk

O zapo chama tryDecryptChunk para você a cada mensagem de entrada, então você raramente precisa dele. Se você gerencia os eventos de entrada por conta própria, pode invocá-lo explicitamente:
Ele silenciosamente não faz nada (no-op) quando o chunk não é endereçado a você ou o segredo do prompt pai não está disponível.
Última modificação em 29 de maio de 2026