Powierzenie segregacji zgłoszeń na GitHubie sztucznej inteligencji
Zarządzanie repozytorium na GitHubie jest trudne. Nowe zgłoszenia często trafiają z niejasnymi tytułami lub bez kroków do ich odtworzenia. Cały dzień spędzasz na nadawaniu etykiet, sprawdzaniu duplikatów i proszeniu o więcej szczegółów. Ta praca pochłania czas, który wolałbyś poświęcić na programowanie.
Badanie z 2024 roku wykazało, że 60% opiekunów projektów open-source rozważało rezygnację. Zarządzanie zgłoszeniami to ogromny ciężar.
Zbudowałem bota, który zajmuje się wstępną weryfikacją. Działa on w ramach GitHub Actions i wykorzystuje model językowy. Wykonuje następujące zadania:
- Nadaje etykiety zgodnie z Twoimi regułami.
- Wskazuje potencjalne duplikaty.
- Prosi o brakujące szczegóły w mało treściwych opisach.
Bot jest agentem, a nie sztywnym skryptem. Przekazuję modelowi zestaw narzędzi. On sam decyduje, których narzędzi użyć i w jakiej kolejności. Czyste zgłoszenie może wymagać jednego narzędzia. Niechlujne zgłoszenie może wymagać trzech.
Pierwsza wersja była zbyt gadatliwa. Bot dodawał komentarze do każdego zgłoszenia. Powodowało to szum informacyjny. Szum sprawia, że ludzie ignorują boty.
Naprawiłem to jednym zdaniem w prompcie systemowym. Dałem modelowi pozwolenie na niepodejmowanie żadnych działań. Powiedziałem mu, że milczenie jest często najlepszą odpowiedzią. To zmieniło jego zachowanie bardziej niż jakakolwiek zmiana w kodzie.
Użyłem LiteLLM, dzięki czemu bot współpracuje z Claude, GPT lub Gemini. Bot polega na function calling, aby działać na zgłoszeniach.
Testy w rzeczywistych warunkach ujawniły trzy główne wyzwania:
- Zabezpieczenia GitHub uniemożliwiają botom dostęp do sekretów w pull requestach.
- Prompt injection stanowi ryzyko, gdy do modelu trafia niezweryfikowany tekst.
- Uprawnienia i błędy API mogą być trudne do zdebugowania.
Wprowadziłem też zasadę dla bota: sprawdza on wyłącznie ryzyka związane z bezpieczeństwem. Nie ocenia jakości kodu. Bot oceniający design zniechęca kontrybutorów. Te decyzje zostaw ludziom.
Jeśli biurokracja związana ze zgłoszeniami Cię wykańcza, to rozwiązanie może pomóc. Przejmuje ono powtarzalną pracę, zostawiając Ci podejmowanie kluczowych decyzji.
Źródło: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085
Opcjonalna społeczność edukacyjna: https://t.me/GyaanSetuAi
