Engenharia de Prompts e Engenharia de Requisitos: por que a IA precisa de contexto para entregar melhores resultados

Engenharia de Prompts e Engenharia de Requisitos: por que a IA precisa de contexto para entregar melhores resultados

Quanto mais utilizo Inteligência Artificial em projetos, mais percebo uma relação direta entre a qualidade daquilo que pedimos e a qualidade daquilo que recebemos. Pode parecer uma constatação simples, mas ela começa a ganhar outra dimensão quando levamos a IA para ambientes profissionais, principalmente para Engenharia de Software, gestão de projetos, análise de requisitos e automação de processos. Um prompt mal estruturado pode produzir uma resposta aparentemente boa, escrita de maneira convincente e tecnicamente organizada, mas ainda assim distante da necessidade real. E esse talvez seja um dos maiores riscos da IA generativa: receber uma resposta plausível e interpretá-la como uma resposta correta. Por isso, tenho olhado cada vez menos para Engenharia de Prompts como a habilidade de descobrir palavras mágicas para conversar com uma IA e cada vez mais como um exercício de estruturação de problemas. Quando precisamos explicar contexto, estabelecer restrições, definir entradas e saídas, apresentar exemplos, determinar critérios de aceite e informar o formato esperado, estamos fazendo algo muito próximo do que já fazemos há décadas na Engenharia de Requisitos. A diferença é que agora nosso interlocutor também é um modelo de Inteligência Artificial. Para mim, essa mudança é importante porque tira o prompt do campo da tentativa e erro aleatória e coloca sua construção dentro de uma lógica que profissionais de projetos e tecnologia já conhecem: compreender o problema, decompor sua complexidade, especificar aquilo que esperamos, testar uma primeira solução, avaliar o resultado e utilizar o aprendizado para melhorar o próximo ciclo.

O que Engenharia de Requisitos pode ensinar sobre Engenharia de Prompts

Existe uma relação muito interessante entre Engenharia de Requisitos e Engenharia de Prompts. Em ambos os casos, existe uma intenção que precisa ser transformada em uma especificação suficientemente clara para que outro agente consiga executá-la. Na Engenharia de Software, podemos ter uma área de negócio dizendo que precisa de “um sistema mais simples para acompanhar os pedidos”. Para quem solicita, a necessidade pode parecer perfeitamente clara. Para quem precisa transformar essa frase em software, entretanto, surgem dezenas de perguntas. O que significa simples? Quem acompanha os pedidos? Quais informações precisam aparecer? Existem diferentes perfis de acesso? O usuário pode alterar o pedido? Quais sistemas fornecem os dados? Existem regras específicas para determinados clientes? O que acontece quando uma informação está indisponível? Como sabemos que a funcionalidade está correta? O trabalho de requisitos começa justamente quando deixamos de aceitar a frase inicial como especificação suficiente e começamos a investigar aquilo que realmente precisa ser construído. Com Inteligência Artificial acontece algo muito parecido. Pedir para uma IA “criar um sistema de acompanhamento de pedidos” permite que ela produza alguma coisa, mas grande parte das decisões será preenchida pelo próprio modelo a partir de padrões aprendidos durante seu treinamento. Quanto menos contexto fornecemos, mais espaço deixamos para que a IA complete as lacunas. Isso pode ser útil em uma atividade criativa, mas se torna perigoso quando estamos falando de processos empresariais, código, arquitetura, segurança ou decisões que dependem de regras específicas. Por isso, acredito que profissionais acostumados a trabalhar com requisitos possuem uma vantagem interessante nesse novo cenário: eles já aprenderam que compreender uma necessidade é diferente de simplesmente registrar aquilo que alguém pediu.

Um bom prompt começa pela decomposição do problema

