GitHub Issue Triage ਦੀ ਜ਼ਿੰਮੇਵਾਰੀ AI ਨੂੰ ਸੌਂਪਣਾ
ਇੱਕ GitHub repo ਨੂੰ ਸੰਭਾਲਣਾ ਮੁਸ਼ਕਲ ਹੈ। ਨਵੇਂ issues ਅਕਸਰ ਅਸਪਸ਼ਟ titles ਜਾਂ reproduction ਦੇ ਕਦਮਾਂ ਤੋਂ ਬਿਨਾਂ ਆਉਂਦੇ ਹਨ। ਤੁਸੀਂ ਆਪਣਾ ਦਿਨ labels ਲਗਾਉਣ, duplicates ਦੀ ਜਾਂਚ ਕਰਨ ਅਤੇ ਹੋਰ ਵੇਰਵੇ ਮੰਗਣ ਵਿੱਚ ਬਿਤਾਉਂਦੇ ਹੋ। ਇਹ ਕੰਮ ਉਹ ਸਮਾਂ ਖਤਮ ਕਰ ਦਿੰਦਾ ਹੈ ਜੋ ਤੁਸੀਂ coding ਕਰਨ ਲਈ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ।
2024 ਦੇ ਇੱਕ ਸਰਵੇਖਣ ਨੇ ਦਿਖਾਇਆ ਹੈ ਕਿ 60% open-source maintainers ਨੇ ਕੰਮ ਛੱਡਣ ਬਾਰੇ ਸੋਚਿਆ ਹੈ। Issues ਨੂੰ ਸੰਭਾਲਣਾ ਇੱਕ ਭਾਰੀ ਬੋਝ ਹੈ।
ਮੈਂ ਪਹਿਲੇ ਪੜਾਅ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਇੱਕ bot ਬਣਾਇਆ ਹੈ। ਇਹ GitHub Actions ਵਿੱਚ ਚੱਲਦਾ ਹੈ ਅਤੇ ਇੱਕ language model ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਇਹਨਾਂ ਕੰਮਾਂ ਨੂੰ ਕਰਦਾ ਹੈ:
- ਤੁਹਾਡੇ ਨਿਯਮਾਂ ਦੇ ਅਧਾਰ 'ਤੇ labels ਲਗਾਉਂਦਾ ਹੈ।
- ਸੰਭਾਵਿਤ duplicates ਦੀ ਨਿਸ਼ਾਨਦੇਹੀ ਕਰਦਾ ਹੈ।
- ਘੱਟ ਵੇਰਵਿਆਂ ਵਾਲੀਆਂ descriptions ਵਿੱਚ ਗੁੰਮ ਹੋਏ ਵੇਰਵੇ ਮੰਗਦਾ ਹੈ।
ਇਹ bot ਇੱਕ agent ਹੈ, ਕੋਈ ਸਖ਼ਤ script ਨਹੀਂ। ਮੈਂ model ਨੂੰ tools ਦਾ ਇੱਕ ਸਮੂਹ ਦਿੰਦਾ ਹਾਂ। ਇਹ ਫੈਸਲਾ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜੇ tools ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ ਅਤੇ ਕਿਸ ਕ੍ਰਮ ਵਿੱਚ। ਇੱਕ ਸਾਫ਼ issue ਨੂੰ ਇੱਕ tool ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ। ਇੱਕ ਉਲਝੇ ਹੋਏ issue ਨੂੰ ਤਿੰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।
ਪਹਿਲਾ version ਬਹੁਤ ਜ਼ਿਆਦਾ ਗੱਲਾਂ ਕਰਨ ਵਾਲਾ ਸੀ। ਇਹ ਹਰ issue 'ਤੇ comments post ਕਰਦਾ ਸੀ। ਇਸ ਨਾਲ ਬੇਲੋੜੀ ਜਾਣਕਾਰੀ (noise) ਪੈਦਾ ਹੋ ਗਈ। ਰੌਲਾ-ਰੱਪਾ ਲੋਕਾਂ ਨੂੰ bots ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ।
ਮੈਂ system prompt ਵਿੱਚ ਇੱਕ ਵਾਕ ਰਾਹੀਂ ਇਸ ਨੂੰ ਠੀਕ ਕੀਤਾ। ਮੈਂ model ਨੂੰ ਕੁਝ ਨਾ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੱਤੀ। ਮੈਂ ਇਸਨੂੰ ਦੱਸਿਆ ਕਿ ਚੁੱਪ ਰਹਿਣਾ ਅਕਸਰ ਸਭ ਤੋਂ ਵਧੀਆ ਜਵਾਬ ਹੁੰਦਾ ਹੈ। ਇਸ ਨੇ ਕਿਸੇ ਵੀ code ਬਦਲਾਅ ਨਾਲੋਂ ਇਸਦੇ ਵਿਵਹਾਰ ਨੂੰ ਜ਼ਿਆਦਾ ਬਦਲ ਦਿੱਤਾ।
ਮੈਂ LiteLLM ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਤਾਂ ਜੋ bot Claude, GPT, ਜਾਂ Gemini ਨਾਲ ਕੰਮ ਕਰ ਸਕੇ। Bot issues 'ਤੇ ਕਾਰਵਾਈ ਕਰਨ ਲਈ function calling 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ।
ਅਸਲ ਦੁਨੀਆ ਦੀ ਟੈਸਟਿੰਗ ਤੋਂ ਤਿੰਨ ਮੁੱਖ ਚੁਣੌਤੀਆਂ ਸਾਹਮਣੇ ਆਈਆਂ:
- GitHub security bots ਨੂੰ pull requests ਵਿੱਚ secrets ਦੇਖਣ ਤੋਂ ਰੋਕਦੀ ਹੈ।
- ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ model ਵਿੱਚ ਅਭਰੋਸੇਯੋਗ (untrusted) text ਪਾਉਂਦੇ ਹੋ, ਤਾਂ prompt injection ਇੱਕ ਜੋਖਮ ਹੁੰਦਾ ਹੈ।
- Permissions ਅਤੇ API errors ਨੂੰ debug ਕਰਨਾ ਉਲਝਣ ਭਰਿਆ ਹੋ ਸਕਦਾ ਹੈ।
ਮੈਂ bot ਲਈ ਇੱਕ ਨਿਯਮ ਵੀ ਬਣਾਇਆ: ਇਹ ਸਿਰਫ਼ ਸੁਰੱਖਿਆ ਜੋਖਮਾਂ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ। ਇਹ code quality ਨੂੰ ਗ੍ਰੇਡ ਨਹੀਂ ਕਰਦਾ। ਡਿਜ਼ਾਈਨ ਦਾ ਫੈਸਲਾ ਕਰਨ ਵਾਲਾ bot contributors ਨੂੰ ਦੂਰ ਭਜਾ ਦਿੰਦਾ ਹੈ। ਉਹ ਫੈਸਲੇ ਇਨਸਾਨਾਂ 'ਤੇ ਛੱਡ ਦਿਓ।
ਜੇਕਰ issue ਦਾ ਕਾਗਜ਼ੀ ਕੰਮ ਤੁਹਾਨੂੰ ਥਕਾ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਇਹ setup ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ। ਇਹ ਵਾਰ-ਵਾਰ ਹੋਣ ਵਾਲੇ ਕੰਮ ਨੂੰ ਖਤਮ ਕਰ ਦਿੰਦਾ ਹੈ ਅਤੇ ਅਸਲ ਫੈਸਲੇ ਤੁਹਾਡੇ ਲਈ ਛੱਡ ਦਿੰਦਾ ਹੈ।
Source: https://dev.to/jescalada/putting-an-ai-agent-in-charge-of-github-issue-triage-3085
Optional learning community: https://t.me/GyaanSetuAi
