Debugar com IA: como descrever um bug para a IA resolver de verdade

Rocketseat
Conheça o Rocketseat Para Empresas
Oferecemos soluções personalizadas para empresas de todos os portes.
Você já mandou um prompt para o ChatGPT, Claude ou até pro Gemini sobre um bug e recebeu uma resposta genérica que não resolve nada? Ou pior, uma solução que não se aplica ao seu caso específico?
O problema não é a IA. É a forma como você comunicou o problema. Assim como um bom bug report para um colega de trabalho precisa ser claro e contextualizado, descrever um bug para uma IA exige uma estrutura específica. Quando você aprende essa habilidade, os resultados mudam drasticamente.
Neste artigo, você vai entender o framework exato que separa um prompt com respostas inúteis de um prompt que resolve o bug na primeira tentativa.
Por que a maioria dos prompts sobre bugs falha
Quando você digita no ChatGPT "meu código está dando erro", a IA não tem contexto nenhum. Ela não sabe se você está usando React, Laravel ou Python puro, qual é a versão das dependências, ou qual exatamente é o comportamento inesperado.
A IA trabalha com base em padrões estatísticos. Sem contexto suficiente, ela fornece a resposta mais comum e genérica possível. É como descrever um sintoma ao médico dizendo "dói" sem especificar onde, há quanto tempo ou em que circunstâncias.
Prompts vagos geram respostas vagas. Prompts específicos geram soluções precisas.
O framework de 4 pilares para descrever bugs
Existem quatro elementos que toda descrição de bug deve incluir, nesta ordem:
1. Stack técnico
Linguagem, framework, versão e dependências relevantes. Sem essas informações, a IA pode sugerir soluções incompatíveis com seu ambiente.
2. Stack trace ou logs
A saída de erro real, com números de linha sempre que possível. Copie e cole a mensagem de erro exata, não resuma.
3. Comportamento esperado vs. real
O que deveria acontecer versus o que de fato acontece. Seja específico: "esperado 2 usuários, recebido 3" é muito mais útil que "não está funcionando".
4. Passos para reproduzir
Como alguém (ou a própria IA) pode recriar o problema do zero. Inclua o código mínimo necessário para demonstrar o bug.
Sem esses quatro pilares, você está pedindo à IA que adivinhe. Com eles, você fornece tudo o que ela precisa para diagnosticar o problema com precisão.
Exemplo prático: prompt ruim vs. prompt bom
Prompt ruim
Olá, meu array não está filtrando certo. Como faço para corrigir?
Por que falha: não há contexto algum. A IA não sabe qual linguagem, qual array, qual tipo de filtro ou qual é o resultado esperado. A resposta será genérica e provavelmente não vai resolver seu problema específico.
Prompt bom
Estou usando JavaScript puro (Node.js 18). Tenho um array de objetos de usuários e estou tentando filtrar apenas os ativos com.filter(). O problema é que o método está retornando 3 usuários quando deveria retornar 2. Aqui está o código:
const users = [ { id: 1, name: 'Ana', active: true }, { id: 2, name: 'Bruno', active: false }, { id: 3, name: 'Carlos', active: true } ]; const activeUsers = users.filter(user => user.active); console.log(activeUsers); // Resultado atual: [{ id: 1, ... }, { id: 2, ... }, { id: 3, ... }] // Resultado esperado: [{ id: 1, ... }, { id: 3, ... }]
A estrutura do objeto é a que mostrei acima. Estou rodando isso em um script Node.js simples. O que está acontecendo?"
Por que funciona: o stack técnico está claro (JavaScript, Node.js 18), o código é reproduzível, o comportamento esperado versus o real está documentado e o contexto de execução foi informado. A IA tem informações suficientes para diagnosticar o problema com precisão.
Comparação de outputs reais
Quando você envia o prompt ruim, a resposta típica é genérica:
Você pode usar.filter()para filtrar arrays. Aqui está um exemplo básico:array.filter(item => item.active).
Quando você envia o prompt bom, a resposta é precisa:
Olhando para seu código, o.filter()está correto sintaticamente. O problema é que todos os três usuários estão retornando. Verificando sua lógica, o valor deactivepode estar sendo interpretado como a string'false'em vez de booleano. Testeconsole.log(typeof users[1].active)para confirmar. Se for string, useusers.filter(user => user.active === true)ou garanta queactiveseja sempre booleano na origem dos dados.
A diferença é expressiva porque a IA tem contexto real para trabalhar. Uma resposta genérica não ajuda ninguém. Uma resposta específica resolve o problema na primeira tentativa.
Dicas para respostas ainda melhores
- Inclua mensagens de erro exatas: copie e cole o stack trace completo, não resuma ou parafraseie.
- Especifique versões de dependências: a IA responde de forma diferente para React 18 e React 19, por exemplo.
- Mostre tentativas anteriores: "tentei usar
.find()em vez de.filter(), mas também não funcionou" ajuda a IA a descartar soluções óbvias.
- Adicione contexto de negócio quando relevante: "preciso filtrar usuários ativos para exibir em um dashboard em tempo real" pode mudar a abordagem recomendada.
Quanto mais contexto você fornecer, mais a IA consegue raciocinar junto com você sobre o problema. Contexto é a moeda de troca com ferramentas de IA.
Recursos para aprofundar
- Documentação oficial do MDN sobre Array.filter(): referência completa de métodos de array em JavaScript.
- Guia da Mozilla sobre comunicação de bugs: boas práticas para escrever bug reports claros e úteis.
- Guia de prompt engineering da OpenAI: documentação oficial sobre como estruturar prompts de forma eficiente.
Quer dominar Engenharia de Prompt?
A habilidade de comunicar problemas com clareza vale mais do que conhecer todas as ferramentas de IA disponíveis. Desenvolva essa competência e qualquer ferramenta vai trabalhar melhor para você.
Acesse a Masterclass de Engenharia de Prompt da Rocketseat e aprenda estratégias avançadas para extrair o máximo das IAs generativas.
Conheça o Rocketseat Para Empresas
Oferecemos soluções personalizadas para empresas de todos os portes.
Artigos_
Explore conteúdos relacionados
Descubra mais artigos que complementam seu aprendizado e expandem seu conhecimento.
NewsletterReceba conteúdos inéditos e novidades gratuitamente
.png&w=640&q=75)