Uma das práticas que considero mais úteis na construção de prompts é a decomposição top-down. Em projetos, normalmente partimos de uma necessidade mais ampla e começamos a quebrá-la em componentes menores até encontrarmos unidades que conseguimos compreender, estimar, desenvolver e validar. Quando fazemos uma Estrutura Analítica do Projeto, detalhamos um processo ou quebramos uma funcionalidade em requisitos menores, estamos reduzindo a complexidade para tornar o problema administrável. Tenho aplicado exatamente esse raciocínio quando trabalho com Inteligência Artificial. Em vez de tentar resolver uma tarefa complexa com uma única instrução genérica, procuro entender quais dimensões daquela necessidade precisam ser definidas. Podemos começar pela persona que a IA deverá assumir, depois estabelecer a tarefa, acrescentar o contexto, informar os dados disponíveis, determinar restrições, fornecer exemplos, definir critérios de qualidade e especificar o formato da resposta. Dependendo da complexidade, ainda podemos dividir o trabalho em diferentes interações, fazendo com que a saída de uma etapa alimente a próxima. É aqui que abordagens como prompt chaining fazem bastante sentido. O objetivo não é criar prompts enormes simplesmente porque mais palavras seriam necessariamente melhores. O objetivo é diminuir ambiguidades. Existe uma diferença importante entre quantidade de informação e qualidade de contexto. Um prompt com duas páginas de informações irrelevantes pode ser pior do que uma instrução curta contendo exatamente os dados necessários para a tarefa. A pergunta que procuro fazer é: quais decisões eu não quero deixar para a IA tomar sozinha? A resposta ajuda a identificar aquilo que precisa estar explicitamente definido no prompt.

Quanto mais específico for o pedido, menor será o espaço para interpretação

Gosto de explicar esse conceito usando geração de imagens porque o efeito é muito fácil de visualizar. Se eu pedir apenas “crie uma fotografia de um executivo trabalhando em um escritório”, provavelmente receberei uma imagem coerente. Mas praticamente todas as decisões visuais importantes terão sido tomadas pela IA. Ela escolherá o tipo de escritório, iluminação, enquadramento, posição da pessoa, roupa, câmera, lente, profundidade de campo, temperatura de cor e atmosfera da fotografia. Agora imagine que começo a decompor minha intenção. Quero uma fotografia corporativa realista. O ambiente precisa transmitir tecnologia, mas sem parecer futurista. A iluminação deve ser natural e lateral. Quero determinado enquadramento. Posso definir uma câmera Sony, escolher o tipo de lente, trabalhar abertura, distância focal, profundidade de campo, perspectiva e temperatura de cor. Cada informação adicional reduz uma parcela do espaço de interpretação do modelo. Na Engenharia de Software podemos aplicar exatamente a mesma lógica. Em vez de solicitar simplesmente “crie uma API de cadastro de clientes”, podemos definir tecnologia, arquitetura, campos, tipos de dados, regras de validação, autenticação, tratamento de exceções, padrões de resposta, requisitos de segurança, testes esperados e critérios de aceite. A IA continua tendo liberdade para produzir a solução, mas essa liberdade passa a existir dentro de limites definidos pelo problema. Para mim, esse é um ponto fundamental: especificar melhor não significa controlar cada palavra produzida pelo modelo. Significa estabelecer fronteiras suficientemente claras para que a capacidade generativa da IA trabalhe a favor da necessidade, e não preencha silenciosamente lacunas que deveriam ter sido decididas por nós.

Por que o primeiro prompt dificilmente deveria ser considerado o prompt final

