Phoenix: Safe GitHub Issue Resolution via Multi-Agent LLMs
O Phoenix é um sistema de LLM multiagente que resolve com segurança problemas do GitHub, desde a triagem até a criação de pull requests, empregando sete controles de segurança em camadas e uma estratégia de avaliação consciente da linha de base, alcançando uma taxa de resolução oracle de 75% em um recorte curado do SWE-bench Lite enquanto mantém 100% de preservação de correção em problemas do mundo real.
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 uma biblioteca imensa e movimentada chamada GitHub, onde milhões de pessoas deixam bilhetes adesivos nos livros pedindo correções, novos recursos ou apontando erros de digitação. Esses bilhetes são chamados de "issues" (problemas/tarefas). Normalmente, um bibliotecário humano precisa ler o bilhete, encontrar a página exata no livro, descobrir o que está errado, reescrever o texto e depois pedir a um bibliotecário sênior para verificar antes que ele volte à prateleira. Isso é lento e cansativo.
Phoenix é uma nova equipe de robôs de IA projetados para fazer este trabalho, mas com uma regra muito estrita: Não causar danos.
Veja como o Phoenix funciona, dividido em conceitos simples:
1. A Equipe de Especialistas (Os Seis Agentes)
Em vez de um único robô superinteligente tentando fazer tudo de uma vez (o que frequentemente leva a erros), o Phoenix utiliza uma equipe de seis trabalhadores especializados, como uma linha de montagem bem lubrificada:
- O Planejador (The Planner): Lê o bilhete adesivo e desenha um mapa. Ele decide quais páginas precisam de mudanças e como corrigi-las.
- O Reproductor (O Detetive): Antes de consertar qualquer coisa, este robô tenta recriar o problema. Ele diz: "Ok, se eu fizer X, o livro quebra?". Se ele puder provar que o livro está quebrado, ele prossegue. Se não, ele pula esta etapa para que a equipe não fique travada.
- O Programador (The Coder): O escritor. Ele pega o mapa do Planejador e realmente reescreve o texto nas páginas.
- O Testador (The Tester): O inspetor de qualidade. Ele passa o livro por uma máquina para ver se o novo texto causa novos erros.
- O Analista de Falhas (The Failure Analyst): O médico. Se o Testador encontrar um novo erro, este robô diagnostica por que isso aconteceu e diz ao Programador como corrigir. Eles têm duas tentativas para consertar; se falharem duas vezes, param e pedem ajuda humana.
- O Agente de PR (The PR Agent): O mensageiro. Assim que o conserto está pronto, ele embala tudo e entrega a um bibliotecário humano para aprovação final.
2. A "Rede de Segurança" (Sete Camadas de Proteção)
O artigo enfatiza que a IA pode ser perigosa se simplesmente começar a reescrever livros aleatoriamente. O Phoenix possui sete "guardiões de segurança" para evitar desastres:
- A Cerca: Ele não permite que os robôs escrevam fora das paredes da biblioteca (evitando que deletem arquivos que não deveriam tocar).
- O Crachá de Identificação: Verifica se os robôs possuem chaves (tokens) válidas para que não sejam bloqueados no meio do trabalho.
- A Equipe de Limpeza: Remove partes bagunçadas e confusas dos bilhetes adesivos antes de mostrá-los aos robôs, para que eles não fiquem confusos com formatações ruins.
- A Zona de "Proibido Entrar": Recusa-se a tocar nos arquivos de segurança da biblioteca (arquivos de workflow), pois mexer neles poderia trancar todos do lado de fora.
- O Botão de Parada: Se os robôs ficarem presos em um loop ou continuarem cometendo o mesmo erro, o sistema puxa a tomada.
- O Trabalhador Solo: Apenas um livro é trabalhado por vez para evitar que os robôs tropecem uns nos outros.
- A Chave Atualizada: Atualiza automaticamente seus crachás de identificação antes que expirem, para que o trabalho nunca pare devido a um tempo limite (timeout).
3. O Teste de "Antes e Depois" (Consciência de Linha de Base)
Este é o truque mais inteligente do Phoenix. Às vezes, um livro da biblioteca já está quebrado antes de o robô tocá-lo.
- Modo Antigo: Um robô corrige um erro de digitação, mas o livro ainda falha em um teste porque já estava quebrado anteriormente. O robô é culpado pela falha.
- Modo Phoenix: Antes de o robô fazer qualquer alteração, ele tira uma "foto" (snapshot) do estado atual do livro. Após o robô fazer as mudanças, ele compara o novo estado com a foto original.
- Se o livro já estava quebrado e continua quebrado (mas nenhuma nova coisa quebrou), o Phoenix diz: "Sucesso! Não pioramos a situação."
- Se o livro estava funcionando e agora está quebrado, o Phoenix diz: "Pare! Introduzimos uma regressão."
4. O Que os Resultados Mostram
Os pesquisadores testaram o Phoenix de duas maneiras:
- O Treino Prático (SWE-bench Lite): Deram ao Phoenix 24 problemas específicos e pré-definidos. O Phoenix resolveu 75% deles perfeitamente sem quebrar nada que já estava funcionando.
- O Teste do Mundo Real (42 Problemas Reais): Deixaram o Phoenix livre em 42 problemas reais de 14 projetos diferentes.
- Segurança: O Phoenix alcançou 100% de "Preservação de Correção". Isso significa que ele nunca quebrou um teste que estava passando anteriormente. Foi incrivelmente seguro.
- Taxa de Sucesso: No entanto, apenas cerca de metade dos consertos foram de fato o conserto correto. A outra metade foram "alucinações", onde o robô escreveu código no lugar errado (como escrever um manual de reparos na seção de ficção). O robô sabia como consertar, mas às vezes não conseguia encontrar onde estava o problema.
O Ponto Principal
O Phoenix é como um aprendiz de bibliotecário muito cauteloso e altamente treinado. Ele é excelente em não tornar as coisas piores e muito bom em seguir um processo rigoroso. No entanto, às vezes tem dificuldade em encontrar a localização exata de um problema se a descrição não corresponder perfeitamente aos nomes dos arquivos.
O artigo conclui que, para a IA ser útil no mundo real, a segurança deve vir antes da velocidade. O Phoenix prova que, ao usar uma equipe de agentes especializados e guardiões de segurança rigorosos, é possível automatizar correções de software sem quebrar o software acidentalmente. O principal ponto a ser corrigido é ajudar o robô "Planejador" a encontrar a página certa no livro com mais frequência.
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.