AI Prompt Engineering · Aula

Análise de causa raiz para solicitações

Isole se a falha está no contexto, na instrução, no formato ou na capacidade do modelo.

Aula 2 de 413 etapas

Análise de causa raiz para solicitações é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 2 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.

Por Que a Análise de Causa Raiz é Importante

Quando uma instrução falha, há várias causas possíveis. Alterar palavras aleatoriamente desperdiça tempo e pode corrigir o sintoma sem corrigir a causa raiz — levando à mesma falha em entradas ligeiramente diferentes.

Análise de causa raiz (RCA) é um processo sistemático para isolar o motivo específico pelo qual uma instrução falha, para que a correção resolva o problema real.

As Quatro Categorias de Causa Raiz

Cada falha de instrução remonta a uma de quatro causas raiz:

  1. Problema de contexto: o modelo não possui as informações necessárias para responder corretamente
  2. Ambiguidade da instrução: a instrução tem várias interpretações válidas, e o modelo escolheu a errada
  3. Conflito de formato: duas partes da instrução fornecem instruções de formatação contraditórias
  4. Limite de capacidade do modelo: a tarefa exige raciocínio ou conhecimento além do que este modelo consegue fazer de modo confiável

Causa Raiz 1: Problema de Contexto

Um problema de contexto ocorre quando o modelo responde incorretamente porque a instrução não fornece as informações necessárias. O modelo preenche a lacuna com dados de treinamento — que podem estar desatualizados, incorretos ou ser alucinados.

Teste: forneça as informações ausentes diretamente na instrução e veja se a resposta melhora. Se sim, a correção é adicionar contexto (por exemplo, por meio de recuperação com RAG).

# Failing prompt — no context
prompt_v1 = 'What is the current price of our Pro plan?'

# Context problem test: inject the information
prompt_v2 = '''
Our pricing (as of today):
- Free: $0/month
- Pro: $19/month
- Enterprise: $99/month

Question: What is the current price of our Pro plan?
'''
# If v2 succeeds and v1 fails -> root cause is context problem

Causa Raiz 2: Ambiguidade da Instrução

Ambiguidade da instrução ocorre quando a instrução pode ser razoavelmente interpretada de várias maneiras e o modelo escolhe a interpretação errada.

Exemplo: 'Resuma brevemente' — 'brevemente' significa uma frase, um parágrafo ou três itens com marcadores? O modelo tenta adivinhar. Teste: substitua a frase ambígua por uma especificação precisa e verifique se a falha é resolvida.

# Ambiguous
prompt_ambiguous = 'Summarize the following article briefly.'

# Precise — ambiguity removed
prompt_precise = (
    'Summarize the following article in exactly 2 sentences. '
    'Do not exceed 50 words. Output only the summary, nothing else.'
)

# Test: if precise version succeeds, root cause was ambiguity
# Fix: replace vague qualifiers with exact specifications

Causa Raiz 3: Conflito de Formato

Um conflito de formato ocorre quando duas partes da instrução fornecem instruções contraditórias. O modelo precisa escolher uma e ignorar a outra — geralmente escolhendo a instrução mais recente ou mais destacada.

Exemplo: a instrução do sistema diz 'responda em texto simples', e a mensagem do usuário diz 'use markdown'. O modelo pode seguir qualquer uma delas, de modo inconsistente.

# Format conflict example
system_prompt = 'You are a helpful assistant. Always respond in plain text without any formatting.'

user_message = 'List the top 5 benefits of exercise. Use markdown bullet points.'

# The model faces a conflict: plain text vs markdown.
# Detection: if output format is inconsistent across runs, look for conflicting instructions.

# Fix: ensure all format instructions agree. Move format to system prompt only.
system_prompt_fixed = (
    'You are a helpful assistant. '
    'Always respond using markdown bullet points for lists.'
)

Causa raiz 4: limitação de capacidade do modelo

Uma falha de limitação de capacidade ocorre quando a tarefa realmente excede o que o modelo consegue fazer de modo confiável. Isso é diferente das outras três causas — nenhuma alteração na instrução a corrigirá completamente.

Sinais: a taxa de falhas é alta mesmo com instruções claras e contexto completo. Correções: use um modelo mais potente, divida a tarefa em etapas mais simples ou adicione uma etapa de verificação.

# Capability limit test: try the same task on different models
models = ['gpt-4o-mini', 'gpt-4o', 'gpt-4o-2024-11-20']
results = {}

for model in models:
    resp = client.chat.completions.create(
        model=model,
        messages=[{'role': 'user', 'content': complex_reasoning_prompt}]
    )
    results[model] = evaluate(resp.choices[0].message.content)

# If accuracy improves with more capable models -> capability limit
for model, score in results.items():
    print(f'{model}: {score:.0%} accuracy')

O método de isolamento

Para identificar qual causa raiz está ativa, use o isolamento sistemático:

  1. Execute a instrução que falha e classifique o tipo de falha (resposta errada, formato etc.)
  2. Adicione informações → se resolver: problema de contexto
  3. Esclareça as instruções → se resolver: ambiguidade
  4. Faça uma auditoria em busca de contradições → se resolver: conflito de formato
  5. Atualize o modelo → se resolver: limitação de capacidade

Apenas uma correção deve ser necessária. Se forem necessárias várias correções, havia várias causas raiz.

