APRENDIZADO & COGNIÇÃO · ESTUDO BASEADO EM EVIDÊNCIA

Um app de IA útil começa pelo fluxo, não pelo modelo

Em poucas horas, uma demo já aceita texto ou voz, chama um modelo e devolve uma resposta bem escrita. A…

Em poucas horas, uma demo já aceita texto ou voz, chama um modelo e devolve uma resposta bem escrita. A tela parece pronta. O problema aparece quando alguém pergunta de onde veio um fato, qual regra foi aplicada ou o que acontece se uma informação obrigatória estiver ausente.

Uma resposta bonita pode continuar ali mesmo quando o produto ainda não está definido.

Um projeto vencedor de um hackathon em São Paulo colocou essa diferença em um contexto bem brasileiro: orientar pequenos negócios sobre oportunidades de compras governamentais combinando Codex, dados públicos, regras de elegibilidade, entrada por voz e uma interface simples. O anúncio não permite concluir que o projeto esteja em produção ou que a arquitetura resolva todos os casos. Mesmo assim, a composição do problema é mais interessante do que a escolha do modelo.

Existe uma necessidade concreta, uma base factual, regras que não deveriam ser improvisadas e uma pessoa que precisa entender o resultado para tomar o próximo passo. É esse caminho que vale desenhar primeiro.

Comece pelo resultado que pode ser conferido

Antes de discutir prompt, framework ou provedor, complete esta frase:

Ao final, o usuário consegue…

Para um app que ajuda uma pequena empresa a encontrar oportunidades públicas, uma versão útil seria:

Ao final, o usuário consegue ver oportunidades compatíveis com o perfil informado, junto da fonte, da data dos dados, do motivo da correspondência e dos pontos que ainda exigem confirmação.

Essa frase já obriga o produto a assumir compromissos. “Encontrar oportunidades” pede uma fonte consultável. “Compatíveis” pede critérios. “Perfil informado” pede uma entrada que possa ser corrigida. Fonte, data e motivo pedem rastreabilidade na interface.

Agora fica mais fácil definir a evidência de sucesso. Um teste não deveria aceitar como resultado apenas uma frase plausível. Ele precisa verificar, por exemplo, se os itens exibidos existem na base consultada, se os filtros foram aplicados e se campos ambíguos chegaram ao usuário como pendência, não como certeza inventada.

Desenhe o fluxo em seis blocos

Eu costumo tratar o primeiro desenho como um mapa curto de responsabilidades:

Bloco Pergunta de projeto Comportamento em caso de falha
Entrada O que a pessoa fornece e o que precisa confirmar? Destacar ambiguidades e pedir correção
Fonte de verdade De onde vêm fatos, datas e estados? Informar indisponibilidade ou defasagem
Regras Quais limites podem ser expressos e testados? Recusar uma conclusão sem dados suficientes
Tarefa do modelo Qual transformação probabilística ajuda de fato? Repetir com limite, usar uma rota secundária testada ou informar indisponibilidade
Validação Como o sistema confere formato, cobertura e referências? Bloquear ou sinalizar o resultado incompleto
Saída O que o usuário vê e qual ação pode tomar? Preservar fonte, estado e pendências visíveis

O mapa não precisa nascer como um diagrama sofisticado. Uma página no repositório, perto do código, já serve. O importante é dar um dono a cada bloco e deixar claro qual evidência mostra que ele funcionou.

Também ajuda registrar o contrato da tarefa do modelo. Um rascunho pode ser simples:

type InterpretedNeed = {  categories: string[]  location?: string  ambiguities: string[]}type Recommendation = {  opportunityId: string  sourceUrl: string  sourceUpdatedAt: string  matchReason: string  requiresHumanReview: boolean}

Esses tipos não provam que a recomendação está correta, mas impedem que uma resposta livre seja confundida com o estado inteiro do produto. Eles também mostram quais informações o frontend precisa expor e quais campos a validação deve rejeitar quando faltarem.

