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.
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:
- Problema de contexto: o modelo não possui as informações necessárias para responder corretamente
- Ambiguidade da instrução: a instrução tem várias interpretações válidas, e o modelo escolheu a errada
- Conflito de formato: duas partes da instrução fornecem instruções de formatação contraditórias
- 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 problemCausa 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 specificationsCausa 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:
- Execute a instrução que falha e classifique o tipo de falha (resposta errada, formato etc.)
- Adicione informações → se resolver: problema de contexto
- Esclareça as instruções → se resolver: ambiguidade
- Faça uma auditoria em busca de contradições → se resolver: conflito de formato
- 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.
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
- Diagnosticando resultados inesperados
- Análise de causa raiz para solicitações
- Abordagem sistemática de depuração
- Estratégias de registro e documentação