← Últimos artigos
🤖 AI

SWE-Doctor: Guiding Software Engineering Agents with Runtime Diagnosis from Multi-Faceted Bug Reproduction Tests

O SWE-Doctor é um novo agente de engenharia de software que melhora a geração de patches ao utilizar diagnósticos de tempo de execução derivados de testes de reprodução de bugs multifacetados para superar as limitações de usar diretamente esses testes como alvos de geração, alcançando, assim, taxas de resolução de estado da arte nos benchmarks SWE-bench.

Autores originais: Yaoqi Guo, Yang Liu, Jie M. Zhang, Yun Ma, Yiling Lou, Zhenpeng Chen

Publicado 2026-07-02
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Yaoqi Guo, Yang Liu, Jie M. Zhang, Yun Ma, Yiling Lou, Zhenpeng Chen

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você tem um assistente robô muito inteligente, mas um pouco literal demais (um agente de IA), cujo trabalho é consertar códigos quebrados em um programa de software. Você dá a ele uma reclamação de um usuário: "Este botão não funciona quando eu digito caracteres chineses". O objetivo do robô é escrever um "patch" (uma correção de código) para resolver o problema.

Normalmente, esses robôs tentam consertar o código tentando adivinhar, verificando se o teste passa e tentando novamente. Mas este artigo apresenta um novo robô mais inteligente chamado SWE-Doctor.

Veja como o SWE-Doctor funciona, explicado através de analogias simples:

O Problema: A Armadilha do "Teste Único"

Os pesquisadores primeiro tentaram uma ideia comum: "Vamos dar ao robô um teste que prove que o erro existe e dizer para ele consertar o código até que o teste fique verde (passe)".

Eles descobriram que isso não funcionava bem por dois motivos:

  1. O Problema do "Conserto Parcial" (Falha-para-Passar): Imagine que um carro tem dois faróis quebrados. Você dá ao mecânico um teste que verifica apenas o farol esquerdo. O mecânico conserta o esquerdo, o teste fica verde e ele para. Mas o farol direito ainda está quebrado! O robô consertou apenas parte do problema porque estava olhando apenas para um teste específico.
  2. O Problema da "Pista Enganosa" (Falha-para-Falha): Às vezes, o robô cria um teste que está quebrado de uma forma estranha que não corresponde ao problema real. Se o robô tentar consertar o código apenas para fazer com que aquele teste específico quebrado passe, ele pode quebrar o carro ainda mais ou consertar a coisa errada inteiramente. É como tentar consertar um pneu furado ouvindo um rádio que está tocando estática; o ruído (a falha do teste) não diz onde está o problema real.

A Solução: SWE-Doctor

O SWE-Doctor muda o jogo. Em vez de apenas dizer "Faça este teste passar", ele age como um detetive e um médico.

Passo 1: O Exame Multifacetado (Geração de BRT Multifacetada)

Em vez de escrever apenas um teste, o SWE-Doctor divide a reclamação do usuário em diferentes "facetas" ou ângulos.

  • Analogia: Se um paciente diz "Minha barriga dói", um médico ruim pode apenas verificar se ele consegue comer uma maçã. Um bom médico verifica se ele consegue comer uma maçã, se consegue beber água e se consegue caminhar.
  • O SWE-Doctor cria vários testes diferentes para verificar cada parte da reclamação. Isso garante que o robô não pare após consertar apenas uma pequena parte do problema.

Passo 2: O Relatório de Autópsia (Diagnóstico de Tempo de Execução)

Esta é a parte mais importante. Quando os testes rodam e falham, o SWE-Doctor não olha apenas para o sinal de "FALHA". Ele coloca o código sob um microscópio (um depurador/debugger) para ver exatamente o que aconteceu dentro da máquina enquanto ela falhava.

  • Analogia: Imagine que um carro quebra. Um mecânico simples olha para a luz do painel e adivinha. O SWE-Doctor abre o capô, observa o motor enquanto ele engasga, verifica a pressão do óleo e ouve o som específico da engrenagem rangendo.
  • Ele escreve um "relatório de diagnóstico" que diz: "O erro aconteceu neste arquivo específico, neste exato momento, porque este valor estava incorreto". Ele transforma a "FALHA" confusa em um mapa claro de onde o problema está.

Passo 3: A Cirurgia Guiada (Geração de Patch)

Finalmente, o SWE-Doctor entrega ao robô os resultados do "Exame Multifacetado" e o "Relatório de Autópsia".

  • Analogia: Em vez de dizer ao robô "Conserte o carro", o médico diz: "Aqui está uma lista de todas as coisas que precisam funcionar (o exame), e aqui está um mapa mostrando exatamente qual engrenagem está rangendo (o diagnóstico). Por favor, conserte a engrenagem, mas certifique-se de não quebrar as outras partes que verificamos".
  • Antes de enviar a correção, o SWE-Doctor faz uma verificação final: "Você consertou todas as coisas da lista ou apenas a que era mais fácil?". Isso evita o problema do "Conserto Parcial".

Os Resultados

Os pesquisadores testaram o SWE-Doctor em milhares de bugs de software do mundo real (usando um benchmark chamado SWE-bench).

  • Ele funciona melhor: O SWE-Doctor consertou significativamente mais bugs do que os robôs anteriores mais avançados (cerca de 8% a 9% a mais nos problemas mais difíceis).
  • Ele encontra soluções únicas: Ele resolveu muitos problemas que os outros robôs não conseguiram resolver de forma alguma.
  • Não é apenas para Python: Eles até o testaram em Go (outra linguagem de programação) e ele funcionou lá também, provando que o método do "médico" não está preso a apenas um tipo de código.

Em resumo: O SWE-Doctor impede que a IA tente adivinhar cegamente para fazer um único teste passar. Em vez disso, ele age como um médico minucioso que realiza múltiplos exames, examina os sintomas internos da falha e usa esse entendimento profundo para realizar um reparo completo e preciso.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →