Recuperação de Respostas em Fila
A Zaia tenta automaticamente novamente a geração de respostas do Agente com falha no WhatsApp e no Instagram.
Isso protege as conversas contra falhas transitórias de processamento e interrupções de serviço.
O mecanismo combina processamento rápido de fila com rastreamento duradouro de recuperação.
Quando a recuperação automática se aplica
Seção intitulada “Quando a recuperação automática se aplica”A recuperação se aplica quando o dono do chat envia uma mensagem pelo WhatsApp ou pelo Instagram.
Não se aplica quando o chat tem um ticket de human support ativo.
A Zaia cria ou atualiza um registro duradouro de recuperação ao receber a mensagem.
Em seguida, ela coloca o chat na fila para geração de resposta do Agente.
Comportamento de retry
Seção intitulada “Comportamento de retry”Quando a geração começa, a Zaia confirma o recebimento do item na fila e registra a tentativa.
Se ocorrer um erro passível de nova tentativa, a Zaia aguarda 30 segundos antes de tentar novamente.
A Zaia realiza uma nova tentativa automática. Portanto, uma resposta tem no máximo duas tentativas.
Após o limite, a Zaia preserva o erro final e marca a recuperação como falha.
Erros elegíveis para retry
Seção intitulada “Erros elegíveis para retry”A maioria dos erros transitórios de geração aciona a nova tentativa automática.
A Zaia não tenta novamente estes erros:
NotFoundPreconditionFailedBadImplementation- Erros do provedor de LLM que não exigem alerta
Limpeza antes da nova tentativa
Seção intitulada “Limpeza antes da nova tentativa”Antes de tentar novamente, a Zaia remove os artefatos da tentativa com falha.
- Exclui o placeholder de resposta do chat.
- Marca a execução anterior como uma tentativa com falha.
- Encerra execuções em andamento obsoletas como falhas.
Isso evita placeholders órfãos, execuções primárias duplicadas e contagens de uso incorretas.
Recuperação duradoura
Seção intitulada “Recuperação duradoura”A Zaia usa uma fila em memória para coordenação imediata.
Ela também armazena o estado de recuperação no banco de dados. Isso permite que as tentativas sobrevivam a reinicializações e implantações.
Uma recuperação usa estes estados:
- Pending — aguardando execução ou nova tentativa.
- Processing — a geração de resposta está em andamento.
- Completed — o Agente gerou a resposta.
- Failed — o orçamento de tentativas foi esgotado.
A Zaia trava a recuperação por chat e thread. Apenas uma recuperação pode processar essa janela de conversa.
Se uma recuperação permanecer em processamento por 30 minutos, um agendador tenta recuperá-la.