Prompt Máquina de Estados (Prompt as State Machine) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Abusos de controle. O prompt descreve etapas (primeiro pergunte o CPF, depois o endereço) e o modelo pula ou repete etapas.
Um onboarding por WhatsApp cadastra clientes de uma fintech. O fluxo inteiro está descrito no prompt (anonimizado):
Siga estas etapas, em ordem:1. Cumprimente e peça o nome completo.2. Peça o CPF. Valide o formato.3. Peça o CNPJ da empresa.4. Peça uma foto do documento com foto.5. Peça o comprovante de endereço (máximo 90 dias).6. Só depois de TODAS as etapas, envie os termos.Não pule etapas. Não repita etapas já concluídas.
O trace de uma conversa real mostra o CPF pedido três vezes, porque o cliente respondeu com o CPF e o CNPJ na mesma mensagem e o modelo se perdeu na contagem. Em outra conversa, o cliente disse “já mandei o comprovante ontem” (não tinha mandado) e o modelo pulou para os termos.
Sinais de Prompt Máquina de Estados:
O prompt tem etapas numeradas e instruções como “não pule” e “não repita”.
O estado da conversa (o que já foi coletado) só existe no histórico de mensagens.
O modelo pula, repete ou inverte etapas de vez em quando.
Respostas fora de ordem ou com duas informações de uma vez confundem o fluxo.
Retomar a conversa depois de um tempo leva a perguntas repetidas.
O usuário consegue convencer o modelo de que uma etapa já foi feita.
flowchart LR
IN(["1. Mensagem"]):::io --> H[("2. Histórico como único estado")]:::store
H --> P(["3. Prompt com o roteiro"]):::llm
P --> D{"4. Modelo adivinha a etapa"}
D --> OUT(["5. Próxima pergunta, às vezes errada"]):::io
Cada mensagem chega.
Não existe um registro do que foi coletado, só a conversa.
O prompt descreve o roteiro em texto.
O modelo precisa reconstruir, a cada mensagem, em que etapa está.
Quando reconstrói errado, pula ou repete.
Por que acontece
Descrever o fluxo em texto é rápido. Um parágrafo substitui um diagrama de estados e o código dele.
Funciona no caminho feliz. No teste, o usuário responde uma coisa de cada vez, na ordem.
O modelo parece entender o processo. E entende na maioria das vezes, o que esconde o problema.
Não há lugar para o estado. O sistema nasceu como chat, e chat só tem mensagens.
KYC (cadastro de cliente) no Brasil pede CPF, documento e comprovante com prazo. LGPD pede que você saiba o que coletou. Um onboarding cujo “estado” é o histórico do WhatsApp não consegue responder nem a uma nem a outra com precisão.
A armadilha é tratar o modelo como motor de workflow. Ele extrai bem “isso é um CPF” e pergunta com tom humano. Ele é ruim em ser a fonte da verdade de “já temos comprovante válido”. Quem diz “já mandei ontem” está negociando com a máquina de estados. Se a máquina é o modelo, a negociação vence.
Quanto custa ignorar
Etapas obrigatórias puladas. Um cadastro sem comprovante pode ser um problema regulatório.
Abandono. Pedir o mesmo dado três vezes irrita, e o cliente desiste.
Manipulação. O usuário convence o modelo de que já entregou algo.
Retomada frágil. Conversas longas ou interrompidas perdem o fio.
O que o código veria, se o estado fosse explícito
Depois da mensagem com CPF e CNPJ juntos, o registro deveria ser:
A próxima pergunta é a foto do documento, sempre. “Já mandei o comprovante” não muda address_proof enquanto o arquivo não estiver salvo. O modelo escreve a fala. O grafo decide a etapa.
O fluxo dura horas ou dias, com esperas por documentos ou aprovações. O estado é persistido a cada etapa. Destinos: Workflow Durável e Checkpoint e Retomada.
Papel de cada parte:
O código guarda os campos e escolhe a próxima etapa.
O modelo extrai o que veio na mensagem (um campo ou vários) e redige a pergunta.
Validação de formato (CPF, data do comprovante) é código, não “valide o formato” no prompt.
Se o cliente some e volta no dia seguinte, a execução retomada lê o mesmo registro, não o chat.
Erro comum: o grafo está em código, mas a cada mensagem você pede ao modelo “leia o histórico e diga em que etapa estamos”. Isso é o smell de novo, com um diagrama na parede.
O que você ganha
Etapas obrigatórias garantidas por código.
Respostas fora de ordem aproveitadas, sem perguntar de novo.
Retomada exata depois de dias, porque o estado está salvo.
Nenhum “já mandei” aceito sem o dado estar registrado.
Quando ignorar
Conversas abertas sem etapas obrigatórias. Um assistente que só tira dúvidas não precisa de máquina de estados.
Fluxo curto e de baixo risco. Duas perguntas opcionais podem ficar no prompt.
É esse smell?
Perguntas rápidas
O que é Prompt Máquina de Estados?
Prompt Máquina de Estados (Prompt as State Machine) é um smell de IA, ou seja, um sinal de problema em sistemas com LLM, do grupo Abusos de controle. O prompt descreve etapas (primeiro pergunte o CPF, depois o endereço) e o modelo pula ou repete etapas.