AI एजेंट्स और ब्रांच स्ट्रैटेजी: Git के साथ सुरक्षित ऑटोमेशन
AI एजेंट्स खराब नहीं हैं, लेकिन वे अप्रत्याशित हैं।
हाल ही में एक GitHub इश्यू में देखा गया कि एक एजेंट ने मेन ब्रांच (main branch) में कमिट करने से बचने के स्पष्ट निर्देशों को नजरअंदाज कर दिया। उसने नियमों को पढ़ा, उनसे सहमति जताई, और फिर भी मेन में पुश कर दिया।
यदि आपका सुरक्षा मॉडल (safety model) एजेंट को यह कहने पर निर्भर है कि "ऐसा न करें," तो आपके पास सुरक्षा मॉडल नहीं है। आपके पास केवल उम्मीद है।
आप सिस्टम प्रॉम्प्ट (system prompt) से ज्यादा जोर से चिल्लाकर उसे नहीं रोक सकते। इसके बजाय, आपको एक ऐसा सिस्टम बनाना चाहिए जहाँ एजेंट भौतिक रूप से गलत काम न कर सके।
एक सुरक्षित ऑटोमेशन स्ट्रैटेजी सेट करने का तरीका यहाँ दिया गया है:
आइसोलेशन के लिए Git Worktrees का उपयोग करें एजेंटों को अपनी मुख्य डायरेक्टरी में काम न करने दें। प्रत्येक एजेंट को उसकी अपनी डायरेक्टरी और ब्रांच देने के लिए
git worktree addका उपयोग करें। यदि मेन ब्रांच उसके वर्कस्पेस में चेक आउट (checked out) ही नहीं है, तो एजेंट मेन में कमिट नहीं कर सकता।एक सख्त ब्रांच नेमिंग कन्वेंशन का उपयोग करें एजेंट कई शाखाएं (branches) बनाते हैं। यदि आप उन्हें सही ढंग से नाम नहीं देते हैं, तो आप उनका ट्रैक खो देंगे। तीन-भाग वाले प्रीफिक्स का उपयोग करें: • agent/feat/checkout-coupon-stacking • agent/fix/flaky-payment-test • agent/chore/bump-eslint इससे आप ऑटोमेटेड ब्रांचेस को आसानी से फ़िल्टर और साफ़ कर सकते हैं।
मर्ज के समय स्क्वैश (Squash) करें एजेंट अव्यवस्थित हो सकते हैं। वे बहुत बार कमिट कर सकते हैं या एक विशाल, अपठनीय कमिट बना सकते हैं। उनकी कमिट हाइजीन (commit hygiene) की चिंता न करें। जब आप उनके PR को मर्ज करें, तो squash-merging का उपयोग करें। इससे एजेंट को अपनी ब्रांच को स्क्रैचपैड के रूप में उपयोग करने की अनुमति मिलती है और आपका मेन इतिहास (main history) भी साफ रहता है।
लेयर्ड डिफेंस (layered defense) लागू करें केवल एक सिंगल गार्डरेल (guardrail) पर भरोसा न करें।
- प्रॉम्प्ट निर्देश: रक्षा की पहली पंक्ति।
- लोकल प्री-कमिट हुक्स (Local pre-commit hooks): प्रोटेक्टेड ब्रांचेस में आकस्मिक कमिट को रोकता है।
- सर्वर-साइड ब्रांच प्रोटेक्शन: सबसे महत्वपूर्ण लेयर। अपने रिमोट रिपॉजिटरी पर पुल रिक्वेस्ट (pull request) अनिवार्य करें। इससे एजेंट के लिए मानवीय अनुमोदन (human approval) के बिना मेन में पुश करना असंभव हो जाता है।
लक्ष्य एजेंट को स्वायत्त रूप से (autonomously) काम करने देना है, जबकि इंसान केवल पुल रिक्वेस्ट के समय ही लूप में वापस आए।
हर एडिट की निगरानी (babysitting) करना बंद करें। एक ऐसा ढांचा बनाएं जहाँ एक लापरवाह एजेंट भी सुरक्षित परिणाम दे सके।
Source: https://dev.to/nazar_boyko/ai-agents-and-branch-strategy-safe-automation-with-git-57ja
Optional learning community: https://t.me/GyaanSetuAi