Putting AI in Charge of GitHub Issue Triage
ஒரு GitHub repo-வை நிர்வகிப்பது கடினமானது. புதிய issues பெரும்பாலும் தெளிவற்ற தலைப்புகளுடனோ அல்லது மீண்டும் உருவாக்கத் தேவையான வழிமுறைகளுடனோ (steps to reproduce) வருகின்றன. லேபிளிங் செய்வது, நகல்களை (duplicates) சரிபார்ப்பது மற்றும் கூடுதல் விவரங்களைக் கேட்பது என உங்கள் நாள் முழுவதும் செலவாகிறது. இந்த வேலை நீங்கள் கோடிங் செய்ய விரும்பும் நேரத்தை விழுங்கிவிடுகிறது.
2024 ஆம் ஆண்டு நடத்தப்பட்ட ஒரு ஆய்வின்படி, 60% open-source maintainers வேலையை விட்டு விலகுவதைப் பற்றி யோசித்துள்ளனர். Issues-ஐ நிர்வகிப்பது ஒரு பெரிய சுமையாகும்.
முதல் கட்டப் பணிகளைக் கையாள நான் ஒரு bot-ஐ உருவாக்கினேன். இது GitHub Actions-இல் இயங்குகிறது மற்றும் ஒரு language model-ஐப் பயன்படுத்துகிறது. இது பின்வரும் பணிகளைச் செய்கிறது:
- உங்கள் விதிகளின் அடிப்படையில் லேபிள்களை (labels) இடுகிறது.
- சாத்தியமான நகல்களை (duplicates) அடையாளம் காண்கிறது.
- தெளிவற்ற விளக்கங்களில் விடுபட்ட விவரங்களைக் கேட்கிறது.
இந்த bot ஒரு agent, இது ஒரு இறுக்கமான script அல்ல. நான் அந்த model-க்கு சில கருவிகளை (tools) வழங்குகிறேன். எந்தக் கருவிகளை எந்த வரிசையில் பயன்படுத்த வேண்டும் என்பதை அதுவே தீர்மானிக்கிறது. ஒரு தெளிவான issue-க்கு ஒரு கருவி தேவைப்படலாம். குழப்பமான issue-க்கு மூன்று கருவிகள் தேவைப்படலாம்.
இதன் முதல் பதிப்பு மிகவும் அதிகமாகப் பேசியது (too chatty). இது ஒவ்வொரு issue-விலும் கருத்துகளை (comments) பதிவிட்டது. இது தேவையற்ற இரைச்சலை (noise) உருவாக்கியது. இரைச்சல் இருந்தால் மக்கள் bot-களைப் புறக்கணிப்பார்கள்.
system prompt-இல் ஒரு வாக்கியத்தைச் சேர்ப்பதன் மூலம் இதைச் சரிசெய்தேன். எதையும் செய்யாமல் இருக்க அந்த model-க்கு நான் அனுமதி அளித்தேன். மௌனமே பெரும்பாலும் சிறந்த பதில் என்று நான் அதனிடம் கூறினேன். எந்தவொரு code மாற்றத்தையும் விட இது அதன் நடத்தையை மாற்றியது.
நான் LiteLLM-ஐப் பயன்படுத்தியதால், இந்த bot Claude, GPT அல்லது Gemini ஆகியவற்றுடன் இணைந்து செயல்படும். issues-களில் செயல்பட இந்த bot function calling-ஐ நம்பியுள்ளது.
நிஜ உலகச் சோதனைகள் மூன்று முக்கிய சவால்களை வெளிப்படுத்தின:
- GitHub security, pull requests-இல் உள்ள secrets-களை bot-கள் பார்ப்பதைத் தடுக்கிறது.
- நீங்கள் நம்பகத்தன்மையற்ற உரையை (untrusted text) ஒரு model-க்கு வழங்கும் போது, prompt injection ஒரு ஆபத்தாக உள்ளது.
- Permissions மற்றும் API பிழைகளை (errors) கண்டறிவது (debug) குழப்பமாக இருக்கலாம்.
நான் bot-க்கு ஒரு விதியையும் உருவாக்கினேன்: அது பாதுகாப்பு அபாயங்களை (security risks) மட்டுமே சரிபார்க்கும். அது code quality-ஐ மதிப்பிடாது. ஒரு bot வடிவமைப்பை (design) மதிப்பிடுவது பங்களிப்பாளர்களை (contributors) விலகிச் செல்லச் செய்யும். அத்தகைய முடிவுகளை மனிதர்களிடமே விட்டுவிடுங்கள்.
issue தொடர்பான ஆவணப் பணிகள் உங்களைச் சோர்வடையச் செய்தால், இந்த அமைப்பு உதவக்கூடும். இது மீண்டும் மீண்டும் செய்யப்படும் வேலைகளைப் போக்கிவிட்டு, உண்மையான முடிவுகளை உங்களிடமே விட்டுவிடுகிறது.
Source: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085
Optional learning community: https://t.me/GyaanSetuAi