Não terceirize regra de negócio para uma frase convincente

Modelos são bons em transformar linguagem solta em uma estrutura, resumir documentos e explicar por que dois elementos parecem relacionados. Eles também conseguem produzir uma justificativa elegante para uma conclusão errada.

Por isso, a divisão de trabalho precisa acompanhar o custo do erro. Se um critério de elegibilidade pode ser descrito por uma regra vigente e testável, mantenha esse critério fora do prompt. Use o modelo para interpretar a necessidade do usuário e explicar o resultado, mas não para inventar silenciosamente o limite que decide se uma empresa está apta.

Num fluxo desse tipo, a sequência poderia ser:

  1. receber a descrição por texto ou transcrever a entrada por voz;
  2. pedir confirmação para nomes, valores ou termos ambíguos;
  3. transformar a necessidade confirmada em parâmetros de busca;
  4. consultar a fonte pública e guardar a data da consulta;
  5. aplicar os filtros determinísticos que o sistema realmente conhece;
  6. usar o modelo para organizar os resultados e escrever explicações apoiadas nos dados retornados;
  7. mostrar fontes, motivos e pendências antes de qualquer ação seguinte.

Essa é uma proposta de produto para explorar o caso, não uma descrição da implementação do hackathon. A distinção importa porque um anúncio de evento não é documentação de arquitetura nem prova de eficácia em produção.

As regras determinísticas também têm custo. Políticas mudam, dados chegam incompletos e testes envelhecem. A vantagem é que a mudança fica localizável: a equipe consegue versionar a regra, criar casos de teste e descobrir quais resultados precisam ser reavaliados. Uma regra escondida em texto livre é muito mais difícil de auditar.

Voz reduz atrito, mas exige uma etapa de confirmação

Entrada por voz pode aproximar o app de quem conhece o próprio negócio, mas não domina a linguagem do sistema de compras. Ela também introduz ruído.

Uma categoria pode ser transcrita de forma errada. Um valor pode perder a unidade. Uma localidade pode ter nomes parecidos. Se a transcrição entrar direto no filtro, a interface transforma uma dúvida de entrada em uma falsa certeza de saída.

O frontend deveria devolver os campos interpretados antes de executar a busca quando a ambiguidade muda o resultado. A equipe não precisa criar um formulário enorme. Pode ser uma revisão curta, com o trecho original ao lado do valor entendido e uma marcação clara nos campos incertos.

Essa etapa parece desacelerar a experiência, mas evita algo bem pior: uma resposta rápida sobre o problema errado.

Escolha a rota pelas capacidades exigidas

Com o fluxo desenhado, a conversa sobre stack fica menos abstrata. Em vez de perguntar “qual modelo é melhor?”, a equipe compara rotas contra uma matriz pequena:

Capacidade É obrigatória? Degradação aceitável
Saída estruturada validável Sim Bloquear se o contrato não puder ser garantido
Chamada da ferramenta de busca Sim Informar que a fonte está indisponível
Entrada de voz Opcional Manter a entrada por texto
Execução local Depende dos dados Usar nuvem somente dentro da política definida
Explicação em pt-BR Sim Tentar a rota secundária já testada
Latência abaixo do limite do produto Sim Exibir estado de processamento ou reduzir uma etapa opcional

As notas da versão prévia do Visual Studio, publicadas em 25 de agosto, ajudam a enxergar essa ideia na prática. O recurso Agent pode usar modelos por rotas como Microsoft Foundry, OpenAI, Anthropic e Ollama com BYOK, ou seja, com a chave do próprio usuário. A interface informa quando determinada capacidade do modo agente não está disponível na rota escolhida. Isso não significa que os provedores tenham paridade. Mostra justamente por que o ambiente precisa conhecer as diferenças.