Outro ponto que considero fundamental é abandonar a expectativa de acertar tudo na primeira tentativa. Quando trabalhamos com problemas complexos, raramente temos conhecimento completo sobre a solução antes de começar. Muitas vezes aprendemos sobre o próprio problema durante sua execução. Esse pensamento empírico está presente em diversas abordagens utilizadas na gestão de projetos, no desenvolvimento de produtos e na Engenharia de Software. Por isso, vejo o refinamento de prompts como um ciclo muito parecido com outros modelos de melhoria contínua. Podemos estruturar uma primeira versão, executar, observar o resultado, identificar diferenças entre aquilo que esperávamos e aquilo que recebemos, ajustar as instruções e executar novamente. Existe uma relação evidente com o PDCA: planejar, executar, verificar e agir sobre aquilo que aprendemos. Existe também uma proximidade com métodos ágeis como Scrum, em que ciclos menores permitem produzir algo, inspecionar o resultado e adaptar os próximos passos. O ponto interessante é que a resposta da IA passa a ter duas funções. A primeira é entregar aquilo que solicitamos. A segunda é revelar problemas existentes na nossa própria especificação. Quando a IA interpreta algo de maneira diferente, antes de simplesmente dizer que “a IA errou”, vale perguntar se realmente fornecemos contexto suficiente para que aquela interpretação fosse evitada. Em muitos casos, a resposta inadequada revela uma ambiguidade que já existia na nossa solicitação.

Refinar prompts não significa apenas mandar a IA tentar novamente

Existe uma diferença importante entre iteração e repetição. Pedir cinco vezes para uma IA refazer determinada atividade sem entender por que o resultado anterior não funcionou não representa necessariamente um processo de refinamento. O valor está em utilizar cada saída para melhorar a próxima entrada. Se a primeira resposta apresentou uma arquitetura inadequada, precisamos entender qual premissa levou o modelo até aquela decisão. Faltou informar uma restrição tecnológica? Existia uma regra de negócio não documentada? O volume esperado de transações não foi informado? Havia uma integração obrigatória que não apareceu no contexto? Existe alguma política corporativa que limita determinada abordagem? A partir dessa análise, o próximo prompt deixa de ser apenas uma nova tentativa e passa a incorporar conhecimento adquirido durante o ciclo anterior. É dessa forma que vejo o processo de esboçar, testar, avaliar e refinar. Cada interação deveria reduzir alguma incerteza. Em tarefas mais complexas, podemos inclusive estruturar etapas separadas: primeiro pedir para a IA analisar o problema, depois identificar informações ausentes, em seguida propor alternativas, comparar restrições e somente depois produzir a solução. Esse tipo de encadeamento também ajuda a reduzir um erro bastante comum no uso profissional da IA: pedir análise, decisão, implementação e validação dentro de uma única instrução e esperar que todas essas etapas recebam o mesmo nível de profundidade.

O refinamento iterativo pode reduzir ambiguidades, mas não elimina a necessidade de validação

Existe uma tentação perigosa quando começamos a obter respostas melhores da IA: acreditar que um prompt muito bem construído elimina a necessidade de revisão humana. Não elimina. Refinamento iterativo aumenta as condições para obter respostas mais precisas, estáveis e alinhadas ao objetivo, mas modelos generativos continuam podendo produzir informações incorretas, assumir premissas inadequadas ou apresentar respostas convincentes para situações em que não possuem informação suficiente. Por isso, grounding e validação são partes fundamentais desse processo. Se uma IA precisa analisar uma política interna, por exemplo, o ideal é fornecer a política como fonte de referência e estabelecer que determinadas conclusões devem estar fundamentadas naquele conteúdo. Se estamos gerando código, testes automatizados, revisão humana e ferramentas de análise continuam sendo necessários. Se estamos trabalhando com dados, precisamos garantir a qualidade e a origem dessas informações. Quanto maior o impacto potencial de uma resposta, maior deveria ser também o rigor da validação. Para mim, esse ponto conecta diretamente Engenharia de Prompts com Engenharia de Software: qualidade não deveria depender apenas da confiança que temos na ferramenta. Ela precisa ser construída por meio de processos capazes de identificar quando alguma coisa está errada. A IA pode acelerar drasticamente a produção de artefatos, mas velocidade sem mecanismos de verificação também pode acelerar a propagação de erros.

Um prompt pode ser tratado como um requisito que também evolui

