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
