Kuweka AI Ichukue Jukumu la Kupanga Matatizo (Issues) ya GitHub
Kusimamia repo ya GitHub ni kazi ngumu. Matatizo (issues) mapya mara nyingi huja na vichwa vya habari visivyoeleweka au bila hatua za kurejesha tatizo. Unatumia siku yako kuweka lebo, kuangalia kama kuna matatizo yanayojirudia, na kuomba maelezo zaidi. Kazi hii inakula muda ambao ungependa kuutumia kuandika kodi.
Utafiti wa mwaka 2024 ulionyesha kuwa 60% ya wasimamizi wa programu huru (open-source maintainers) wamefikiria kuacha kazi hiyo. Kusimamia matatizo ni mzigo mzito.
Nilitengeneza bot ya kushughulikia hatua ya kwanza. Inafanya kazi kupitia GitHub Actions na inatumia mfumo wa lugha (language model). Inatekeleza kazi hizi:
- Inaweka lebo kulingana na sheria zako.
- Inaashiria matatizo yanayoweza kuwa yanajirudia.
- Inaomba maelezo yaliyokosekana kwenye maelezo mafupi sana.
Bot hii ni wakala (agent), siyo skripti iliyofungwa. Ninampa mfumo seti ya zana. Yeye huamua ni zana zipi za kutumia na kwa mpangilio gani. Tatizo lililo wazi linaweza kuhitaji zana moja. Tatizo lililojaa vurugu linaweza kuhitaji tatu.
Toleo la kwanza lilikuwa na maneno mengi sana. Lilitoa maoni kwenye kila tatizo. Hii ilileta kelele (noise). Kelele hufanya watu wapuuze bot.
Nilikirekebisha hili kwa sentensi moja kwenye system prompt. Nilipa mfumo ruhusa ya kutofanya lolote. Nilimwambia kuwa ukimya mara nyingi ndio jibu bora zaidi. Hii ilibadilisha tabia yake zaidi kuliko mabadiliko yoyote ya kodi.
Nilitumia LiteLLM ili bot ifanye kazi na Claude, GPT, au Gemini. Bot inategemea function calling ili kuchukua hatua kwenye matatizo.
Majaribio ya ulimwengu halisi yalifichua changamoto kuu tatu:
- Usalama wa GitHub unazuia bot kuona siri (secrets) kwenye pull requests.
- Prompt injection ni hatari unapoingiza maandishi yasiyoaminika kwenye mfumo.
- Ruhusa na makosa ya API yanaweza kuwa magumu kutatua (debug).
Pia nilitengeneza sheria kwa ajili ya bot: inakagua tu hatari za usalama. Haipimi ubora wa kodi. Bot inayohukumu usanifu (design) huwafukuza watu wanaochangia (contributors). Acha maamuzi hayo kwa binadamu.
Ikiwa kazi ya karatasi za matatizo inakuchosha, mpangilio huu unaweza kusaidia. Unaondoa kazi zinazojirudia na kukuachia wewe maamuzi ya kweli.
Source: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085
Optional learning community: https://t.me/GyaanSetuAi