def rca_test(base_prompt, test_input, expected_output):
    results = {}

    # Test 1: base (failing) prompt
    results['base'] = run_and_evaluate(base_prompt, test_input, expected_output)

    # Test 2: add context
    results['with_context'] = run_and_evaluate(
        base_prompt + '\nContext: ' + get_context(test_input),
        test_input, expected_output
    )

    # Test 3: clarify instructions
    results['clarified'] = run_and_evaluate(
        clarify(base_prompt), test_input, expected_output
    )

    for name, passed in results.items():
        print(f'{name}: {"PASS" if passed else "FAIL"}')

Eliminação versus confirmação

A RCA segue dois modos:

  • Eliminação: descartar as causas que são NOT responsáveis (teste cada hipótese e veja qual delas faz a saída NOT mudar)
  • Confirmação: identificar a causa que, quando corrigida, resolve consistentemente a falha em várias entradas de teste

A confirmação exige pelo menos 3 entradas de teste. Uma correção que funciona em uma entrada, mas não nas outras, não resolveu a causa raiz — pode ter resolvido apenas um sintoma.

def confirm_root_cause(fix_fn, test_cases, threshold=0.9):
    '''fix_fn: a function that takes a prompt and returns a fixed prompt'''
    passed = 0
    for case in test_cases:
        fixed_prompt = fix_fn(case['prompt'])
        result = run_and_evaluate(fixed_prompt, case['input'], case['expected'])
        if result:
            passed += 1

    pass_rate = passed / len(test_cases)
    print(f'Fix pass rate: {pass_rate:.0%}')
    if pass_rate >= threshold:
        print('Root cause CONFIRMED — fix is reliable.')
    else:
        print('Root cause NOT confirmed — failure has multiple causes.')

Documentando a causa raiz

Depois de identificar a causa raiz, documente-a no registro de alterações da instrução. Inclua:

  • Tipo de falha observado
  • Categoria da causa raiz
  • Hipótese testada
  • Evidência (qual teste foi aprovado depois da correção)
  • A alteração específica feita na instrução

Isso evita que futuros engenheiros investiguem novamente a mesma falha e permite reconhecer padrões entre diferentes instruções.

rca_record = {
    'prompt_id': 'summarize_v3',
    'failure_type': 'wrong_format',
    'root_cause': 'format_conflict',
    'hypothesis': 'System prompt said plain text, user message asked for markdown',
    'evidence': 'Removing markdown instruction from user message resolved failure on 8/8 test cases',
    'fix_applied': 'Moved all format instructions to system prompt; removed format instructions from user template',
    'fix_date': '2024-11-15'
}

Erro comum: corrigir a causa errada

O erro mais comum na RCA é corrigir o sintoma em vez da causa. Exemplo:

  • Sintoma: o modelo retorna JSON com um prefixo de texto adicional
  • Correção errada: adicionar pós-processamento para remover o texto da saída
  • Causa raiz real: não há instrução de formato no prompt + o modelo usa por padrão um estilo conversacional
  • Correção correta: adicionar a instrução explícita "Retorne apenas JSON válido. Nenhum outro texto."

As soluções improvisadas de pós-processamento acumulam dívida técnica. As correções da causa raiz são duradouras.

RCA para falhas intermitentes

Algumas falhas são intermitentes — a instrução funciona 80% das vezes, mas falha em 20%. Elas são mais difíceis de diagnosticar porque executar a instrução uma vez produz um resultado correto.

Abordagem: execute a instrução de 10 a 20 vezes com a mesma entrada. Se a taxa de falhas for diferente de zero, a instrução tem uma causa raiz probabilística — geralmente ambiguidade na instrução ou temperatura alta. Correção: torne a instrução mais específica ou reduza a temperatura.

def measure_failure_rate(prompt, test_input, expected, runs=20):
    failures = 0
    for _ in range(runs):
        resp = client.chat.completions.create(
            model='gpt-4o',
            messages=[{'role': 'user', 'content': prompt + '\n' + test_input}],
            temperature=0.7
        )
        if not evaluate(resp.choices[0].message.content, expected):
            failures += 1
    print(f'Failure rate: {failures}/{runs} = {failures/runs:.0%}')

Verificação de conhecimento

Uma instrução solicita uma resposta em JSON, mas ocasionalmente retorna JSON precedido por um prefixo conversacional como "Claro! Aqui está o JSON:". Depois de adicionar "Retorne apenas JSON válido. Nenhum outro texto.", a falha deixa de ocorrer. Qual era a causa raiz?

Recapitulação: análise de causa raiz

As quatro categorias de causas raiz para falhas de instruções:

  • Problema de contexto: o modelo não tem as informações necessárias — correção: adicione contexto via RAG ou injeção direta
  • Ambiguidade da instrução: instrução vaga com várias interpretações — correção: adicione precisão
  • Conflito de formato: instruções de formatação contraditórias — correção: consolide-as na instrução do sistema
  • Limitação de capacidade do modelo: a tarefa excede a capacidade do modelo — correção: atualize o modelo ou decomponha a tarefa

Use o isolamento sistemático para testar cada hipótese. Confirme a correção em vários casos de teste. Documente as descobertas. Próxima lição: depuração sistemática por busca binária.

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 “Análise de causa raiz para solicitações” é grátis?

Sim — o texto completo de “Análise de causa raiz para solicitações” é 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 “Análise de causa raiz para solicitações”?

Isole se a falha está no contexto, na instrução, no formato ou na capacidade do modelo. 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 2 de 4.

Quanto tempo leva a aula “Análise de causa raiz para solicitações”?

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. Diagnosticando resultados inesperados
  2. Análise de causa raiz para solicitações
  3. Abordagem sistemática de depuração
  4. Estratégias de registro e documentação
← Voltar para AI Prompt Engineering