Poniendo a la IA a cargo de la clasificación de issues de GitHub
Gestionar un repositorio de GitHub es difícil. Los nuevos issues suelen llegar con títulos vagos o sin pasos para reproducirlos. Pasas el día etiquetando, buscando duplicados y pidiendo más detalles. Este trabajo consume el tiempo que preferirías dedicar a programar.
Una encuesta de 2024 mostró que el 60% de los mantenedores de código abierto han pensado en dejarlo. Gestionar issues es una carga pesada.
He creado un bot para encargarse del primer filtrado. Se ejecuta en GitHub Actions y utiliza un modelo de lenguaje. Realiza estas tareas:
- Aplica etiquetas basadas en tus reglas.
- Señala posibles duplicados.
- Solicita los detalles faltantes en descripciones insuficientes.
El bot es un agente, no un script rígido. Le doy al modelo un conjunto de herramientas. Él decide qué herramientas usar y en qué orden. Un issue bien estructurado puede necesitar una herramienta. Un issue desordenado puede necesitar tres.
La primera versión hablaba demasiado. Publicaba comentarios en cada issue. Esto generaba ruido. El ruido hace que la gente ignore a los bots.
Corregí esto con una sola frase en el system prompt. Le di al modelo permiso para no hacer nada. Le dije que, a menudo, el silencio es la mejor respuesta. Esto cambió su comportamiento más que cualquier cambio en el código.
Utilicé LiteLLM para que el bot funcione con Claude, GPT o Gemini. El bot se basa en function calling para actuar sobre los issues.
Las pruebas en el mundo real revelaron tres desafíos principales:
- La seguridad de GitHub impide que los bots vean secretos en los pull requests.
- La inyección de prompts (prompt injection) es un riesgo cuando se introduce texto no confiable en un modelo.
- Los errores de permisos y de la API pueden ser confusos de depurar.
También establecí una regla para el bot: solo comprueba riesgos de seguridad. No califica la calidad del código. Un bot que juzga el diseño ahuyenta a los colaboradores. Deja esas decisiones en manos de los humanos.
Si el papeleo de los issues te agota, esta configuración puede ayudar. Elimina el trabajo repetitivo y te deja las decisiones reales a ti.
Source: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085
Optional learning community: https://t.me/GyaanSetuAi
