AI Prompt Engineering · Aula

Comparando solicitações vagas e específicas

Exemplos lado a lado que mostram a grande diferença que a especificidade faz.

Aula 4 de 413 etapas

Comparando solicitações vagas e específicas é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Prompt Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Prompt Engineering inclui 4 aulas no total.

Método de comparação lado a lado

A maneira mais rápida de assimilar a qualidade das instruções é estudar reformulações específicas lado a lado e analisar por que cada melhoria funciona.

Nesta lição, examinamos cinco instruções vagas e suas reformulações específicas. Para cada par, identificamos as mudanças exatas feitas e o mecanismo pelo qual cada melhoria orienta o modelo a produzir uma saída melhor.

Par 1: O artigo de blog

Vago: 'Escreva um artigo de blog sobre trabalho remoto.'

Específico: 'Escreva um artigo de blog de 600 palavras intitulado "Os 3 hábitos de trabalho remoto que destruíram minha produtividade (e o que faço agora)" para um público de desenvolvedores de software de nível intermediário. Narrativa em primeira pessoa, tom coloquial. Estrutura: 1 parágrafo de introdução, 3 seções com títulos H2, 1 CTA final para baixar um modelo gratuito.'

Por que funciona: Adiciona contagem de palavras, título (e, portanto, ângulo), público-alvo, voz, tom, estrutura e um elemento final específico. Nenhuma dimensão fica ao acaso.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=800,
    messages=[{
        'role': 'user',
        'content': (
            'Write a 600-word blog post titled '
            '"The 3 Remote Work Habits That Killed My Productivity (And What I Do Now)" '
            'for an audience of mid-level software developers. '
            'First-person voice, conversational tone. '
            'Structure: 1-paragraph intro, 3 H2 sections (one per habit), '
            '1 closing paragraph with a CTA to download a free productivity template.'
        )
    }]
)
print(response.content[0].text[:400], '...')

Par 2: A revisão de código

Vago: 'Revise meu código.'

Específico: 'Revise a seguinte função Python. Concentre-se apenas em: 1) erros de correção, 2) casos extremos não tratados. NÃO comente sobre estilo, nomes ou formatação. Formato da saída: lista numerada de problemas, cada um com: descrição do problema (1 frase), linha(s) afetada(s), correção sugerida (trecho de código).'

Por que funciona: Define o escopo da revisão (correção + casos extremos), exclui explicitamente outras dimensões (estilo/nomes) e especifica uma estrutura precisa de saída com três campos por item encontrado.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

code = (
    'def get_user(users, user_id):\n'
    '    for user in users:\n'
    '        if user["id"] == user_id:\n'
    '            return user["name"]\n'
    '    return users[0]["name"]\n'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Review the following Python function.\n'
            'Focus ONLY on: 1) correctness bugs, 2) unhandled edge cases.\n'
            'Do NOT comment on style, naming conventions, or formatting.\n'
            'Output format: numbered list. Each item: issue (1 sentence), '
            'affected line, suggested fix as a code snippet.\n\n'
            + code
        )
    }]
)
print(response.choices[0].message.content)

Par 3: A linha de assunto do e-mail

Vago: 'Escreva linhas de assunto de e-mail para meu boletim informativo.'

Específico: 'Escreva 10 linhas de assunto de e-mail para um boletim semanal sobre Python destinado a cientistas de dados. Cada linha de assunto deve ter menos de 50 caracteres, conter um gancho para aumentar a taxa de abertura (lacuna de curiosidade, lista numerada ou afirmação surpreendente) e evitar palavras que acionam filtros de spam, como FREE ou URGENT. Apresente como uma lista numerada, com o tipo de gancho identificado entre colchetes.'

Por que funciona: Especifica a quantidade, a restrição de tamanho, o requisito do gancho, a lista de exclusões e um formato de saída identificado — transformando uma tarefa criativa vaga em uma tarefa de geração baseada em regras.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=400,
    messages=[{
        'role': 'user',
        'content': (
            'Write 10 email subject lines for a weekly newsletter '
            'about Python tips for data scientists. '
            'Requirements:\n'
            '- Each under 50 characters\n'
            '- Must use one of these hooks: [CURIOSITY GAP], [NUMBER], or [SURPRISING CLAIM]\n'
            '- No spam words: FREE, URGENT, ACT NOW, LIMITED TIME\n'
            '- Output as numbered list with hook type in brackets at the end of each line'
        )
    }]
)
print(response.content[0].text)

