Skills: Fundamentos de Engenharia de Prompts

Última atualização: 2026-08-31

O prompt é a alma do Skill — escrito bem, a IA é um especialista; escrito mal, a IA é um papagaio.


1. Princípios de design de prompts

(1) O método SPECIFIC

Letra Significado Exemplo
S Específico (Specific) "Verificar injeção SQL" em vez de "Verificar segurança"
P Propósito (Purpose) "Evitar vazamento de dados em produção"
E Exemplo (Example) Fornecer uma amostra da saída esperada
C Restrição (Constraint) "No máximo 500 palavras"
I Interativo (Interactive) "Faça perguntas complementares se a informação for insuficiente"
F Formato (Format) "Exiba a saída usando tabelas Markdown"
I Iterativo (Iterative) Otimize continuamente após os testes

(2) Anti-padrões comuns

Anti-padrão Problema Melhoria
Muito vago "Revisar código" "Revisar nas dimensões segurança/desempenho/legibilidade"
Sem formato Sem restrição de saída "Exiba em tabelas, ordenado por severidade"
Sem exemplos Saída da IA incontrolável Forneça 1-2 saídas de referência
Papel vago A IA não sabe quem é "Você é um especialista sênior em auditoria de segurança"
Muito complexo Pedir muito de uma vez Divida em etapas, uma tarefa clara por etapa

2. Técnicas de definição de papel

(1) Papel básico

MARKDOWN
Você é um especialista em desenvolvimento backend Python.

(2) Papel aprimorado

MARKDOWN
Você é um especialista backend Python com 10 anos de experiência, especializado em FastAPI e Django.
Você tem domínio particular em:
- Otimização de banco de dados e ajuste de ORM
- Design de APIs RESTful
- Programação assíncrona e tratamento de concorrência
Seu estilo de código: conciso, com tipagem segura, bem comentado

(3) Alternância de múltiplos papéis

MARKDOWN
# Skill com múltiplos papéis

Quando o tipo de tarefa é "design de arquitetura", você é um arquiteto de sistemas focado em escalabilidade e desempenho.
Quando o tipo de tarefa é "implementação de código", você é um engenheiro sênior focado em qualidade e manutenibilidade.
Quando o tipo de tarefa é "depuração", você é um especialista em solução de problemas focado em análise de causa raiz e correções rápidas.

3. Técnicas de decomposição de tarefas

(1) Tarefa de etapa única

Tarefas simples podem ser descritas diretamente:

MARKDOWN
Leia o arquivo Python especificado e verifique se contém type hints.
Se não, adicione anotações de tipo a todas as funções.

(2) Fluxo de múltiplas etapas

Tarefas complexas devem ser divididas em etapas:

MARKDOWN
Siga estes passos para realizar a revisão de uma migração de banco de dados:

## Etapa 1: Entender o arquivo de migração
- Leia o conteúdo do arquivo de migração
- Identifique os tipos de operação (CREATE/ALTER/DROP)

## Etapa 2: Avaliação de riscos
- Verifique riscos de perda de dados (DROP COLUMN, DROP TABLE)
- Verifique riscos de bloqueio de tabela (ADD COLUMN sem valor padrão)
- Verifique riscos de desempenho (ADD INDEX em tabela grande)

## Etapa 3: Gerar sugestões
- Para operações de alto risco, sugira um plano de execução passo a passo
- Para operações de baixo risco, confirme que podem ser executadas diretamente

(3) Ramificação condicional

MARKDOWN
## Lógica condicional

- Se projeto Python → Execute `ruff check`
- Se projeto TypeScript → Execute `eslint`
- Se projeto Go → Execute `go vet`
- Se a stack tecnológica for incerta → Leia package.json / pyproject.toml / go.mod primeiro

4. Técnicas de restrição de saída

(1) Restrições de formato

MARKDOWN
## Formato de saída

Use estritamente o formato JSON a seguir:

```json
{
  "summary": "Resumo em uma frase",
  "issues": [
    {
      "severity": "high|medium|low",
      "location": "arquivo:linha",
      "description": "Descrição do problema",
      "suggestion": "Sugestão de correção"
    }
  ],
  "score": 85
}

### (2) Restrições de comprimento

```markdown
## Restrições de saída

- Resumo com no máximo 3 frases
- Cada problema com no máximo 100 palavras
- Sugestões de correção devem incluir exemplos de código
- Saída total com no máximo 1000 palavras

(3) Restrições de qualidade

MARKDOWN
## Requisitos de qualidade

- Sugestões de correção devem ser código diretamente utilizável, não pseudocódigo
- Severidade deve ter critérios claros: alto=vulnerabilidade de segurança/crash, médio=degradação de desempenho/baixa manutenibilidade, baixo=estilo/sugestão
- Problemas incertos devem ser marcados como "requer confirmação humana", não adivinhe

5. Método baseado em exemplos

Exemplos few-shot são o meio mais eficaz de controlar a qualidade da saída:

MARKDOWN
## Exemplo

### Entrada
```python
def get_user(id):
    db = connect()
    result = db.execute(f"SELECT * FROM users WHERE id = {id}")
    return result

Saída

📍 src/db.py:12 🔴 Crítico: Vulnerabilidade de injeção SQL 📝 Uso de f-string para concatenar SQL, a entrada do usuário pode injetar SQL malicioso diretamente ✅ Correção:

PYTHON
def get_user(user_id: int) -> dict:
    db = connect()
    result = db.execute(
        "SELECT * FROM users WHERE id = ?",
        (user_id,)
    )
    return result.fetchone()

Depois que Alice adicionou 3 exemplos ao prompt, a consistência da saída da IA melhorou de 60% para 95%. Bob disse: "Exemplos são os melhores professores — mostrar à IA o que você quer é 10 vezes mais eficaz do que descrever o que quer."

---

## ❓ Perguntas Frequentes

> **P: Qual o tamanho ideal para o prompt?** **R: O suficiente para ser eficaz, geralmente 50-200 linhas. O essencial é ser específico e acionável, não extenso. Prompts excessivamente longos podem fazer a IA perder o foco.**
> **P: Devo escrever restrições negativas ("não faça X")?** **R: Sim, mas com moderação. Restrições positivas ("faça apenas X") são mais eficazes que negativas ("não faça Y"). A IA tende a ignorar instruções com "não".**
> **P: Quantos exemplos devo fornecer?** **R: 1-3 é suficiente. 1 exemplo mostra o formato, 2-3 exemplos cobrem casos extremos. Mais de 5 exemplos na verdade reduz a qualidade.**

---

## 📖 Resumo

- Método SPECIFIC: Específico, Propósito, Exemplo, Restrição, Interativo, Formato, Iterativo
- Definição de papel deve ser específica: expertise, estilo, nível de experiência
- Decomposição de tarefas em três níveis: descrição de etapa única, fluxo de múltiplas etapas, ramificação condicional
- Restrições de saída: formato, comprimento, qualidade — abordagem em três frentes
- Exemplos few-shot são o método mais eficaz de controle de qualidade

---

## 📝 Exercícios

1. **Básico (dificuldade⭐)**: Reescreva um prompt simples que você já escreveu antes usando o método SPECIFIC e compare os resultados.
2. **Intermediário (dificuldade⭐⭐)**: Escreva um prompt completo para um Skill de "geração de documentação de API", incluindo papel, fluxo, restrições e exemplos.
3. **Avançado (dificuldade⭐⭐⭐)**: Projete um framework de template de prompt universal que suporte injeção de diferentes papéis e regras via variáveis, mantendo formato de saída consistente.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%