להעמיד בידי AI את מיון ה-Issues ב-GitHub

ניהול repo ב-GitHub הוא משימה קשה. Issues חדשים מגיעים לעיתים קרובות עם כותרות מעורפלות או ללא שלבים לשחזור. אתם מבלים את היום שלכם בתיוג, בדיקת כפילויות ובקשת פרטים נוספים. העבודה הזו גוזלת את הזמן שתרצו להקדיש לכתיבת קוד.

סקר משנת 2024 הראה כי 60% ממתחזקי הקוד הפתוח (open-source maintainers) חשבו על לפרוש. ניהול ה-issues הוא נטל כבד.

בניתי בוט שיטפל בשלב הסינון הראשוני. הוא רץ בתוך GitHub Actions ומשתמש במודל שפה. הוא מבצע את המשימות הבאות:

  • מחיל תגיות (labels) על בסיס הכללים שלכם.
  • מסמן כפילויות פוטנציאליות.
  • מבקש פרטים חסרים בתיאורים דלים.

הבוט הוא סוכן (agent), לא סקריפט נוקשה. אני נותן למודל סט של כלים. הוא מחליט אילו כלים להשתמש בהם ובאיזה סדר. issue מסודר עשוי להזדקק לכלי אחד. issue מבולגן עשוי להזדקק לשלושה.

הגרסה הראשונה הייתה "פטפטנית" מדי. היא פרסמה תגובות על כל issue. זה יצר רעש. רעש גורם לאנשים להתעלם מבוטים.

תיקנתי זאת באמצעות משפט אחד ב-system prompt. נתתי למודל רשות לא לעשות כלום. אמרתי לו ששתיקה היא לעיתים קרובות התשובה הטובה ביותר. זה שינה את ההתנהגות שלו יותר מכל שינוי בקוד.

השתמשתי ב-LiteLLM כדי שהבוט יעבוד עם Claude, GPT, או Gemini. הבוט מסתמך על function calling כדי לפעול על ה-issues.

בדיקות בעולם האמיתי חשפו שלושה אתגרים עיקריים:

  • אבטחת GitHub מונעת מבוטים לראות סודות (secrets) ב-pull requests.
  • Prompt injection הוא סיכון כאשר מזינים טקסט לא מהימן למודל.
  • הרשאות ושגיאות API יכולות להיות מבלבלות לניפוי שגיאות (debug).

יצרתי גם כלל עבור הבוט: הוא בודק רק סיכוני אבטחה. הוא לא מעריך את איכות הקוד. בוט ששופט עיצוב (design) מרחיק תורמים. השאירו את ההחלטות הללו לבני אדם.

אם הניירת של ה-issues מתישה אתכם, המערך הזה יכול לעזור. הוא מסיר את העבודה החזרתית ומשאיר לכם את ההחלטות האמיתיות.

מקור: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085

קהילת למידה אופציונלית: https://t.me/GyaanSetuAi