Par 4: O resumo da reunião

Vago: 'Resuma esta transcrição de reunião.'

Específico: 'Resuma esta transcrição de reunião usando o seguinte formato: 1) Objetivo da reunião (1 frase), 2) Principais decisões tomadas (lista com marcadores, no máximo 5), 3) Itens de ação (tabela com as colunas: Tarefa, Responsável, Prazo), 4) Questões em aberto (lista numerada). Se faltarem informações para um campo, escreva N/D. Não inclua opiniões — apenas fatos e compromissos.'

Por que funciona: Fornece um modelo exato, especifica limites para cada seção, define o esquema da tabela, estabelece uma alternativa para dados ausentes e acrescenta uma restrição de tom (apenas fatos).

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

transcript = (
    'John: We need to decide on the launch date. '
    'Sarah: I think Q3 works. We need the API done first. '
    'John: Agreed. Sarah, can you own the API? '
    'Sarah: Yes, I can have it by July 15th. '
    'John: Great. Who handles marketing? '
    'Mike: I will, but I need the feature list first. '
    'John: We still need to confirm pricing — tabled for next week.'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Summarize this meeting transcript in this exact format:\n'
            '1. Meeting Purpose: (1 sentence)\n'
            '2. Key Decisions: (bullet list, max 5)\n'
            '3. Action Items: (markdown table: Task | Owner | Deadline)\n'
            '4. Open Questions: (numbered list)\n'
            'Missing info: write N/A. Facts only, no opinions.\n\n'
            'Transcript:\n' + transcript
        )
    }]
)
print(response.choices[0].message.content)

Par 5: A explicação

Vago: 'Explique aprendizado de máquina.'

Específico: 'Explique o aprendizado de máquina em 3 parágrafos para um gerente de produto de uma empresa de saúde que entende estatística, mas nunca escreveu código. Parágrafo 1: o que é e como difere da programação tradicional. Parágrafo 2: um exemplo real na área da saúde (diagnóstico ou descoberta de medicamentos). Parágrafo 3: um equívoco comum a evitar. No máximo 200 palavras no total.'

Por que funciona: Define a estrutura (3 parágrafos com temas atribuídos), o público-alvo (função específica + domínio + formação), os requisitos de conteúdo de cada parágrafo e um limite geral de palavras.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=350,
    messages=[{
        'role': 'user',
        'content': (
            'Explain machine learning in exactly 3 paragraphs. '
            'Audience: a product manager at a healthcare company who understands statistics '
            'but has never written code.\n'
            'Paragraph 1: what ML is and how it differs from traditional programming.\n'
            'Paragraph 2: a specific real-world healthcare example (diagnosis or drug discovery).\n'
            'Paragraph 3: one common misconception non-technical people have about ML.\n'
            'Max 200 words total. No bullet points — flowing prose only.'
        )
    }]
)
print(response.content[0].text)

Anatomia de uma boa reformulação

Analisando os cinco pares, toda reformulação eficaz faz as mesmas coisas:

  1. Substitui um verbo vago ('escreva', 'revise', 'explique') por uma tarefa estruturada
  2. Indica o formato da saída (lista, tabela, parágrafos com conteúdo definido)
  3. Adiciona restrições mensuráveis (contagem de palavras, número de itens, limites de caracteres)
  4. Especifica o público-alvo (função + formação + contexto)
  5. Adiciona pelo menos uma regra de exclusão (o que deixar de fora)
# Pattern extractor: identify improvements between two prompts
def analyze_improvement(vague, specific):
    improvements = []
    words = specific.lower()
    if any(str(n) in words for n in range(10, 10000)):
        improvements.append('Quantitative constraint added')
    if 'do not' in words or 'exclude' in words or 'avoid' in words or 'no ' in words:
        improvements.append('Negative constraint added')
    if 'audience' in words or 'for a' in words or 'targeting' in words:
        improvements.append('Audience specified')
    if 'format:' in words or 'table' in words or 'list' in words or 'paragraph' in words:
        improvements.append('Output format defined')
    if 'example' in words or 'such as' in words or 'like:' in words:
        improvements.append('Example provided')
    print('Improvements detected:')
    for i in improvements:
        print(f'  + {i}')

