Colocando a IA no Comando da Triagem de Issues do GitHub

Gerenciar um repositório no GitHub é difícil. Novas issues costumam chegar com títulos vagos ou sem passos para reprodução. Você passa o dia rotulando, verificando duplicatas e pedindo mais detalhes. Esse trabalho consome o tempo que você gostaria de passar programando.

Uma pesquisa de 2024 mostrou que 60% dos mantenedores de código aberto já pensaram em desistir. Gerenciar issues é um fardo pesado.

Eu construí um bot para lidar com a primeira análise. Ele roda no GitHub Actions e utiliza um modelo de linguagem. Ele realiza estas tarefas:

  • Aplica labels com base nas suas regras.
  • Sinaliza possíveis duplicatas.
  • Solicita detalhes ausentes em descrições superficiais.

O bot é um agente, não um script rígido. Eu forneço ao modelo um conjunto de ferramentas. Ele decide quais ferramentas usar e em qual ordem. Uma issue clara pode precisar de uma ferramenta. Uma issue bagunçada pode precisar de três.

A primeira versão era muito "tagarela". Ela postava comentários em todas as issues. Isso criava ruído. O ruído faz com que as pessoas ignorem os bots.

Eu corrigi isso com uma única frase no system prompt. Dei ao modelo permissão para não fazer nada. Eu disse a ele que o silêncio é, muitas vezes, a melhor resposta. Isso mudou o comportamento dele mais do que qualquer alteração no código.

Eu usei LiteLLM para que o bot funcione com Claude, GPT ou Gemini. O bot depende de function calling para agir nas issues.

Testes no mundo real revelaram três desafios principais:

  • A segurança do GitHub impede que bots vejam segredos em pull requests.
  • Prompt injection é um risco quando você fornece textos não confiáveis a um modelo.
  • Permissões e erros de API podem ser confusos de depurar.

Também criei uma regra para o bot: ele apenas verifica riscos de segurança. Ele não avalia a qualidade do código. Um bot julgando o design afasta os contribuidores. Deixe essas decisões para os humanos.

Se a burocracia das issues te desgasta, esta configuração pode ajudar. Ela remove o trabalho repetitivo e deixa as decisões reais para você.

Fonte: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085

Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi