KI übernimmt die Triage von GitHub-Issues
Die Verwaltung eines GitHub-Repos ist schwierig. Neue Issues kommen oft mit vagen Titeln oder ohne Schritte zur Reproduktion an. Du verbringst deinen Tag damit, Labels zu vergeben, nach Duplikaten zu suchen und nach weiteren Details zu fragen. Diese Arbeit raubt dir die Zeit, die du eigentlich mit Programmieren verbringen möchtest.
Eine Umfrage aus dem Jahr 2024 ergab, dass 60 % der Open-Source-Maintainer darüber nachgedacht haben aufzuhören. Das Verwalten von Issues ist eine schwere Last.
Ich habe einen Bot gebaut, der die erste Sichtung übernimmt. Er läuft in GitHub Actions und nutzt ein Sprachmodell. Er führt folgende Aufgaben aus:
- Vergibt Labels basierend auf deinen Regeln.
- Markiert potenzielle Duplikate.
- Fragt nach fehlenden Details bei unzureichenden Beschreibungen.
Der Bot ist ein Agent, kein starres Skript. Ich gebe dem Modell einen Satz an Werkzeugen (Tools). Es entscheidet selbst, welche Tools es in welcher Reihenfolge einsetzt. Ein übersichtlicher Issue benötigt vielleicht ein Tool. Ein unordentlicher Issue benötigt vielleicht drei.
Die erste Version war zu gesprächig. Sie hinterließ bei jedem Issue einen Kommentar. Das erzeugte unnötigen Lärm (Noise). Lärm führt dazu, dass Menschen Bots ignorieren.
Ich habe das mit einem einzigen Satz im System-Prompt behoben. Ich habe dem Modell die Erlaubnis gegeben, auch nichts zu tun. Ich habe ihm gesagt, dass Schweigen oft die beste Antwort ist. Das hat sein Verhalten stärker verändert als jede Code-Änderung.
Ich habe LiteLLM verwendet, damit der Bot mit Claude, GPT oder Gemini funktioniert. Der Bot nutzt Function Calling, um bei Issues aktiv zu werden.
Tests unter realen Bedingungen zeigten drei Hauptherausforderungen:
- Die GitHub-Sicherheit verhindert, dass Bots Secrets in Pull Requests sehen können.
- Prompt Injection ist ein Risiko, wenn man einem Modell nicht vertrauenswürdige Texte einspeist.
- Berechtigungen und API-Fehler können die Fehlersuche erschweren.
Ich habe zudem eine Regel für den Bot festgelegt: Er prüft nur auf Sicherheitsrisiken. Er bewertet nicht die Codequalität. Ein Bot, der das Design beurteilt, vertreibt Mitwirkende (Contributors). Überlasse diese Entscheidungen den Menschen.
Wenn der Papierkram bei Issues dich erschöpft, kann dieses Setup helfen. Es nimmt die repetitive Arbeit ab und überlässt die eigentlichen Entscheidungen dir.
Source: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085
Optional learning community: https://t.me/GyaanSetuAi