vague = 'Write a blog post about remote work.'
specific = 'Write a 600-word blog post for mid-level developers with 3 H2 sections and a closing CTA. No bullet points. Avoid generic productivity advice.'
analyze_improvement(vague, specific)

O que acontece quando apenas uma dimensão é adicionada

Adicionar apenas uma melhoria ajuda — mas a especificidade parcial ainda deixa grandes lacunas. Compare:

  • 'Escreva um artigo de blog sobre trabalho remoto' — sem restrições
  • 'Escreva um artigo de blog de 600 palavras sobre trabalho remoto' — apenas o tamanho; o ângulo, o público-alvo e a estrutura continuam vagos
  • 'Escreva um artigo de blog de 600 palavras sobre trabalho remoto para desenvolvedores, em tom coloquial' — tamanho + público-alvo + tom; a estrutura, o CTA e o estilo dos títulos continuam vagos

Cada dimensão que você deixa sem especificar é uma loteria. Adicione todas para as quais você tiver informações.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Progressively more specific prompts
prompts = [
    'Write about Python.',
    'Write a 200-word article about Python.',
    'Write a 200-word article about Python for beginners who know no programming.',
    (
        'Write a 200-word article about Python for beginners who know no programming. '
        'Start with a real-world analogy. Use 3 short paragraphs. '
        'End with one actionable first step they can take today.'
    )
]

for i, p in enumerate(prompts, 1):
    print(f'Prompt {i} ({len(p)} chars): {p[:80]}...' if len(p) > 80 else f'Prompt {i}: {p}')
    print()

Usando na prática a técnica dos pares de comparação

A técnica dos pares de comparação é uma poderosa ferramenta de depuração. Quando você obtiver uma saída inadequada:

  1. Salve a instrução vaga que produziu a saída inadequada
  2. Identifique a dimensão que causou o problema
  3. Escreva uma reformulação específica direcionada somente a essa dimensão
  4. Execute as duas instruções e compare as saídas
  5. Identifique o que ainda precisa ser corrigido — depois adicione a próxima restrição

Essa abordagem científica ensina rapidamente quais restrições são mais importantes para seu caso de uso.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

def compare_prompts(prompt_a, prompt_b, label_a='A', label_b='B'):
    client_ref = anthropic.Anthropic(api_key='sk-ant-your-key-here')
    for label, prompt in [(label_a, prompt_a), (label_b, prompt_b)]:
        response = client_ref.messages.create(
            model='claude-opus-4-5',
            max_tokens=150,
            messages=[{'role': 'user', 'content': prompt}]
        )
        print(f'=== {label} ===')
        print(prompt)
        print('--- OUTPUT ---')
        print(response.content[0].text)
        print()

compare_prompts(
    prompt_a='Explain APIs.',
    prompt_b='Explain APIs in 3 sentences for a non-technical startup founder. Analogy required.',
    label_a='VAGUE',
    label_b='SPECIFIC'
)

A auditoria de dois minutos da instrução

Antes de enviar qualquer instrução importante, faça esta auditoria de 2 minutos. Para cada pergunta, se a resposta for 'não', adicione o detalhe ausente:

  • O formato está indicado? (lista / tabela / parágrafo / JSON)
  • O tamanho está especificado? (contagem de palavras / número de itens)
  • O público-alvo está descrito? (função + formação)
  • O objetivo está claro? (para que serve a saída)
  • Há pelo menos uma exclusão? (o que deixar de fora)
  • Há um exemplo ou modelo? (se o estilo for importante)
