OpenClaw no WhatsApp: como funciona conversar com o agente pelo mensageiro?

OpenClaw no WhatsApp funciona assim: um Gateway único concentra os canais de mensagem, roteia o que chega para a sessão do agente e devolve a resposta pelo mesmo canal de origem. O canal está marcado como production-ready via WhatsApp Web (Baileys), com pareamento por QR code, e a documentação recomenda número dedicado no lugar do pessoal. O que pesa mesmo é permissão: allowFrom em formato E.164, dmPolicy allowlist ou pairing, menção obrigatória em grupo e buffer padrão de 50 mensagens. Some a isso o disclaimer do Baileys e a regra do WhatsApp sobre automação antes de vincular qualquer conta 🙂
Fala aí, beleza? Pedir uma tarefa pro agente no terminal é uma coisa: tu abre a sessão, digita, ele responde ali mesmo, e a única pessoa capaz de mandar entrada é quem está na máquina
Agora, mandar mensagem pra ele no WhatsApp é OUTRA história
A porta de entrada deixa de ser o teu teclado e vira um app que qualquer contato, e qualquer grupo, consegue tocar
É exatamente esse o modelo do OpenClaw: o mensageiro não é um enfeite, ele é a interface do assistente
E por isso a decisão de vincular uma conta merece ser entendida ANTES de sair lendo QR code por aí, beleza? Bora destrinchar isso…
O que é o OpenClaw e por que o mensageiro vira a interface
O OpenClaw é um assistente pessoal open source que roda nos dispositivos do próprio usuário e atende nos canais de mensagem que ele já usa
A peça central é um Gateway único, que conecta modelos, ferramentas, canais e apps companheiros
E ele foi pensado para um único operador (single operator), não pra virar central de atendimento de uma empresa
E o que esse Gateway faz, na prática?
Ele concentra os canais de mensagem ao mesmo tempo: WhatsApp, Telegram, Slack, Discord, Signal e outros
O ciclo é simples de desenhar na cabeça: chegou mensagem, o Gateway roteia pra sessão do agente, espera a resposta e devolve pelo canal de origem
Se você conhece um roteador de rede, a analogia é essa: uma caixa no meio decidindo pra onde cada coisa vai e por onde volta
O detalhe que muda tudo é o segundo passo: a sessão do agente é a mesma, o canal é que muda
Formação Agentes de IA
Domine a criação de Agentes de IA e Venda para Empresas
- 402 aulas
- 32 projetos
- 38h 19min
De onde veio esse projeto
Segundo reportagem da Forbes, o projeto foi criado por Peter Steinberger e trocou de nome duas vezes em poucos dias
Ainda de acordo com a Forbes, saiu de Clawdbot para Moltbot em 27 de janeiro de 2026, após pedido da Anthropic por semelhança com Claude, e de Moltbot para OpenClaw em 30 de janeiro de 2026
E não é projetinho de fim de semana: ele ultrapassou o React e virou o software mais estrelado do GitHub, cruzando 250.829 estrelas em 3 de março de 2026
Insano, né? 😀
WhatsApp, terminal ou navegador: o que muda na prática
Antes de configurar qualquer coisa, vale enxergar o que realmente muda quando você troca a interface do agente
O ponto sensível não é conforto, é superfície de entrada
| O que muda | WhatsApp (canal do OpenClaw) | Terminal | Navegador |
|---|---|---|---|
| Onde a conversa acontece | No app de mensagem, e a resposta volta pelo canal de origem | Na sessão aberta na máquina | Na sessão aberta na máquina |
| Quem consegue mandar entrada | Qualquer contato ou grupo que alcance aquele número | Quem está operando a máquina | Quem está operando a máquina |
| Precisa de allowlist e pareamento | Sim: a doc manda sempre definir channels.whatsapp.allowFrom e nunca rodar aberto ao mundo | Não se aplica: a barreira é o acesso ao aparelho | Não se aplica: a barreira é o acesso ao aparelho |
| Estado guardado em disco | O canal guarda mais estado em disco que os outros | Não se aplica | Não se aplica |
| Depende de protocolo não oficial | Sim: production-ready via WhatsApp Web (Baileys) | Não se aplica | Não se aplica |
Repara que a coluna do WhatsApp é a única que ganha linhas de permissão
Não é frescura de documentação: é consequência direta de plugar o agente num canal que outras pessoas alcançam sem pedir licença
Quem pode acionar o agente quando ele mora no seu WhatsApp
Essa é a parte que separa quem entendeu o modelo de quem só pareou e torceu 😛
O controle vem em camadas, e cada camada responde uma pergunta diferente
Camada 1: quem pode te mandar DM
A primeira trava é a política de mensagem privada
Com dmPolicy em allowlist, só entra quem está na lista, e a lista é de telefones em formato E.164
channels.whatsapp.allowFrom: ["+15555550123", "+447700900123"]A orientação da documentação é direta: sempre defina channels.whatsapp.allowFrom e nunca rode o canal aberto ao mundo
Tome cuidado! Canal aberto ao mundo não é "agente popular", é qualquer número virando entrada do teu assistente
Camada 2: pareamento pra quem você ainda não conhece
Com a política de DM em pairing, o remetente desconhecido recebe um código curto
E aqui está o detalhe que mais importa: a mensagem dele NÃO é processada até você aprovar
Os códigos de pareamento expiram em 1 hora, e o bot só manda a mensagem de pareamento quando uma nova solicitação é criada
A própria documentação resume esse aviso como aproximadamente uma vez por hora por remetente
Isso evita aquele efeito bola de neve de o bot ficar respondendo pedido de pareamento sem parar
Camada 3: grupo é outro mundo
Aprovar um DM no pareamento NÃO é a mesma coisa que autorizar grupo
O store de pareamento libera apenas as conversas privadas, ponto
Em grupos existem dois controles distintos, e confundir os dois é o erro clássico:
- autorização de gatilho (trigger authorization): quem pode acionar o agente, via
groupPolicy,groups,groupAllowFrome allowlists por canal - visibilidade de contexto (context visibility): o que o agente enxerga daquela conversa
Um diz quem manda o agente trabalhar, o outro diz o que ele lê
Camada 4: menção obrigatória e o buffer de contexto
Em grupo, a resposta exige menção, a menos que você desative o gating de menção para aquele grupo
Vale @-mention real (mentionedJids), regex configurado, os dígitos E.164 do bot no texto ou uma resposta citando mensagem do bot
E o que acontece com todo o resto que rolou no grupo enquanto ninguém chamou o agente?
As mensagens não processadas ficam em buffer e são injetadas como contexto quando o bot finalmente é acionado, com limite padrão de 50 mensagens, configurável em channels.whatsapp.historyLimit ou messages.groupChat.historyLimit
Então sim: mesmo sem responder, aquele papo do grupo pode virar contexto depois
Se liga nisso antes de jogar o bot no grupo da firma 😀
E pra fechar a camada, as allowlists de pareamento moram no disco da máquina, em ~/.openclaw/credentials/<canal>-allowFrom.json (conta padrão) ou <canal>-<accountId>-allowFrom.json para contas não padrão
Número dedicado ou WhatsApp pessoal: qual cenário é o seu
Aqui a documentação não fica em cima do muro, e eu acho isso ótimo
Cenário 1: número dedicado (a recomendação oficial)
A orientação é usar um número de WhatsApp dedicado para o assistente
O motivo é bem concreto: se você vincula seu WhatsApp pessoal, toda mensagem que chega pra você passa a ser entrada do agente
E isso raramente é o que a pessoa queria quando pensou "vou colocar meu agente no zap"
Cenário 2: número pessoal com self-chat
Existe o modo número pessoal com self-chat, pra quem quer conversar consigo mesmo e usar isso como painel do agente
O onboarding grava uma baseline com dmPolicy em allowlist, allowFrom incluindo o seu próprio número e selfChatMode em true
Tem uma limitação importante nesse modo: o agente não consegue ligar para si mesmo
Pra chamar o seu número pessoal, é preciso um número OpenClaw dedicado
E como o canal entra no jogo
O WhatsApp é instalado sob demanda como plugin, não vem carregado por padrão
openclaw onboard
openclaw channels add --channel whatsapp
openclaw channels login --channel whatsappO openclaw onboard e o openclaw channels add --channel whatsapp oferecem instalar o plugin na primeira vez
E o openclaw channels login --channel whatsapp oferece o mesmo fluxo se o plugin estiver faltando
A instalação vai pela rota do ClawHub (clawhub:@openclaw/whatsapp) com fallback para npm
Se você conhece npm ou composer, é a mesma ideia de puxar um pacote sob demanda
E o Gateway só carrega o plugin externo quando o canal está de fato ativo
A conexão em si é por pareamento com QR code do WhatsApp Web: o QR de login vincula uma conta WhatsApp ao OpenClaw
O que a experiência com agente no WhatsApp já ensina
Deixa eu ser honesto no recorte: a minha mão na massa com agente atendendo por WhatsApp foi em OUTRA pilha, com n8n e Evolution API, não com OpenClaw
Então nada do que eu conto aqui vale como instrução de configuração do OpenClaw, e você não deve copiar esses passos pra lá
Mas o MODELO de operar um agente por mensageiro é o mesmo, e ele ensina umas coisas que economizam dor de cabeça
O ciclo é sempre o mesmo. No vídeo eu mostro a mensagem saindo do WhatsApp, entrando num fluxo de automação, passando pela IA e voltando como resposta pra mesma conversa
Se você entendeu esse desenho, entendeu qualquer agente em mensageiro, incluindo o roteamento do Gateway que a gente viu lá em cima
Ambiente antes do fluxo. Eu aviso isso logo no começo: o ambiente precisa estar configurado em servidor próprio antes de montar o fluxo
Sem essa etapa anterior, as integrações simplesmente não funcionam e o resto do tutorial dá errado
O gatilho é o coração. Na minha montagem, o gatilho é um webhook: o mensageiro avisa o sistema no meio, que dispara o fluxo e devolve a resposta
No OpenClaw o papel de "sistema no meio" é do Gateway, mas a lógica de acionamento continua sendo a pergunta central: o que faz o agente acordar?
Ligar tudo de uma vez vira bagunça. Quando testei, eu habilitei só os eventos que ia usar de verdade, e o essencial pra começar é o recebimento de mensagem
Esse instinto conversa direto com o mention gating e as allowlists do OpenClaw: menos gatilho ativo, menos ruído, menos surpresa
Valida o primeiro elo antes de sonhar alto. Eu paro o tutorial pra mandar uma mensagem real de outro WhatsApp e conferir se o fluxo recebeu
Se esse passo não fica verde, tudo depois vai falhar
O erro comum me pegou ao vivo. O agente falhou na primeira execução porque o campo de entrada estava apontando pro chat interno da ferramenta, e não pra mensagem vinda do WhatsApp
Corrigi apontando manualmente e aí passou
É um erro besta que consome uma tarde se você não sabe onde olhar
Identidade importa na volta. Pra devolver a resposta eu preciso puxar três coisas do webhook: nome da instância, número do destinatário e o texto gerado pelo agente
Ou seja: o mensageiro sempre te obriga a saber PRA QUEM você está respondendo, e isso é a mesma preocupação de allowlist vista por outro ângulo
Custo durante a montagem. Eu recomendo montar e testar o sistema inteiro com modelos menores e mais baratos, pra gastar pouco no desenvolvimento, e só depois trocar por um modelo mais avançado se quiser mais performance na resposta
Resumindo o recorte: a pilha era outra, mas o hábito que fica é o mesmo, você fecha a porta e valida o primeiro elo antes de sair automatizando
No OpenClaw, esse mesmo hábito tem nome e lugar: allowlist, pareamento e mention gating
Se você quiser ver esse caminho detalhado, eu já escrevi sobre agente no WhatsApp com n8n por aqui, e também sobre boas práticas em agentes multicanal
Bora ver na prática?
Vale conectar? Os riscos que entram na conta
Agora a parte que ninguém gosta de ler, mas que é a mais importante do post
O protocolo não é oficial
O canal WhatsApp do OpenClaw é production-ready via WhatsApp Web (Baileys), ou seja, pelo protocolo não oficial do WhatsApp Web
A própria biblioteca Baileys declara não ser afiliada, associada, autorizada nem endossada pelo WhatsApp
Ela orienta uso por conta e risco do usuário, e os mantenedores afirmam que não endossam usos que violem os Termos de Serviço do WhatsApp
Do outro lado do balcão, o WhatsApp afirma que os produtos não são feitos para mensagens em massa ou automatizadas, e que o uso não autorizado desses recursos sempre foi violação dos Termos de Serviço, podendo levar a banimento da conta
Então a leitura honesta é essa: existe risco declarado pelas duas pontas, e quem assume é você
Por isso a recomendação do número dedicado deixa de ser conforto e vira gestão de risco 😅
O sandbox não te salva sozinho
Um ponto que muita gente entende errado: o sandbox é opt-in
O processo do Gateway SEMPRE continua no host, e só a execução de ferramentas vai para o sandbox quando ele é habilitado
E o modo elevado usa allowlist própria de remetentes, tools.elevated.allowFrom, com listas por canal
Ou seja: quem pode acionar e quem pode acionar com poder são duas listas diferentes
A ordem certa de travar as coisas
A documentação sugere uma ordem pra cenários abertos, e ela faz todo sentido:
- travar primeiro DMs e grupos, com pareamento e allowlists
- depois apertar política de ferramentas e sandbox
- e corrigir imediatamente exposição de rede pública (bind na LAN, Funnel, falta de auth)
A doc oficial mantém até um runbook específico de Gateway exposure, o que já diz muito: Gateway acessível de fora é tratado como incidente, não como detalhe de config
Versão em dia não é papo de paranoico
A CVE-2026-25253 é uma falha de exfiltração de token de autenticação que leva a execução remota de código em um clique, com CVSS 8.8
Ela afeta versões anteriores à 2026.1.29, corrigida nessa versão
É o tipo de coisa que transforma "deixei rodando aqui em casa" num problema bem maior que perder uma conversa
Conclusão
O recado central é esse: entender o modelo vem ANTES de vincular conta
Saber o que o Gateway faz, quem consegue acionar o agente e o que ele enxerga da conversa muda completamente a sua avaliação de risco
Porque no terminal a pergunta é "o que eu peço pra ele", e no WhatsApp a pergunta vira "quem mais consegue pedir"
O próximo passo é bem concreto:
- decida entre número dedicado (a recomendação oficial) e o modo self-chat no número pessoal, sabendo que nesse modo o agente não liga pra si mesmo
- defina
channels.whatsapp.allowFromANTES de qualquer teste, nunca depois - escolha conscientemente entre
dmPolicyemallowliste empairing, e lembra que aprovar DM não libera grupo - e mantenha a versão em dia, com a 2026.1.29 como piso por causa da CVE-2026-25253
Agente em mensageiro é muito massa, dá aquela sensação de ter um assistente de verdade no bolso
Só que o mensageiro é uma porta, e porta boa é porta com fechadura configurada 🙂
até o próximo post!
Perguntas frequentes
Posso usar meu número pessoal de WhatsApp com o OpenClaw?
Dá pra fazer, mas a documentação recomenda um número dedicado para o assistente, não o pessoal. Se você vincula o seu WhatsApp de todo dia, toda mensagem que chega pra você vira entrada do agente, o que raramente é o desejado. Existe até um modo número pessoal com self-chat, mas ele tem uma limitação: o agente não consegue ligar para o seu próprio número, e isso só se resolve com um número OpenClaw dedicado.
O canal de WhatsApp do OpenClaw é oficial ou usa algum tipo de engenharia reversa?
O canal está marcado como production-ready via WhatsApp Web (Baileys), ou seja, roda pelo protocolo não oficial do WhatsApp Web. A própria biblioteca Baileys declara não ser afiliada, associada, autorizada nem endossada pelo WhatsApp, e orienta uso por conta e risco do usuário. Os mantenedores também afirmam não endossar usos que violem os Termos de Serviço do WhatsApp.
Usar o OpenClaw no WhatsApp pode banir minha conta?
O próprio WhatsApp afirma que seus produtos não são feitos para mensagens em massa ou automatizadas. Uso não autorizado desses recursos sempre foi considerado violação dos Termos de Serviço, e isso pode levar a banimento da conta. É por isso que a recomendação prática é usar um número dedicado ao assistente, separado do seu WhatsApp pessoal.
Como instalar o plugin de WhatsApp no OpenClaw?
O WhatsApp não vem embutido, ele é instalado sob demanda como plugin. Os comandos openclaw onboard, openclaw channels add –channel whatsapp e openclaw channels login –channel whatsapp oferecem a instalação na primeira vez que o canal é necessário. A instalação passa pela rota do ClawHub, com fallback para npm, e o Gateway só carrega esse plugin externo quando o canal está de fato ativo.
O que acontece se o Gateway do OpenClaw ficar exposto na internet?
A documentação oficial mantém um runbook específico para exposição do Gateway, tratando isso como incidente de segurança. Faz sentido: existe até uma falha catalogada, a CVE-2026-25253, de exfiltração de token de autenticação que leva a execução remota de código em um clique, com CVSS 8.8. Ela afeta versões anteriores à 2026.1.29, então manter o Gateway fechado e atualizado é parte da configuração, não um detalhe opcional.
Onde ficam salvas as permissões de quem pode falar com o agente pelo WhatsApp?
As allowlists de pareamento ficam gravadas no disco da própria máquina que roda o OpenClaw, em ~/.openclaw/credentials/<canal>-allowFrom.json para a conta padrão. Se você usa mais de uma conta no mesmo canal, o arquivo passa a ser <canal>-<accountId>-allowFrom.json. É esse arquivo local, e não um serviço na nuvem, que guarda quem já foi aprovado para conversar em DM.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares

As diferenças de var, let e const

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]

ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
