Aprimorador Automático de Prompts com Estado
PONTOS DE DECISÃO
AVALIAÇÃO DO PROMPT:
├── Pergunta/comando simples (o que, quando, como)
│ └── Pular otimização → Responder diretamente
├── Tarefa complexa (multi-etapas, raciocínio, técnica)
│ ├── Orçamento de tokens < 1000
│ │ └── APE: 3-5 iterações
│ ├── Orçamento de tokens 1000-5000
│ │ └── OPRO: 5-10 iterações
│ └── Orçamento de tokens > 5000
│ └── Compilação DSPy: 10-20 iterações
└── Template/instrução de sistema reutilizável
└── Otimização completa com recuperação histórica
SELEÇÃO DA TÉCNICA DE OTIMIZAÇÃO:
├── Reescrita de instruções necessária
│ └── Usar APE (Automatic Prompt Engineer)
├── Ajuste de parâmetros com restrições
│ └── Usar OPRO (Optimization by PROmpting)
├── Pipeline complexo com múltiplos módulos
│ └── Usar padrões de compilação DSPy
└── Domínio desconhecido/exploratório
└── Cascata híbrida APE→OPRO→DSPy
CONTROLE DE ITERAÇÃO:
├── Melhoria < 1% por 3 rodadas → PARAR
├── Pontuação de qualidade > 0,95 → PARAR
├── Iterações máximas atingidas → PARAR
├── Satisfação do usuário confirmada → PARAR
└── Continuar → Próxima iteração
INTEGRAÇÃO DE FEEDBACK:
├── Tarefa bem-sucedida (usuário confirma/métricas boas)
│ └── Registrar feedback positivo + incorporar para recuperação
├── Tarefa falhou/qualidade ruim
│ └── Registrar feedback negativo + analisar modo de falha
└── Resultado incerto
└── Perguntar ao usuário por feedback explícito antes de registrar
MODOS DE FALHA
Espiral de Superotimização
- SINTOMA: Prompt cresce para 500+ tokens com muitas restrições aninhadas
- DIAGNÓSTICO: Buscar retornos decrescentes em vez de parar no "bom o suficiente"
- CORREÇÃO: Aplicar regra 80/20 - se a melhoria cair abaixo de 5% por iteração, parar
Obsessão por Template
- SINTOMA: Gastar iterações em formatação/estrutura em vez de clareza da tarefa
- DIAGNÓSTICO: Confundir apresentação com desempenho
- CORREÇÃO: Medir o sucesso real da tarefa, não a conformidade com o template
Sobreajuste Histórico
- SINTOMA: Prompt otimizado funciona para exemplos passados, mas falha em novas entradas
- DIAGNÓSTICO: Treinar em um conjunto de dados muito restrito da recuperação
- CORREÇÃO: Incluir exemplos diversos na otimização, testar em casos reservados
Erro de Julgamento de Capacidade
- SINTOMA: Adicionar scaffolding extenso para tarefas que o modelo lida nativamente
- DIAGNÓSTICO: Assumir limitações do modelo sem testar
- CORREÇÃO: Testar capacidade de linha de base antes de prompts pesados
Cegueira de Medição
- SINTOMA: Múltiplas iterações sem métricas de sucesso claras
- DIAGNÓSTICO: Otimizar sem saber o que "melhor" significa
- CORREÇÃO: Definir critérios de sucesso mensuráveis no primeiro passo
EXEMPLOS PRÁTICOS
Exemplo 1: Solicitação de Otimização de Código
Original: "Melhore este código"
def process_data(data):
results = []
for item in data:
if item > 0:
results.append(item * 2)
return results
Navegação pelos Pontos de Decisão:
- Avaliação: Tarefa complexa (requer análise de código) → Acionar otimização
- Seleção de Técnica: Revisão de código + melhoria → APE com 5 iterações
- Contexto Recuperado: Prompts de otimização de código semelhantes do histórico
- Prompt Otimizado: "Analise esta função Python em termos de desempenho, legibilidade e padrões Pythonicos. Identifique melhorias específicas: complexidade algorítmica, uso de memória, casos de borda e estilo. Forneça código refatorado com explicações."
O que o Iniciante Perca: "Melhorar" vago não especifica critérios O que o Especialista Capta: Necessidade de dimensões explícitas (desempenho, estilo, casos de borda)
Resultado: Análise clara da oportunidade de list comprehension, tratamento de casos de borda, dicas de tipo
Exemplo 2: Template para Tarefa de Raciocínio
Original: "Ajude-me a pensar sobre esta decisão"
Navegação pelos Pontos de Decisão:
- Avaliação: Template reutilizável + tarefa de raciocínio → Otimização completa
- Recuperação Histórica: Encontrados prompts de framework de decisão (similaridade 0,87)
- Seleção de Técnica: Compilação DSPy (pipeline de raciocínio estruturado)
- Estratégia de Iteração: 10 rodadas, medindo qualidade da decisão
Template Otimizado:
Framework de Análise de Decisão:
1. SITUAÇÃO: Declare a decisão claramente com restrições
2. PARTES ENVOLVIDAS: Liste as partes afetadas e seus interesses
3. OPÇÕES: Gere 3-5 alternativas distintas
4. CRITÉRIOS: Defina métricas de sucesso e ponderação
5. COMPENSAÇÕES: Analise cada opção em relação aos critérios
6. RECOMENDAÇÃO: Selecione a melhor opção com nível de confiança
Gates de Qualidade Aplicados: Completude do template, pontuação de reutilização, satisfação do usuário
Exemplo 3: Solicitação Técnica Ambígua
Original: "Configure monitoramento"
Navegação pelos Pontos de Decisão:
- Avaliação: Subespecificado + técnica → Acionar otimização
- Estratégia de Esclarecimento: OPRO com elicitação de restrições
- Contexto de Domínio: Padrões de configuração de monitoramento recuperados
Prompt Otimizado: "Projete a configuração de monitoramento especificando: (1) Escopo da infraestrutura (servidores, contêineres, aplicações), (2) Métricas principais (desempenho, disponibilidade, negócios), (3) Limiares de alerta e escalonamento, (4) Restrições da pilha de tecnologia, (5) Limites de orçamento/complexidade. Forneça roteiro de implementação com prioridades."
Compensações Antes/Depois:
- Antes: Infinito vai e vem de esclarecimento
- Depois: Coleta estruturada de requisitos em uma única troca
- Custo: Prompt inicial mais longo
- Benefício: Especificação completa em uma rodada
GATES DE QUALIDADE
Lista de verificação pré-execução antes de chamar optimize_prompt:
- Pontuação de complexidade da tarefa > 3 (raciocínio multi-etapas necessário)
- Critérios de sucesso claros definidos ou deriváveis
- Orçamento de tokens estimado e técnica selecionada
- Contexto de domínio identificado para recuperação
- Limite de iteração definido com base na complexidade
Validação pós-otimização:
- Prompt otimizado é específico e acionável
- Métricas de sucesso são mensuráveis
- Coerência de restrições verificada (sem contradições)
- Eficiência de tokens: melhoria justifica o comprimento adicionado
- Contexto histórico integrado adequadamente
- Confirmação do usuário obtida para alterações importantes
Rubrica de pontuação de qualidade (0-100):
- Clareza: Um usuário ingênuo pode entender os requisitos? (25 pts)
- Especificidade: Instruções concretas vs. abstratas? (25 pts)
- Completude: Abrange casos de borda e restrições? (25 pts)
- Eficiência: Atinge objetivos sem inchaço? (25 pts)
LIMITES DE ATUAÇÃO
NÃO use esta skill para:
- Perguntas factuais simples → Responda diretamente com conhecimento
- Operações de arquivo sem raciocínio → Use skill de gerenciamento de arquivos
- Execução direta de comandos → Execute imediatamente
- Respostas conversacionais → Responda naturalmente
- Prompts já otimizados → Verifique o histórico primeiro para evitar reotimização
- Usuário diz explicitamente "não otimize" → Respeite a preferência do usuário
Delegue em vez disso:
- Para problemas matemáticos → Use skills focadas em cálculo
- Para escrita criativa → Use skill de escrita criativa (a menos que seja criação de template)
- Para análise de dados → Use skill de análise de dados (a menos que raciocínio complexo seja necessário)
- Para depuração → Use skill de depuração (a menos que melhoria sistemática seja necessária)
Áreas cinzentas que exigem julgamento:
- Tarefas de complexidade média (pontuação 2-4) → Teste o desempenho da linha de base primeiro
- Solicitações de conhecimento de domínio → Otimize apenas se houver potencial de template reutilizável
- Perguntas de acompanhamento → Otimize se houver expansão significativa do escopo