Talvez uma das mudanças mais interessantes seja começar a tratar determinados prompts como ativos do projeto e não como mensagens descartáveis dentro de uma janela de conversa. Se uma instrução será utilizada repetidamente para gerar código, analisar documentos, classificar informações, produzir testes ou apoiar algum processo automatizado, aquele prompt passa a fazer parte do comportamento da solução. Alterar sua estrutura pode alterar o resultado produzido pelo sistema. Isso aproxima o prompt de outros artefatos que já versionamos e controlamos dentro da Engenharia de Software. Podemos registrar versões, documentar mudanças, criar conjuntos de testes, comparar resultados e estabelecer critérios mínimos de qualidade antes de colocar uma nova versão em produção. Em aplicações baseadas em LLMs, essa disciplina tende a se tornar cada vez mais relevante. Não basta perguntar se o novo prompt “parece melhor”. Podemos criar cenários conhecidos e verificar como diferentes versões respondem aos mesmos casos. Podemos avaliar consistência, aderência às regras, formato da saída, presença de informações obrigatórias e ocorrência de comportamentos indesejados. Isso muda bastante a conversa sobre prompt engineering. Deixamos de falar apenas sobre criatividade para formular instruções e começamos a falar sobre engenharia: especificação, experimentação, medição, controle de versão, validação e melhoria contínua.

O profissional que sabe perguntar também precisa saber avaliar

Com a popularização da Inteligência Artificial, tornou-se comum ouvir que uma das competências mais importantes será “saber fazer perguntas”. Concordo parcialmente. Saber perguntar é importante, mas considero insuficiente. O diferencial está em saber estruturar um problema e, principalmente, ter conhecimento suficiente para avaliar a resposta. Uma pessoa pode criar um prompt extremamente detalhado e ainda assim aceitar uma solução tecnicamente inadequada porque não possui repertório para identificar o problema. É por isso que não vejo a Engenharia de Prompts como substituta do conhecimento de domínio. Vejo justamente o contrário. Quanto mais avançadas ficam as ferramentas, mais o conhecimento muda de posição. Talvez o profissional precise escrever menos código manualmente, produzir menos documentos do zero ou gastar menos tempo executando determinadas tarefas operacionais. Em contrapartida, passa a precisar compreender contexto, avaliar alternativas, estabelecer restrições e identificar quando a resposta produzida não deveria ser aceita. Na Engenharia de Software isso significa continuar entendendo arquitetura, segurança, dados, testes, requisitos, desempenho, integrações e custos. A IA pode produzir código rapidamente, mas alguém ainda precisa determinar se aquele código deveria existir daquela maneira.

No fim, trabalhar com prompts é também aprender a especificar melhor problemas

Quanto mais utilizo IA, menos acredito na ideia de que o principal diferencial estará em decorar estruturas perfeitas de prompts. Modelos mudam, interfaces mudam e a própria capacidade das plataformas de compreender contexto tende a evoluir rapidamente. O que permanece relevante é uma competência muito mais antiga: saber transformar uma necessidade inicialmente abstrata em um problema compreensível e verificável. É exatamente por isso que vejo tanta proximidade entre Engenharia de Prompts, Engenharia de Requisitos e gestão de projetos. Todas trabalham, de alguma maneira, com a transformação de intenção em execução. Começamos com algo que queremos alcançar, decompomos o problema, estabelecemos limites, produzimos uma primeira solução, avaliamos o resultado e utilizamos aquilo que aprendemos para melhorar o próximo ciclo. A Inteligência Artificial tornou esse processo muito mais rápido, mas não eliminou a necessidade de raciocínio. Pelo contrário, colocou ainda mais valor na capacidade de definir corretamente o problema. Podemos melhorar um prompt dez vezes, criar cadeias de instruções sofisticadas e utilizar modelos cada vez mais poderosos. Ainda assim, se não soubermos explicar qual problema estamos tentando resolver e como reconheceremos uma boa resposta quando ela aparecer, estaremos apenas utilizando uma tecnologia extremamente avançada para executar com mais velocidade uma necessidade que nós mesmos ainda não compreendemos.

Share the Post:

Você também pode gostar desses