Fundamentos

Engenharia de prompts para desenvolvedores

Engenharia de prompts para desenvolvedores: escreva prompts de código que produzam mudanças corretas e trate os prompts de produção como código, com versões, testes e revisões.

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

Os desenvolvedores encontram prompts em dois lugares: ao pedir a um assistente de IA que altere código e ao escrever prompts que são distribuídos dentro de uma aplicação. As habilidades se sobrepõem, mas os modos de falha são diferentes. Este guia cobre os dois.

Parte 1: Prompts para assistentes de programação com IA

Escreva uma especificação, não um desejo

Um assistente de programação que recebe uma única frase precisa inferir o escopo, as restrições e o que significa “pronto”. Dê a ele o mesmo que você colocaria em um bom ticket.

fix login issue and make google login work and don't break anything
## Objective
Fix the login failure and make Google login work.

## Constraints
- Do not change the existing email and password flow.
- Keep the public API of AuthService unchanged.

## Edge cases
- Expired or revoked OAuth tokens.
- A Google account whose email already exists as a password account.

## Testing
- Add unit tests for the token exchange and the account-linking path.

## Acceptance criteria
- Existing auth tests pass. New tests cover both edge cases.

## Expected output
A summary of the cause, then the changed files as diffs.

O segundo prompt leva um minuto a mais para escrever e poupa uma rodada de “não era isso que eu quis dizer”. A extensão do VS Code do PromptFlowEngine gera essa estrutura a partir de uma tarefa de uma linha e dos arquivos relevantes.

Forneça o código certo, não todo o código

As janelas de contexto são grandes, mas a atenção não é ilimitada. Inclua os arquivos que a mudança toca, as interfaces que ela deve respeitar e um exemplo das convenções do projeto. Deixe de fora arquivos gerados, arquivos de lock e módulos sem relação.

Diga o que não deve mudar

Assistentes otimizam para o pedido. Se compatibilidade retroativa, uma interface pública ou desempenho importam, diga isso. “Não quebre nada” não é uma restrição que um modelo consiga verificar; “mantenha inalterado o esquema de resposta de GET /orders” é.

Peça um plano em mudanças grandes

Para qualquer coisa além de uma edição pequena, peça primeiro o plano, revise-o e só então peça a implementação. É o encadeamento de prompts aplicado a código, e pega uma abordagem errada antes de qualquer código ser escrito.

Verifique o que volta

Leia o diff. Execute os testes. Para mudanças maiores, escreva um prompt de revisão que dê ao modelo a tarefa original e os arquivos modificados, e peça que liste onde a mudança não atende aos critérios de aceitação.

Parte 2: Prompts dentro da sua aplicação

Mantenha os prompts no controle de versão

Um prompt faz parte do comportamento do seu programa. Guarde-o em um arquivo, revise as mudanças em pull requests e marque versões com tags. Veja o gerenciamento e versionamento de prompts.

Use templates com variáveis delimitadas

Nunca concatene a entrada do usuário nas instruções. Use variáveis nomeadas e envolva cada uma em tags.

PROMPT = """Classify the support ticket in the tags as billing, bug, or other.
Return only the label.

<ticket>
{ticket}
</ticket>"""

Exija saída estruturada e valide-a

Se o seu código analisa a resposta, peça JSON conforme um esquema, use o recurso de saída estruturada do provedor quando houver e valide o resultado antes de usá-lo. Veja os prompts de saída estruturada.

Orce os tokens

Saiba quantos tokens seu prompt fixo usa, porque você paga por ele a cada chamada. Conte com o tokenizador real do modelo, não com uma estimativa por caracteres. Veja a otimização de tokens.

Teste os prompts no CI

Verificações estáticas pegam regressões que não precisam de um modelo: um formato de saída removido, uma seção duplicada, uma contagem de tokens acima do orçamento, uma chave de API commitada. O portão de testes de prompts as executa a cada pull request.

- run: promptflow check "prompts/**/*.md" --min-score 70 --max-tokens 1500

Trate a saída do modelo como não confiável

A saída pode estar errada e pode ser conduzida por texto injetado na entrada. Não a passe a um shell, a uma consulta SQL ou a uma página HTML sem a mesma validação que você aplicaria à entrada de um usuário. Veja a segurança de prompts.

Chamando o motor a partir de código

As mesmas verificações estão disponíveis por HTTP sem chave, o que é útil para um teste de integração rápido ou uma ferramenta interna:

curl -s https://promptflowengine.com/api/v1/analyze \
  -H 'content-type: application/json' \
  -d '{"prompt":"Write something about our product."}'

Veja a API HTTP para os endpoints, ou conecte-a a um agente de programação por meio do MCP.

Coloque em prática

Experimente com a ferramenta extensão do vs code

Leve a otimização de prompts do PromptFlowEngine direto para o seu fluxo de desenvolvimento. É gratuito, determinístico e não exige conta.

Ferramentas relacionadas do PromptFlowEngine

Mais sobre fundamentos

Ver todos os guias de engenharia de prompts