A otimização de prompts é o processo de melhorar um prompt em relação a um objetivo definido: respostas melhores, menos tokens, menor latência ou um formato mais consistente. O que a separa do tateio é a medição. Você decide o que significa “melhor”, muda uma coisa e verifica.
Decida o que você está otimizando
Um prompt pode ser otimizado em vários eixos, e eles puxam em direções opostas.
| Objetivo | Medido por | Costuma custar |
|---|---|---|
| Qualidade | Taxa de acertos em um conjunto de testes | Tokens |
| Consistência | Mesma entrada, mesma forma de saída | Flexibilidade |
| Custo | Tokens de entrada e saída por chamada | Contexto, exemplos |
| Latência | Tempo até o primeiro e o último token | Profundidade de raciocínio |
| Segurança | Resistência a injeção e vazamentos | Alguma utilidade |
Escolha um objetivo principal e um limite para os demais, por exemplo “aumentar a taxa de acertos sem passar de 800 tokens de entrada”.
O ciclo de otimização
1. Corrija primeiro os problemas estáticos
Alguns defeitos não precisam de um modelo para serem encontrados: sem objetivo, palavras vagas, tamanhos sem números, instruções conflitantes, sem formato de saída, frases repetidas, variáveis sem delimitação. Limpe-os antes de gastar com chamadas ao modelo. O analisador de prompts do PromptFlowEngine os lista, cada um com uma correção sugerida.
2. Monte um conjunto de testes
Reúna de 20 a 50 entradas que representem o uso real. Inclua:
- Casos típicos.
- Casos extremos: vazios, muito longos, em vários idiomas, malformados.
- Casos adversariais: texto que tenta mudar as instruções.
- Falhas anteriores. Cada bug vira um teste.
Para cada entrada, anote o que uma saída correta deve conter ou satisfazer.
3. Estabeleça uma linha de base
Execute o prompt atual em cada entrada e registre os resultados. Esse número é aquilo com que cada mudança é comparada. Sem ele, você não distingue uma melhoria do ruído.
4. Leia as falhas
Agrupe-as. Dez falhas costumam ter duas ou três causas. Procure o padrão: são sempre entradas longas, sempre uma categoria, sempre o mesmo campo ausente?
5. Formule uma hipótese e faça uma mudança
“O modelo acrescenta comentários porque o prompt não diz para retornar apenas JSON.” Faça essa mudança e nada mais.
6. Execute de novo o conjunto inteiro
Verifique se as falhas foram corrigidas e, tão importante quanto, se nada que passava antes agora falha. Uma correção para um caso que quebra outros dois é uma regressão.
7. Mantenha ou reverta, e repita
Registre o que você mudou e por quê. Veja o gerenciamento de prompts para o versionamento.
Movimentos de refinamento que costumam funcionar
| Sintoma | Refinamento |
|---|---|
| A saída varia em tamanho | Troque palavras de tamanho por números |
| A saída varia em forma | Acrescente um formato explícito ou um esquema |
| Ignora uma regra | Tire-a de um parágrafo e coloque em uma lista; remova conflitos |
| Genérico demais | Acrescente contexto de público e domínio |
| Errado em casos extremos | Acrescente uma regra ou um exemplo para esse caso |
| Inventa fatos | Forneça fontes e exija “não informado” quando ausentes |
| Prolixo | Dê um limite de palavras e diga o que deixar de fora |
Movimentos de refinamento que costumam não funcionar
- Acrescentar ênfase (maiúsculas, “muito importante”) a todas as linhas.
- Repetir a mesma instrução em vários lugares.
- Anexar uma nova regra de caso especial a cada falha sem verificar conflitos.
- Mudar a redação de algo que não era a causa.
Otimizando tokens
Quando a qualidade for aceitável, reduza o custo sem mudar o comportamento:
- Remova saudações, cortesias e enchimento.
- Apague frases repetidas e quase repetidas.
- Corte o contexto que não altera nenhuma resposta do conjunto de testes.
- Reduza o número de exemplos e teste de novo.
- Coloque primeiro a parte estável do prompt para que o cache do provedor se aplique.
Os passos 1 e 2 são mecânicos e seguros de automatizar. O otimizador de prompts do PromptFlowEngine os executa e depois verifica que cada frase original, requisito e trecho protegido continua presente, de modo que o prompt mais curto peça exatamente o que o mais longo pedia. Detalhes na otimização de tokens.
Otimização automatizada
Existem ferramentas que procuram prompts melhores automaticamente, fazendo um modelo propor variantes e pontuando-as no seu conjunto de testes. Elas podem achar melhorias que as pessoas deixam passar. Precisam de três coisas para funcionar: um bom conjunto de testes, uma função de pontuação confiável e uma revisão do prompt vencedor, porque um otimizador explora qualquer fraqueza da métrica.
Uma cautela semelhante vale ao pedir a um modelo de chat que “melhore este prompt”. Ele produzirá algo que soa melhor. Pode também omitir uma restrição ou acrescentar uma suposição. Compare o resultado com o original e confirme que todo requisito sobreviveu.
Quando parar
Pare quando o prompt atender ao objetivo no conjunto de testes e novas mudanças moverem os resultados dentro do ruído. Passado esse ponto, mais ganhos virão de um contexto melhor, de outra técnica, como o encadeamento de prompts, ou de outro modelo.
O que uma pontuação baseada em regras pode e não pode dizer
Uma pontuação de qualidade estática, como a da avaliação de prompts, mede o prompt como escrito: clareza, completude, consistência e segurança. É rápida e reproduzível, por isso serve para cada edição e cada commit. Não mede o que um modelo faz com o prompt. Use-a para manter o prompt saudável e um conjunto de testes para confirmar a saída. Ambos são tratados em testes e avaliação de prompts.