Fundamentos

Guia de engenharia de prompts: um método passo a passo

Um guia prático de engenharia de prompts. Sete passos para sair de um pedido bruto e chegar a um prompt testado e pronto para produção, com um exemplo resolvido em cada passo.

Traduzido do original em inglês. Código, prompts e saídas de modelos são mantidos em inglês.

Este guia é um método, não uma lista de dicas. Siga os sete passos em ordem e você terá um prompt que declara sua tarefa, carrega o contexto certo, retorna um formato previsível e foi verificado com entradas reais.

O exemplo que acompanha o guia é um prompt que transforma o feedback de clientes em um relatório de produto.

Passo 1: Escreva o objetivo em uma frase

Comece com uma única frase no imperativo que nomeie o resultado. Se você não consegue escrevê-la, a tarefa ainda não está definida.

Classify each piece of customer feedback by product area and sentiment.

Comece com um verbo: classificar, resumir, extrair, redigir, comparar, revisar. Um prompt que apenas descreve material (“aqui estão nossos dados de feedback”) obriga o modelo a adivinhar o que você quer fazer com eles.

Passo 2: Acrescente o contexto que falta ao modelo

Liste o que um novo colega competente precisaria saber: para quem é a saída, quais são as áreas do produto e o que conta como negativo.

The feedback comes from in-app surveys for a project management tool.
Product areas: Boards, Timeline, Reports, Integrations, Billing.
The report is read by product managers who decide what to fix next.

Inclua apenas o contexto que muda a resposta. Informação de fundo que não afeta a saída custa tokens e dilui as instruções.

Passo 3: Declare requisitos e restrições

Transforme as expectativas em uma lista curta. Use números quando houver um tamanho e diga o que fazer nos casos incômodos.

Requirements:
- Assign exactly one product area per item. Use "Other" if none fits.
- Sentiment is one of: positive, neutral, negative.
- Quote the phrase that justifies the sentiment, 12 words at most.
- If an item is not in English, classify it and add "language": "<code>".

Prefira dizer ao modelo o que fazer a dizer o que evitar. “Use linguagem simples” funciona melhor do que “não use jargão”, porque uma proibição nomeia o que você quer eliminar e não oferece alternativa.

Passo 4: Defina o formato de saída

Se um código vai ler a resposta, especifique o formato exatamente. Se uma pessoa vai lê-la, especifique a estrutura e o tamanho.

Return a JSON array. Each element:
{"id": string, "area": string, "sentiment": string, "evidence": string}
Return only the JSON, with no commentary.

A falta de formato de saída está entre os motivos mais comuns de resultados inconsistentes. O guia de prompts de saída estruturada cobre esquemas e validação.

Passo 5: Separe as instruções dos dados

Coloque a entrada variável dentro de delimitadores para que o modelo não a confunda com instruções. Isso também bloqueia a forma mais simples de injeção de prompt.

<feedback>
{{feedback_items}}
</feedback>

Passo 6: Acrescente exemplos se a tarefa precisar

Se as regras são fáceis de declarar, dispense os exemplos. Se a tarefa depende de julgamento, como o que conta como “neutral”, mostre dois ou três pares de entrada e saída que cubram os casos limítrofes. Veja o prompting zero-shot, one-shot e few-shot para saber como escolhê-los.

Passo 7: Teste, meça e revise

Execute o prompt com entradas que representem o uso real, incluindo as incômodas: entrada vazia, entrada muito longa, idiomas misturados e texto hostil. Anote o que falha, mude uma coisa e execute de novo. Esse ciclo é tratado na otimização iterativa de prompts e na avaliação de prompts.

Antes de testar com um modelo, elimine os problemas que não precisam de um modelo para serem encontrados. O analisador de prompts do PromptFlowEngine verifica objetivo ausente, redação vaga, tamanhos não quantificados, instruções conflitantes, formato ausente e variáveis sem delimitação.

O prompt finalizado

You are a product analyst.

## Task
Classify each piece of customer feedback by product area and sentiment.

## Context
The feedback comes from in-app surveys for a project management tool.
Product areas: Boards, Timeline, Reports, Integrations, Billing.
The report is read by product managers who decide what to fix next.

## Requirements
- Assign exactly one product area per item. Use "Other" if none fits.
- Sentiment is one of: positive, neutral, negative.
- Quote the phrase that justifies the sentiment, 12 words at most.

## Output format
Return a JSON array. Each element:
{"id": string, "area": string, "sentiment": string, "evidence": string}
Return only the JSON.

## Input
<feedback>
{{feedback_items}}
</feedback>

Uma lista de verificação para guardar

Pergunta Se a resposta for não
A primeira linha diz o que fazer? Acrescente um objetivo.
Um novo colega teria contexto suficiente? Acrescente público, domínio e definições.
Os tamanhos estão em números? Troque “curto” e “alguns”.
O formato de saída está especificado? Acrescente um formato e um tamanho.
A entrada está separada das instruções? Envolva as variáveis em tags.
Foi executado com entradas difíceis? Monte um pequeno conjunto de testes.

Para pontos de partida prontos que já passam nessas verificações, veja os templates de prompts. Para os hábitos por trás dos passos, continue com as boas práticas de engenharia de prompts.