Suporte a um modelo não garante suporte às ferramentas, ao formato de saída, ao ambiente ou à política de dados exigidos pelo seu fluxo. Se uma capacidade obrigatória não existe, o sistema deve bloquear, pedir confirmação ou reduzir a funcionalidade conforme uma regra definida. Trocar de rota e fingir que nada mudou costuma produzir os bugs mais difíceis de perceber.

Suporte a vários modelos não precisa virar uma abstração universal

Há um risco do outro lado: criar quatro adaptadores, duas filas e uma camada genérica para toda API antes de validar o primeiro usuário.

Para começar, eu isolaria a chamada principal atrás de uma fronteira estreita e registraria a matriz de capacidades no repositório. A segunda rota só entraria quando houvesse uma necessidade concreta, como privacidade, disponibilidade, custo ou uma ferramenta específica.

O teste entre rotas deve olhar para o contrato do fluxo, não apenas para uma resposta de exemplo. A rota alternativa precisa devolver o formato esperado, respeitar a condição de parada, chamar somente as ferramentas permitidas e falhar de maneira visível quando não conseguir cumprir isso.

Múltiplos provedores reduzem uma dependência, mas trazem diferenças de comportamento para dentro do produto. Essa troca pode valer a pena quando a equipe também assume o custo extra de testes e manutenção.

Um exemplo de falha que a interface não deveria esconder

Imagine que a fonte pública foi atualizada pela última vez há vários dias e um campo necessário para verificar uma regra não está presente. O modelo ainda consegue escrever uma explicação convincente com o restante do contexto.

O produto deveria evitar a recomendação fechada. Uma saída honesta seria mostrar os itens encontrados, a data da base e um aviso de que a elegibilidade não pôde ser confirmada. A ação seguinte pode ser revisar os dados ou abrir a fonte original.

Esse comportamento nasce antes do prompt. Ele depende de o pipeline carregar metadados da fonte, de a validação reconhecer o campo ausente e de o frontend ter um estado visual para “não confirmado”. Pedir ao modelo que “seja cuidadoso” não substitui nenhuma dessas decisões.

O mesmo vale para indisponibilidade. Se a rota do modelo falhar, talvez o app ainda consiga exibir resultados filtrados sem a explicação em linguagem natural. Se a fonte de verdade falhar, gerar uma resposta com memória do modelo seria uma degradação perigosa. Falhas diferentes pedem comportamentos diferentes.

Um checklist para sair da demo

Antes de investir mais tempo na escolha do modelo, revise o fluxo com estas perguntas:

  • O resultado útil cabe em uma frase observável?
  • Cada fato importante tem uma fonte de verdade identificada?
  • Regras críticas têm versão e casos de teste fora do texto livre?
  • A tarefa do modelo tem entrada, saída e condição de parada claras?
  • Dados ausentes geram bloqueio ou confirmação em vez de palpite silencioso?
  • A interface mostra fonte, data, motivo e pendências?
  • A rota escolhida suporta as ferramentas e o ambiente exigidos?
  • Existe uma degradação definida para cada capacidade opcional?

Esse checklist também melhora a conversa entre produto, frontend e backend. O frontend passa a conhecer estados além de “carregando” e “concluído”. O backend sabe onde preservar fonte e versão. Produto consegue decidir quais erros permitem continuar e quais exigem revisão humana.

O modelo continua importante. Preço, latência, qualidade e disponibilidade afetam a experiência. A diferença é que essas escolhas passam a ocupar uma parte delimitada do sistema.

Quando o fluxo está explícito, trocar o modelo vira uma decisão de rota que pode ser testada. Sem esse mapa, cada troca corre o risco de mudar também as regras, as garantias e até o problema que o app dizia resolver.

Fontes

Fonte: TabNews

Perguntas frequentes

Respostas institucionais sobre esta cobertura, fontes e limites editoriais.

