Pular para o conteúdo

Engenharia de contexto e de prompts no desenvolvimento de software

Prioridade Média 15 min de leitura Status: Não visto Lido Praticado Dominado

Do zero

Imagine um estagiário competente no primeiro dia do projeto. Ele programa bem, mas não conhece nada do sistema. O resultado depende de duas coisas:

  • Do pedido. “O relatório está errado, conserta” obriga o estagiário a adivinhar qual relatório, qual erro e o que conta como consertado. Escrever bem o pedido é a engenharia de prompt.
  • Do que está na mesa dele. Se a mesa só tem um arquivo, ele não vê o resto; se tem o sistema inteiro empilhado, ele se perde. Escolher o que vai para a mesa (as regras do projeto, os arquivos certos, a mensagem de erro exata) é a engenharia de contexto.

Com um assistente ou agente de IA é igual. A “mesa” é a janela de contexto, e nela entram: as instruções gerais, o arquivo de regras do projeto, os trechos de código, os resultados das ferramentas (o teste que falhou, a busca no repositório) e a conversa até ali. O modelo só sabe do projeto o que estiver ali.

Frase para guardar: prompt bom diz o que, onde, como saber que acabou e o que não pode mudar; contexto bom é o necessário, nem de menos, nem de mais.

Em 1 minuto

  • Anatomia de um bom pedido de código: objetivo, onde mexer, como reproduzir o problema, restrições (o que não pode mudar), formato da entrega e critério de pronto (os testes que devem passar).
  • Pedir o plano antes da edição em tarefas grandes, e decompor em passos menores e verificáveis.
  • Exemplos (few-shot): mostrar duas ou três funções do próprio projeto é o jeito mais direto de o código novo seguir o mesmo estilo.
  • Separar instruções de dados: o que vem de fora (um log, um e-mail, um documento) vai delimitado e é tratado como dado, nunca como ordem. Isso reduz a injeção de prompt, mas não a elimina: somam-se permissões mínimas para o agente e confirmação humana nas ações de risco.
  • Arquivo de instruções do projeto (como CLAUDE.md ou AGENTS.md): regras permanentes (versões, comandos de teste, convenções) que o agente lê em toda sessão, em vez de repeti-las a cada pedido.
  • Contexto demais atrapalha: a atenção se dilui, e informações no meio de um contexto enorme tendem a ser ignoradas. Prefira a recuperação sob demanda: o agente busca e lê só o que precisa (com ferramentas de busca e leitura) em vez de receber tudo de uma vez.
  • Contextos longos se administram: compactar (resumir o histórico e seguir com o resumo), usar subagentes com contexto próprio para pesquisas paralelas e manter notas de progresso num arquivo.

Exemplo concreto: o total do relatório de diárias

O pedido fraco:

O relatório de diárias está com erro, conserta.

O pedido bom:

Tarefa: corrigir o total do relatório de diárias, que soma duas vezes as diárias canceladas.
Onde: src/relatorios/diarias.py (função total_por_servidor) e tests/test_diarias.py.
Como reproduzir: pytest tests/test_diarias.py::test_cancelada falha com 1600 em vez de 800.
Restrições: não mudar a assinatura da função; não acrescentar dependências.
Pronto quando: esse teste passar, os demais continuarem passando e houver um teste novo
para duas diárias canceladas no mesmo mês.
Antes de editar, explique a causa em duas frases.

O contexto permanente, no arquivo de instruções do repositório:

# Projeto: sistema de diárias
- Python 3.12; testes com pytest (rode `pytest -q` antes de concluir).
- Valores monetários em Decimal, nunca em float.
- Não editar arquivos em migrations/ sem pedido explícito.

Com isso, o agente sabe onde olhar, como provar que acertou e o que não pode tocar. Em vez de receber o repositório inteiro, ele abre os dois arquivos citados, roda o teste, lê o erro e, se precisar, busca outros trechos. A mesa fica com o necessário.

Comparação: prompt × contexto e as boas práticas

Engenharia de prompt Engenharia de contexto
Pergunta Como pedir? O que o modelo precisa ter à vista?
Atua em O texto do pedido Tudo o que entra na janela: instruções, arquivos, ferramentas, histórico, memória
Exemplo Critério de pronto e restrições claras Arquivo de regras do projeto; ler só os arquivos relevantes; compactar o histórico
Problema Causa provável O que fazer
A IA mexe no arquivo errado Pedido sem dizer onde Indicar arquivos e funções
O código sai fora do padrão do projeto Falta de exemplos e de regras Few-shot com código do projeto; arquivo de instruções
A IA “conserta” e quebra outra coisa Sem critério de pronto Exigir que todos os testes passem
Respostas piores numa conversa muito longa Contexto inchado Compactar, recomeçar com um resumo ou usar subagente
A IA obedece a um texto dentro de um log Dado misturado com instrução Delimitar o dado, tratá-lo como dado e limitar o que o agente pode fazer
Pedido sem contexto Pedido com contexto
“Cria um endpoint de busca.” “Cria GET /processos?numero= no padrão de src/api/contratos.py, com validação do número e teste de 404.”
“Melhora o desempenho.” “A consulta X leva 4 s (EXPLAIN anexo); proponha um índice e mostre o plano antes e depois.”

Como a FCC cobra

