← Últimos artigos
💬 NLP

Change2Task: From Repository Changes to Executable Coding Agent Tasks and Environments

O artigo apresenta o Change2Task, um sistema que converte automaticamente pull requests mesclados em tarefas de agentes de codificação verificadas e executáveis ao reconstruir estados históricos de repositórios e validá-los em bases de código modernas, aumentando significativamente o suprimento de dados de treinamento enquanto reduz os custos de configuração e melhora as taxas de recuperação de tarefas em comparação com as linhas de base existentes.

Autores originais: Haomin Qi, Xingliang Wang, Xuanqi Gao, Baihui Sang, Xin Zhang, Minghua Ma, Pengfei Gao, Yu Kang, Qingwei Lin, Saravan Rajmohan, Dongmei Zhang, Qi Zhang

Publicado 2026-07-31
📖 4 min de leitura☕ Leitura rápida

Autores originais: Haomin Qi, Xingliang Wang, Xuanqi Gao, Baihui Sang, Xin Zhang, Minghua Ma, Pengfei Gao, Yu Kang, Qingwei Lin, Saravan Rajmohan, Dongmei Zhang, Qi Zhang

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 um mundo onde os computadores estão aprendendo a ser engenheiros de software. Esses "agentes de codificação" são como aprendizes digitais que não apenas escrevem uma única linha de código e param; eles podem abrir um projeto, ler os arquivos, corrigir um erro, executar testes e tentar novamente se falharem. Mas aqui está o detalhe: para ficarem realmente bons nisso, esses aprendizes precisam praticar em problemas do mundo real. Eles precisam de uma biblioteca massiva de "exercícios" onde possam tentar consertar um recurso quebrado ou adicionar um novo e, então, receber uma nota clara de "aprovado" ou "reprovado".

O problema é que criar esses exercícios de prática é incrivelmente difícil e caro. Normalmente, para criar um teste, você precisa construir um ambiente de computador perfeito e isolado (como uma caixa de areia digital) para cada problema. Se você quiser 1.000 desafios de codificação diferentes, pode precisar construir 1.000 caixas de areia diferentes, o que consome enormes quantidades de espaço de armazenamento e tempo. É como tentar ensinar alguém a cozinhar construindo uma cozinha nova e totalmente equipada para cada receita que você quer que ela aprenda. É tanto trabalho que ficamos sem problemas de prática, e os agentes não conseguem obter o treinamento necessário para se tornarem especialistas.

É aqui que uma nova ideia chamada Change2Task entra. Pense nisso como uma máquina do tempo mágica para o código. Em vez de construir uma nova cozinha para cada receita, o Change2Task olha para o histórico de um projeto de software real — como um grande livro de registros de cada vez que um desenvolvedor humano corrigiu um erro ou adicionou um recurso no passado. Ele pega essas histórias antigas da vida real e pergunta: "Podemos recriar exatamente este mesmo desafio, mas na versão atual do software?"

O sistema funciona como um editor astuto. Ele encontra um pull request mesclado (que é apenas um termo sofisticado para uma alteração que já foi aceita e adicionada ao código) e tenta fazer a engenharia reversa dessa alteração. Ele pede ao computador para "desfazer" essa alteração para criar um estado de erro, e então define um objetivo para o agente de codificação consertá-lo novamente. Mas o truque de mágica é: em vez de começar do zero, ele faz isso em uma versão moderna e saudável do software que já está em execução. Se o software mudou muito desde a correção original, o Change2Task usa três estratégias diferentes para mapear a correção antiga no novo código:

  1. Reversão de Patch: Se o código não mudou muito, ele apenas inverte a correção antiga para trás.
  2. Mapeamento de Código: Se o código mudou de lugar, ele encontra a nova localização do código antigo e o substitui.
  3. Reconstrução por Agente: Se o código é totalmente diferente, ele usa um agente de IA inteligente para descobrir como recriar o problema no novo ambiente.

Os pesquisadores testaram isso em cinco tipos comuns de tarefas de codificação: corrigir erros, adicionar novos recursos, escrever novos testes, atualizar ferramentas antigas (APIs) e corrigir brechas de segurança. Eles começaram com 1.130 alterações do mundo real de projetos de software públicos. O sistema transformou com sucesso 900 delas em tarefas de prática funcionais e verificadas. Isso representa uma taxa de sucesso de cerca de 80%.

O que torna isso realmente emocionante é o quanto isso economiza. Ao reutilizar a mesma "cozinha" moderna (o ambiente do software) para múltiplos problemas de prática diferentes, eles reduziram o tempo necessário para configurar ambientes em 58,4% e cortaram o espaço de armazenamento necessário em 71,2%. Na verdade, eles conseguiram criar 29,2% mais tarefas verificadas do que um método anterior que apenas tentava copiar as correções antigas diretamente.

A equipe também verificou se essas tarefas recriadas eram justas. Eles pediram a diferentes agentes de codificação de IA para resolver os problemas tanto na versão histórica original quanto na nova versão moderna. Os resultados foram quase idênticos: os agentes obtiveram a mesma nota de "aprovado" ou "reprovado" 98% das vezes. Isso prova que as novas tarefas não são apenas palpites aleatórios; elas são recriações fiéis do trabalho de desenvolvedores reais.

Em resumo, o Change2Task não apenas encontra mais problemas de prática; ele encontra uma maneira de tornar os que já temos reutilizáveis e eficientes. Ele transforma o histórico do desenvolvimento de software em um recurso renovável para treinar a próxima geração de codificadores de IA, provando que não precisamos construir um novo mundo para cada lição — só precisamos saber como olhar para o antigo com novos olhos.

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 →