O caminho de uma mensagem
1. A mensagem chega e é gravada
Vale para as três conexões (oficial, coexistência e não oficial). A mensagem aparece em Conversas antes de qualquer decisão sobre a IA. A exceção são figurinha, localização e reação na conexão oficial e na coexistência: são descartadas antes de gravar (ver o passo 2). Se a mensagem foi enviada pelo próprio número do projeto (um humano respondendo pelo app do WhatsApp), ela não vai para a IA: dispara a pausa humana. Responder pelo chat da Zatten também pausa.2. A mídia é filtrada
Texto, áudio, imagem e PDF seguem. Na conexão oficial e na coexistência:- vídeo e documento que não seja PDF são gravados no chat com o erro
ERROR_UNSUPPORTED_MEDIAe não chegam ao agente; - figurinha, localização e reação são descartadas antes de gravar: não aparecem no chat e a IA não responde;
- áudio, imagem ou PDF também param aqui se a interpretação daquele tipo estiver desligada (ver Armadilhas).
3. O buffer junta as mensagens
O servidor espera o tempo do buffer (no painel, Tempo de espera, em segundos). Cada mensagem nova do lead reinicia a contagem. Quando o tempo passa sem mensagem nova, tudo o que chegou vira um lote e recebe uma resposta. Se o lead escreve enquanto o agente ainda está respondendo, essas mensagens formam o próximo lote, processado logo depois.4. A IA pode responder agora?
Antes de chamar o agente, o servidor confere três coisas:
Quando a IA não pode responder, o lote é descartado: não fica guardado para
a IA responder depois. Os follow-ups e o transbordo por inatividade pendentes
desse lead são cancelados. As mensagens continuam no chat para um humano.
No Horário de funcionamento, um dia sem nenhuma janela fica ligado o dia
inteiro. Para a IA não responder num dia, desligue-a de outro jeito ou cadastre
uma janela mínima. Sem fuso definido, o horário não vale.
5. O gateway monta o pedido
O gateway é a ponte entre o servidor e o agente. Ele envia:- as mensagens do lote: texto como texto, áudio como arquivo de áudio, imagem e PDF como link;
- o histórico que o agente ainda não viu: tudo o que aconteceu desde a última
resposta da IA, inclusive o que um humano escreveu durante uma pausa. Na
primeira mensagem depois de uma migração, as últimas mensagens da conversa (o
número vem de
message_quantity, mínimo 20); - o contexto do lead: nome, WhatsApp, notas, tags, coluna do funil e as propriedades marcadas para ir à IA. Ver O que a Zatten injeta no contexto.
6. O agente pensa e age
O agente é montado a cada mensagem a partir do config publicado. A conversa passa por uma sequência de middlewares (peças que agem antes e depois de cada chamada ao modelo) e depois pelo modelo, que pode chamar tools quantas vezes precisar antes de escrever a resposta final. A ordem, de fora para dentro:- Sincronização com a Zatten: grava cada chamada de tool e o resultado no
histórico do lead (aparecem como
FUNCTION_CALLeFUNCTION_CALL_OUTPUT). - Reparo do histórico: corrige pedidos de tool que ficaram sem resposta, que fariam o provider recusar a conversa inteira.
- Contexto volátil: acrescenta, no fim, o bloco “Contexto do lead atual” (se ligado) e o bloco “Agora” com data e hora de Brasília. O prompt fica fixo, o que aproveita o cache do provider.
- Transcrição: converte áudio em texto antes de o modelo ver.
- Tratamento de erro → fallback → retry: o que acontece quando o modelo falha. Ver Resiliência.
- Retry de tools, limite de chamadas, limpeza de contexto, resumo, proteção de dados pessoais e seletor de tools: só os que estiverem ligados. Ver Conversas longas e Limites e segurança.
- Lista de tarefas, se o agente tiver a tool (Lista de tarefas).
7. A resposta volta e é entregue
O servidor pega o último texto do agente e:- converte a formatação Markdown para a do WhatsApp;
- se o texto traz um link de arquivo no formato
[legenda](https://...?filename=nome.pdf), envia o texto antes do link e o arquivo como documento; - se o lote tinha áudio do lead e a voz (ElevenLabs) está ligada, responde em áudio. Se gerar o áudio falhar, manda em texto;
- senão, com a segmentação ligada, divide a resposta em frases e manda uma por vez, com “digitando…” (na conexão oficial) e uma espera de 25 ms por caractere entre as partes. Desligada, manda uma mensagem só.
8. Depois da entrega
Quando a resposta é entregue, o servidor agenda as automações que contam tempo sem resposta do lead: follow-up, transbordo por inatividade e webhook por inatividade. A próxima mensagem do lead cancela o que estava pendente. Ver Quando as automações disparam.O que é do servidor e o que é do agente
Buffer, pausa, segmentação e voz são do servidor, por isso valem igual nos dois
motores. Referência dos blocos em
Referência do template.
Se algo falha no caminho
- O modelo falhou (fora do ar, sem crédito, chave errada): o agente tenta de novo, troca para o modelo de reserva e, se todos falharem, manda a mensagem de erro ao lead e pode transferir para um humano. Ver Resiliência.
- O agente não respondeu (passou de 180 segundos, ou o serviço do agente falhou): o servidor tenta o mesmo lote de novo, até 3 vezes, com 10 segundos entre as tentativas. Se todas falharem, grava o erro no chat e dispara o webhook de erro.
Pelo MCP
O assistente vê as duas partes noget_template:
llm_attendant:message_buffer(segundos),pause_in_human_interaction(minutos),message_segmentation,eleven_labse o motor emllm.langchain.config: modelo, instruções, tools esettings.
Armadilhas
- Buffer 0 ou vazio: a mensagem é gravada, mas não vai para a IA. Use pelo menos 1 segundo.
- Mensagens durante a pausa não são respondidas depois. Quando a IA volta, ela espera a próxima mensagem do lead. O que foi dito na pausa entra só como histórico.
- Dia sem janela no Horário de funcionamento fica ligado o dia todo, não desligado.
- Publicar não é instantâneo: até 2 minutos para as conversas em andamento.
- Tools lentas somam no limite de 180 segundos. Um agente que encadeia várias chamadas a APIs lentas pode estourar o tempo e cair nas tentativas do servidor.
- Interpretação de mídia desligada no motor antigo continua valendo. Na
conexão oficial, o servidor ainda consulta
audio_interpretation,image_interpretationepdf_interpretationdellm_attendant. Se estiveremfalse, a mídia é gravada comERROR_MEDIA_INTERPRETATIONe não chega ao agente, mesmo no LangChain Agent. Essas chaves não aparecem no builder; mude pelo template. Na conexão não oficial, sópdf_interpretationé conferida. - A voz só responde em áudio quando o lote tem áudio do lead. Para texto, a resposta é sempre texto.
Perguntas frequentes
Por que a IA não respondeu?
Por que a IA não respondeu?
Confira nesta ordem:
- A mensagem aparece em Conversas? Se não, o problema é a conexão do WhatsApp.
- É uma mídia não suportada? Vídeo e documento que não é PDF aparecem com erro no chat. Figurinha, localização e reação, na conexão oficial, nem aparecem.
- O buffer está em 0?
- A IA do lead está pausada ou desligada? O lead está numa coluna que desliga a IA?
- O agente está Ativo e dentro do Horário de funcionamento?
- Há erro no chat ou em Logs? Com o LangSmith ligado, abra a conversa lá (Observabilidade com LangSmith).
Por que o agente respondeu três vezes a três mensagens seguidas?
Por que o agente respondeu três vezes a três mensagens seguidas?
O buffer está curto demais. Aumente o Tempo de espera para o lead conseguir
terminar de escrever. Ver Buffer de mensagens.
O agente vê o que o humano escreveu durante a pausa?
O agente vê o que o humano escreveu durante a pausa?
Sim. Na próxima resposta, o histórico que o agente ainda não viu entra na
conversa, inclusive as mensagens do humano.
Mudei o prompt e o agente continua igual. Por quê?
Mudei o prompt e o agente continua igual. Por quê?
Salvar cria um rascunho. Só Publicar põe no ar, e as conversas em andamento
pegam a mudança em até 2 minutos.
Para saber mais
- LangChain Agent x motor antigo
- Resiliência: retry, fallback e erro
- Buffer de mensagens · Pausa humana · Segmentação e voz
- Referência do config do agente
- LangChain, agentes: https://docs.langchain.com/oss/python/langchain/agents
- LangChain, middleware: https://docs.langchain.com/oss/python/langchain/middleware/overview