Engenharia de Prompt

Anatomia de um Prompt

Contexto, objetivo, restrições e formato — blocos que tornam respostas previsíveis.

Intermediário 25 min 25 pontos Leitura 0%

Nesta aula você vai

  • Decompor prompt em blocos reutilizáveis
  • Evitar ambiguidade que gera respostas genéricas
  • Definir formato de saída explícito

Anatomia de um Prompt

Objetivos

  • Criar prompts previsíveis — mesma entrada, mesma estrutura de saída
  • Tratar prompt como interface entre seu sistema e o LLM

Os quatro blocos

[CONTEXTO]     Quem é você, quem é o usuário, situação atual
[OBJETIVO]     O que deve ser feito — verbo claro
[RESTRIÇÕES]   O que NÃO fazer, limites, tom, idioma
[FORMATO]      Como entregar — markdown, JSON, lista, tamanho

Exemplo fraco

"Fale sobre pedidos"

Resposta: essay genérico sobre e-commerce.

Exemplo forte

Contexto: Você é assistente da Loja Nova Era. O usuário está logado.
Objetivo: Explicar como rastrear um pedido pelo número.
Restrições: Máximo 4 frases. Português BR. Não invente URLs.
Formato: Passo numerado 1–3.

System vs User prompt

System — regras estáveis (carregue uma vez por sessão):

Você é o assistente oficial da API Docs Co.
Responda só sobre REST e OAuth2.
Se a pergunta for off-topic, diga: "Só posso ajudar com nossa documentação."
Respostas em português, tom técnico mas acessível.

User — pedido específico da vez:

Como renovo um access token com refresh token?

Separar permite versionar system prompt no Git (prompts/support-v2.txt) sem misturar com input do usuário.

Formato de saída explícito

Para integração com código, peça JSON:

Responda APENAS com JSON válido, sem markdown:
{"intent": "...", "confidence": 0.0-1.0}

Valide com JSON.parse + schema (Zod, ajv). Se inválido: retry com "Corrija o JSON".

Anti-padrões

Ruim Por quê
Prompt de 3.000 tokens no system Caro, dilui instruções
"Seja útil e criativo" Vago demais
Múltiplos objetivos conflitantes Modelo escolhe um aleatoriamente
Perguntar e responder no mesmo bloco Confunde roles

Template mínimo (copie e adapte)

## Contexto

{empresa, produto, dados conhecidos}

## Objetivo

{ação específica}

## Restrições

- Idioma: pt-BR
- Máximo: {N} palavras
- Não inventar: {dados sensíveis}

## Formato

{lista | JSON | parágrafo}

Resumo

  • Prompt = contrato: contexto + objetivo + restrições + formato
  • System = regras fixas; User = pedido variável
  • Saída estruturada (JSON) habilita automação downstream
  • Prompt vago → resposta vaga → bug de produto