O cliente muda de ideia no meio da conversa — a IA acompanha ou se perde?
Acompanha — se o atendimento extrair as informações de forma incremental. A cada mensagem, a IA vai guardando os dados da conversa campo por campo (data, quantidade, modelo, o que for), não como um bloco fechado. Quando o cliente muda um desses dados no meio do papo, o sistema atualiza só aquele campo, guarda o valor antigo no histórico e marca uma flag de contradição — nunca sobrescreve o dado às cegas nem finge que a mudança não aconteceu. Um atendimento mal montado faz o contrário: trava no primeiro dado que ouviu, ou perde o fio e começa a te perguntar tudo de novo.
Por que um chatbot comum trava quando o cliente muda de ideia?
Porque a maioria trata a conversa como uma foto, não como um filme. O sistema lê o que o cliente disse, decide alguma coisa em cima daquele instantâneo e segue em frente. Se cinco mensagens depois o cliente corrige um dado — "na verdade não é pra sexta, é pra segunda" — duas coisas ruins podem acontecer: ou o atendimento ignora a correção e segue trabalhando com o dado velho, ou ele "reresolve" a conversa inteira do zero, como se nunca tivesse te ouvido, e volta a perguntar o que você já respondeu. As duas travam o cliente: uma o ignora, a outra o trata como estranho.
Como a IA guarda a informação aos poucos, sem esperar a conversa acabar?
O jeito certo é extrair de forma incremental: a cada mensagem nova, a IA olha o que mudou e atualiza só aquilo, sinal por sinal — não refaz a leitura da conversa inteira do zero a cada turno. Junto de cada dado extraído vai uma confiança: o quanto aquele sinal está claro no que o cliente escreveu. Uma data mencionada de passagem ("acho que seria semana que vem") entra com confiança menor do que uma data confirmada explicitamente. Isso evita que um dado ambíguo trave o atendimento como se fosse fato fechado.
O que acontece quando o cliente muda um dado no meio do caminho?
Aqui está o mecanismo central: o reducer que atualiza os dados da conversa funciona campo por campo, no modelo "o último valor vale" — mas com uma diferença que faz toda a diferença. Ele não apaga o valor anterior: guarda no histórico daquele campo, e marca uma flag de contradição registrando que aquele dado mudou. A IA não decide sozinha, na hora, se a mudança é séria ou irrelevante — ela registra o fato de que houve mudança, com os dois valores visíveis, e é esse registro que sustenta a resposta certa: "entendido, mudou pra segunda" — não "beleza" silencioso, nem "deixa eu confirmar tudo de novo desde o início".
Essa mudança sempre reabre a decisão que a IA já tinha tomado sobre o atendimento?
Não qualquer mudança — só um sinal material. A rota escolhida para aquele cliente (qual caminho seguir, qual oferta faz sentido) fica travada como decisão estável enquanto a conversa está em fase de entendimento, e essa trava só é revista por uma regra escrita em código, nunca por impressão do modelo de linguagem no meio do papo. Trocar a data de retirada de um pedido não necessariamente muda a rota; trocar o produto inteiro, ou a quantidade de um jeito que muda o porte do pedido, pode mudar. Quem define o que conta como sinal material é a regra, definida antes da conversa acontecer — não o modelo "achando" que aquilo é importante.
Isso é a mesma coisa que a IA não se contradizer ou juntar mensagens picadas?
É parente, mas resolve outro problema. Juntar mensagens picadas organiza o que chega fragmentado agora, no mesmo turno. Aqui o problema é diferente: o cliente já tinha dado uma informação, ela ficou registrada, e agora ele está mudando essa informação — às vezes turnos depois, às vezes depois de sumir e voltar. Sem extração incremental com histórico, essa correção se perde ou vira uma conversa que recomeça do zero.
Montando o agente que a Estefani & Co roda no próprio WhatsApp, essa mecânica gerou um erro concreto que virou invariante documentada no blueprint da plataforma: adicionar um sinal novo na definição de extração (sinais_def) não é suficiente para ele valer na hora de decidir a rota. O código que converte os dados extraídos em sinais de qualificação descarta silenciosamente qualquer campo que não esteja também registrado numa lista separada, CAMPOS_DE_ROTA — sem erro, sem aviso. Na prática: o dado podia mudar, a extração capturava a mudança certinha, mas se aquele campo específico não estivesse cadastrado nos dois lugares, a troca de valor — um "flip" — não reabria a decisão de rota que já tinha sido travada. A IA "sabia" que o dado tinha mudado e continuava, mesmo assim, conduzindo o cliente pelo caminho antigo. A correção não foi no texto do agente, foi na config: todo sinal que pode mudar a rota precisa estar cadastrado nos dois lugares, senão a trava vira surda a mudanças reais.
Perguntas frequentes
Se o cliente mudar um detalhe pequeno, tipo a cor de um produto, isso reabre tudo?
Não necessariamente. Só sinais definidos como materiais para a rota reabrem a decisão. Um detalhe pequeno costuma só atualizar aquele campo, com a mudança registrada — sem mexer no caminho que o atendimento já tinha escolhido.
E se a IA errar e achar que uma mudança é material quando não é?
Quem define o que conta como sinal material é uma regra fixa em código, testada antes da conversa acontecer — não um julgamento do modelo de linguagem na hora. Isso reduz o erro de reabrir rota por engano, porque não depende de "impressão" do texto.
A IA perde o dado antigo quando o cliente corrige alguma coisa?
Não. O reducer guarda o valor anterior no histórico do campo, junto com uma flag marcando que houve contradição. O dado antigo não some — só deixa de ser o valor vigente.
Isso funciona só pra dados numéricos, tipo data e quantidade?
Funciona para qualquer sinal extraído da conversa — pode ser um número, um produto escolhido, uma preferência. O mecanismo é o mesmo: atualização por campo, com confiança e histórico.
Isso é a mesma coisa que a IA "não mudar de ideia" que trava a proposta de venda?
É o mesmo princípio de decisão travada em código, mas aplicado a dados de fato, não à rota de venda. Uma trava a decisão estrutural do atendimento; a outra garante que os dados que sustentam essa decisão estejam sempre atualizados e rastreáveis.