A diferença entre engenharia de prompt e engenharia de contexto, os elementos de um bom pedido (objetivo, contexto, restrições, critério de aceite) e os cuidados com o excesso de contexto e com a injeção de prompt.

  • Few-shot × zero-shot em tarefas de código.
  • Arquivo de instruções do projeto para agentes.
  • Recuperação sob demanda, compactação e subagentes.
  • Delimitação entre instruções e dados.

Pegadinhas

  • “Quanto mais contexto, melhor a resposta, sem exceção.” Falso: o excesso dilui a atenção e encarece; o ideal é o contexto relevante.
  • “Engenharia de contexto é o mesmo que treinar o modelo de novo com o código do órgão.” Falso: é escolher e organizar o que entra na janela a cada tarefa; o modelo não muda.
  • “Instruções encontradas num documento analisado pelo agente devem ser cumpridas, pois fazem parte do contexto.” Falso: conteúdo externo é dado, não ordem; obedecê-lo é cair numa injeção de prompt.
  • “Um pedido curto e vago dá mais liberdade e, por isso, gera código melhor.” Falso: obriga o modelo a adivinhar; restrições e critérios de aceite reduzem os erros.
  • “O arquivo de instruções do projeto precisa ser colado em todo pedido.” Falso: o agente o lê sozinho em cada sessão; é justamente para não repetir.

Explique com suas palavras

Explique a um colega a diferença entre engenharia de prompt e engenharia de contexto, usando o exemplo do relatório de diárias, e por que colar o repositório inteiro não é uma boa ideia.

  1. Escreva sem olhar a lição, com frases curtas e um exemplo seu.
  2. Onde travar ou precisar de jargão, há uma lacuna: releia só essa parte.
  3. Compare com a explicação-modelo e reescreva o que faltou.

Fica salva neste navegador.

Comparar com uma explicação-modelo

Engenharia de prompt é caprichar no pedido: dizer qual é o erro, em que arquivo, como reproduzir, o que não pode mudar e quando o trabalho está pronto. No relatório de diárias, isso transforma “conserta o relatório” num pedido que dá para conferir: o teste que falha tem de passar.

Engenharia de contexto é cuidar de tudo o que o assistente tem à vista enquanto trabalha: as regras do projeto, os arquivos certos, o resultado do teste. Colar o repositório inteiro parece ajudar, mas é como despejar todos os processos do arquivo na mesa do estagiário: o que importa se perde no meio, e ele passa a ignorar instruções. Melhor dar o essencial e deixar que ele busque o resto quando precisar.

Teste-se

Eng. de Software com IA e agentes · Contexto e prompts · Inédita, estilo FCC

Questão 1 de 3

Para que um agente de codificação corrija um defeito com menor risco de interpretação errada, o pedido deve conter

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Eng. de Software com IA e agentes · Contexto e prompts · Inédita, estilo FCC

Questão 2 de 3

A engenharia de contexto, aplicada a agentes de codificação, consiste em

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Eng. de Software com IA e agentes · Contexto e prompts · Inédita, estilo FCC

Questão 3 de 3

Ao colar o repositório inteiro no contexto de um assistente, a equipe percebeu respostas piores, que ignoravam instruções escritas no meio do texto. A explicação e a conduta mais adequadas são:

Alternativas

A–E escolhem, Enter confirma. Botão direito ou Shift + letra risca.

Toque longo numa alternativa para riscá-la.

Mais duas questões deste tópico estão em Questões.

Flashcards gerados

FrenteVerso
Arquivo de instruções do projeto Arquivo no repositório (como CLAUDE.md ou AGENTS.md) com as regras permanentes, que o agente lê em toda sessão. Exemplo: Versão da linguagem, comando dos testes, convenções e pastas que não podem ser editadas.
Compactação do contexto Resumir o histórico de uma conversa longa e seguir com o resumo, liberando espaço na janela sem perder o essencial.
Subagente Agente auxiliar com contexto próprio, que faz uma pesquisa ou subtarefa e devolve só o resultado, sem encher o contexto principal.
Recuperação sob demanda O agente busca e lê, com ferramentas, só os arquivos de que precisa, em vez de receber o repositório inteiro de uma vez.
Pedir o plano antes de editar Em tarefas grandes, pedir que o agente explique a causa e o plano antes de mexer no código, para corrigir o rumo cedo.

Ligação com o estudo de caso

Num caso sobre o uso de agentes de codificação no Tribunal, proponha um padrão: arquivo de instruções em cada repositório (versões, comandos de teste, regras de segurança), modelo de pedido com objetivo, local, reprodução, restrições e critério de pronto, conteúdo externo sempre delimitado como dado e revisão humana do resultado. A lição de prompts e RAG, em Inteligência Artificial, complementa este tema com zero-shot, few-shot e cadeia de raciocínio.

Fontes da lição

Claude explica

Tire dúvidas sobre este tema no Claude: o site copia o pedido com a lição e abre uma conversa nova, na sua conta. Confira na fonte qualquer fato de lei ou de norma.

Pratique fora do site

Faça questões da FCC sobre este tópico no QConcursos ou no Gran e registre aqui quantas fez: elas contam na meta da semana e no status do tópico.

Registrar questões feitas lá
Errei uma questão lá: criar flashcard