Sobre o que trata “Um app de IA útil começa pelo fluxo, não pelo…”?
Em poucas horas, uma demo já aceita texto ou voz, chama um modelo e devolve uma resposta bem escrita. A tela parece pronta. O problema aparece quando alguém pergunta de onde veio um fato, qual regra…
O que a matéria explica sobre “Comece pelo resultado que pode ser conferido”?
Antes de discutir prompt, framework ou provedor, complete esta frase:Ao final, o usuário consegue...Para um app que ajuda uma pequena empresa a encontrar oportunidades públicas, uma versão útil seria:Ao final, o usuário consegue ver oportunidades compatíveis com o perfil informado, junto da…
O que a matéria explica sobre “Desenhe o fluxo em seis blocos”?
Eu costumo tratar o primeiro desenho como um mapa curto de responsabilidades:BlocoPergunta de projetoComportamento em caso de falhaEntradaO que a pessoa fornece e o que precisa confirmar?Destacar ambiguidades e pedir correçãoFonte de verdadeDe onde vêm fatos, datas e estados?Informar indisponibilidade ou defasagemRegrasQuais…
O que a matéria explica sobre “Não terceirize regra de negócio para uma frase convincente”?
Modelos são bons em transformar linguagem solta em uma estrutura, resumir documentos e explicar por que dois elementos parecem relacionados. Eles também conseguem produzir uma justificativa elegante para uma conclusão errada.Por isso, a divisão de trabalho precisa acompanhar o custo do erro.…
O que a matéria explica sobre “Voz reduz atrito, mas exige uma etapa de confirmação”?
Entrada por voz pode aproximar o app de quem conhece o próprio negócio, mas não domina a linguagem do sistema de compras. Ela também introduz ruído.Uma categoria pode ser transcrita de forma errada. Um valor pode perder a unidade. Uma localidade pode…
Quem edita o conteúdo do Estrato Mente?
A cobertura é produzida e revisada pela equipe editorial do Estrato Mente, com editor-chefe responsável pela linha editorial. Conheça a redação em https://mente.estrato.cc/equipe/.
Quais fontes o Estrato prioriza?
Priorizamos fontes primárias (órgãos oficiais, balanços, estudos revisados, documentos públicos) e cruzamos informações antes da publicação, conforme a política editorial.
Como solicitar correção de uma matéria?
Envie o pedido pela página de Correções (https://mente.estrato.cc/correcoes/) ou Contato (https://mente.estrato.cc/contato/). Erros materiais são corrigidos com registro da atualização.
WhatsApp X LinkedIn
Compartilhar: LinkedIn
Diego Amaral

Diego Amaral

Diego Amaral integra a equipe editorial do Estrato Mente, vertical da rede Estrato, na função de Repórter de Filosofia prática. O escopo permanente de cobertura inclui autoconhecimento e ética cotidiana, com atenção ao leitor brasileiro que busca contexto factual, datas oficiais e implicações práticas. Na produção diária, prioriza fontes primárias (órgãos públicos, balanços, papers e documentos oficiais), cruza pelo menos duas referências independentes quando o tema é contestado e evita manchetes que prometam certeza onde há incerteza. Critérios de qualidade: lead com o fato principal, atribuição clara de autoria da equipe Estrato, atualização com selo quando há mudança material e linguagem acessível sem simplificar demais o risco ou o contexto. Trabalha sob revisão da mesa editorial e do editor-chefe do portal. Matérias YMYL recebem segunda leitura antes da publicação e podem ser atualizadas quando surgem novos dados oficiais. Limites: este perfil descreve o papel editorial na marca Estrato. O conteúdo publicado é informativo e não constitui aconselhamento médico, financeiro, jurídico ou profissional personalizado. Transparência ao leitor: metodologia em /metodologia/, ética em /etica-editorial/, correções em /correcoes/, equipe em /equipe/ e canal em /contato/ ([email protected]). Na página-mãe da rede, a bio ampliada e o arquivo de matérias ficam em estrato.cc/blog/, com link para o arquivo do autor em cada portal.

Deixe um comentário