EXPEREPAIR: Dual-Memory Enhanced LLM-based Repository-Level Program Repair
ExpeRepair é uma nova estrutura baseada em LLM que aproveita um sistema de dupla memória — composto por memória episódica para demonstrações concretas de reparo e memória semântica para insights abstratos — para compor dinamicamente prompts conscientes do contexto, alcançando desempenho de ponta em código aberto nos benchmarks SWE-Bench Lite e Verified ao reutilizar efetivamente o conhecimento histórico de reparos.
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ê é um mecânico mestre tentando consertar um motor complexo e vintage. No passado, toda vez que surgia um novo problema, você tinha que começar do zero: ler o manual, adivinhar o que estava errado, tentar um reparo e torcer para funcionar. Se falhasse, você apenas tentava novamente, esquecendo o que havia aprendido com o último erro.
ExpeRepair é como dar a esse mecânico um sistema de memória superpoderoso, dividido em duas partes, inspirado no funcionamento do cérebro humano. Em vez de começar do zero a cada vez, esse sistema ajuda a IA a "lembrar" reparos anteriores e aprender com eles, tornando-a muito melhor em corrigir bugs de software.
Veja como funciona, dividido em conceitos simples:
Os Dois Tipos de Memória
O artigo explica que a memória humana não é apenas um grande balde; ela possui duas partes distintas. O ExpeRepair copia esse design:
Memória Episódica (O "Álbum de Fotos"):
- O que é: Uma coleção de exemplos específicos e concretos. Pense como um álbum de recortes de reparos anteriores. Ele contém as fotos exatas de "antes e depois": a mensagem de erro específica, o código exato que estava quebrado e o patch específico que o corrigiu.
- Como ajuda: Quando um novo bug aparece, o sistema folheia esse álbum para encontrar um caso passado similar. "Ei, corrigimos um interruptor de luz quebrado similar na semana passada; vamos tentar o mesmo truque." Isso fornece uma receita concreta a seguir.
Memória Semântica (O "Livro de Regras"):
- O que é: A sabedoria abstrata ganha a partir de todos aqueles reparos anteriores. Não se trata de fotos específicas, mas de princípios gerais. Pense como uma lista de "Melhores Práticas" ou "Regras Práticas" escritas em linguagem simples.
- Como ajuda: Ensina à IA lições gerais, como "Ao corrigir problemas de segurança, sempre verifique casos de borda" ou "Se uma função lida com múltiplas entradas, certifique-se de corrigi-las todas, não apenas a mencionada." Isso ajuda a IA a se adaptar a novas situações que ela nunca viu antes.
Como Corrige Bugs (O Fluxo de Trabalho)
O sistema usa dois "agentes" (trabalhadores de IA) para realizar o reparo: um para escrever um script de teste (para provar que o bug existe) e outro para escrever a correção real.
- O Jeito Antigo: A IA recebe um relatório de bug, tenta adivinhar uma correção com base em seu treinamento geral e torce pelo melhor. Se falhar, tenta novamente com as mesmas instruções estáticas.
- O Jeito ExpeRepair:
- Olhar para Trás: Antes de tentar corrigir o novo bug, o sistema verifica seu Álbum de Fotos (Memória Episódica) por falhas e sucessos passados similares.
- Ler as Regras: Ele também verifica seu Livro de Regras (Memória Semântica) por conselhos de alto nível relevantes para esse tipo de problema.
- Instruções Dinâmicas: Em vez de usar um manual de instruções rígido e pré-escrito, o sistema cria um prompt personalizado e "dinâmico" para o trabalhador de IA. Diz: "Aqui está o novo bug. Aqui está um bug similar que corrigimos mês passado (do Álbum de Fotos). E lembre-se desta regra sobre lidar com casos de borda (do Livro de Regras)."
- Aprender e Atualizar: Assim que a correção é feita (ou mesmo se falhar), o sistema salva a experiência. Adiciona os detalhes específicos ao Álbum de Fotos e resume a lição aprendida no Livro de Regras para a próxima vez.
Os Resultados
Os pesquisadores testaram esse sistema em dois conjuntos famosos de bugs de software do mundo real (chamados SWE-Bench Lite e SWE-Bench Verified).
- A Pontuação: Usando um modelo de IA poderoso (Claude 4 Sonnet), o ExpeRepair corrigiu com sucesso 74,6% dos bugs no conjunto de testes mais difícil e 60,3% no conjunto mais leve.
- A Comparação: Foi o melhor desempenho entre todos os métodos de código aberto que testaram. Superou outras ferramentas de ponta como SWE-agent, Aider e AutoCodeRover.
- O Custo: Alcançou essas altas pontuações sem precisar de re-treinamento caro e demorado do modelo de IA. Apenas aprendeu "lendo" seu próprio trabalho passado.
Por Que Isso Importa
O artigo argumenta que as ferramentas atuais de reparo de IA são como alunos que fazem uma prova, recebem uma nota e imediatamente esquecem tudo antes da próxima prova. O ExpeRepair é como um aluno que mantém um guia de estudos, revisa seus erros e fica mais inteligente a cada problema que resolve.
Ao combinar exemplos específicos (Episódica) com sabedoria geral (Semântica), o sistema cria um ciclo de feedback onde a IA fica melhor em corrigir software quanto mais trabalha, mimetizando como desenvolvedores humanos realmente aprendem e melhoram ao longo do tempo.
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.