def two_minute_audit(prompt):
    score = 0
    checks = {
        'Format specified': any(w in prompt.lower() for w in
            ['list', 'table', 'paragraph', 'json', 'bullet', 'sentence', 'word']),
        'Length given': any(c.isdigit() for c in prompt),
        'Audience named': any(w in prompt.lower() for w in
            ['for a', 'audience', 'targeting', 'developer', 'manager', 'beginner']),
        'Exclusion added': any(w in prompt.lower() for w in
            ['do not', 'avoid', 'exclude', 'no ', 'without', 'never']),
        'Goal stated': any(w in prompt.lower() for w in
            ['goal', 'purpose', 'so that', 'in order to', 'will be used']),
    }
    print('Prompt Audit:')
    for check, passed in checks.items():
        icon = 'PASS' if passed else 'FAIL'
        print(f'  [{icon}] {check}')
        if passed: score += 1
    print(f'Score: {score}/{len(checks)}')

two_minute_audit(
    'Write 5 bullet-point suggestions for improving user onboarding '
    'for a B2B SaaS app targeting first-time non-technical users. '
    'Avoid suggestions that require engineering work. Each bullet: max 25 words.'
)

Construindo sua biblioteca de instruções

Cada vez que escrever uma instrução que produza uma saída excelente, salve-a. Crie uma biblioteca pessoal de instruções organizada por tipo de tarefa.

Uma boa entrada da biblioteca inclui:

  • O modelo de instrução com marcadores como [AUDIENCE], [WORD_COUNT]
  • O caso de uso para o qual foi criado
  • O modelo e as configurações utilizados
  • Uma observação sobre o que o torna eficaz

Com o tempo, sua biblioteca se tornará seu recurso de produtividade de IA mais valioso.

# Example prompt library entry
prompt_library = {
    'meeting_summary': {
        'template': (
            'Summarize the following meeting transcript in this format:\n'
            '1. Purpose: (1 sentence)\n'
            '2. Decisions: (bullet list, max 5)\n'
            '3. Action Items: (table: Task | Owner | Deadline)\n'
            '4. Open Questions: (numbered list)\n'
            'Missing info: N/A. Facts only.\n\nTranscript:\n[TRANSCRIPT]'
        ),
        'use_case': 'Post-meeting automation for Slack or Notion',
        'model': 'claude-opus-4-5',
        'temperature': 0,
        'notes': 'Works best with verbatim transcripts, not paraphrased notes'
    }
}

# Use the template
def run_meeting_summary(transcript):
    template = prompt_library['meeting_summary']['template']
    return template.replace('[TRANSCRIPT]', transcript)

print(run_meeting_summary('Alice: We decided to ship v2 next Friday...')[:200])

Verificação de conhecimento

Analisando os cinco pares de comparação desta lição, qual mudança isolada melhorou de modo mais consistente a qualidade das instruções nos cinco exemplos?

Vago versus específico — Recapitulação

Os cinco pares de comparação revelam um padrão consistente no que torna eficazes as reformulações de instruções:

  • Estrutura da saída é a melhoria de maior ROI — defina-a sempre
  • Contagem de palavras/itens elimina completamente a negociação sobre o tamanho
  • Descrição do público-alvo ajusta automaticamente o vocabulário e a profundidade
  • Regras de exclusão evitam conteúdo genérico previsível
  • Especificidade parcial ainda deixa lacunas — cada dimensão não especificada é uma suposição
  • Bibliotecas de instruções registram modelos vencedores para reutilização recorrente
Grátis para começar

Aprenda AI Prompt Engineering com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
53
Aulas
199

Perguntas Frequentes

A aula “Comparando solicitações vagas e específicas” é grátis?

Sim — o texto completo de “Comparando solicitações vagas e específicas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Prompt Engineering, atualize para CoddyKit PRO. O curso de AI Prompt Engineering inclui 4 aulas no total.

O que vou aprender em “Comparando solicitações vagas e específicas”?

Exemplos lado a lado que mostram a grande diferença que a especificidade faz. Você pratica AI Prompt Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Prompt Engineering?

Nenhuma experiência prévia é necessária. AI Prompt Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Comparando solicitações vagas e específicas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Prompt Engineering?

Sim. Cada aula de AI Prompt Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que a especificidade é importante
  2. Removendo ambiguidades das solicitações
  3. Adicionando detalhes concretos
  4. Comparando solicitações vagas e específicas
← Voltar para AI Prompt Engineering