जब आपका एजेंट गलत व्यवहार करता है, तो क्या आप जानते हैं कि वह कौन सा था?
एक एजेंट उस रिकॉर्ड को डिलीट कर देता है जिसे उसे नहीं छूना चाहिए था। वह गलत टेनेंट (tenant) को मैसेज भेज देता है। वह लूप में एक API कॉल करता है और आपका बिल बढ़ा देता है।
किसी घटना के दस मिनट बाद, आप एक ही सवाल पूछते हैं: यह किस एजेंट ने किया?
यदि आप नहीं जानते, तो आप इसे ठीक नहीं कर सकते। आप बिल्ड (build) को रोक नहीं सकते। आप त्रुटि का ऑडिट नहीं कर सकते। आप गलती से सीख नहीं सकते।
यह पहचान (identity) की समस्या है।
अधिकांश टीमें तीन ऐसे पैटर्न का सामना करती हैं जो एजेंट की गतिविधियों को छिपा देते हैं:
- साझा सर्विस अकाउंट्स (Shared service accounts): दस एजेंट एक ही क्रेडेंशियल्स का उपयोग करते हैं। आपके लॉग्स में हर एक्शन एक जैसा दिखता है।
- मानवीय क्रेडेंशियल्स (Human credentials): एजेंट आपके लॉगिन का उपयोग करता है। लॉग्स में आपका नाम दिखता है, एजेंट का नहीं। यह एक बड़ा सुरक्षा जोखिम पैदा करता है।
- साइलेंट ड्रिफ्ट (Silent drift): दो अलग-अलग बिल्ड एक ही नाम का उपयोग करते हैं। एक नया मॉडल या नया प्रॉम्प्ट उपयोग करता है, लेकिन लॉग्स में पहचान वही दिखती है।
इसे ठीक करने के लिए, इन चरणों का पालन करें:
हर एजेंट को उसकी अपनी पहचान दें। मानवीय क्रेडेंशियल्स का उपयोग न करें। साझा अकाउंट्स का उपयोग न करें। एजेंट को स्वयं के रूप में प्रमाणित (authenticate) होना चाहिए।
हर एक्शन पर छह विशिष्ट फ़ील्ड्स (fields) दर्ज करें:
- जवाबदेह पक्ष (Accountable party): इस एजेंट के लिए कौन जिम्मेदार है?
- ऑपरेशनल ओनर (Operational owner): इसका दैनिक रखरखाव कौन करता है?
- टेनेंट (Tenant): यह किस ग्राहक के लिए है?
- एजेंट-टाइप-आईडी (Agent-type-id): यह कौन सा विशिष्ट बिल्ड है?
- एजेंट-इंस्टेंस-आईडी (Agent-instance-id): यह कौन सा विशिष्ट रन है?
- ट्रेस कॉन्टेक्स्ट (Trace context): कॉल चेन में यह कहाँ है?
वर्जनिंग के लिए हैश (hashes) का उपयोग करें। अपने एजेंट का नाम "support-agent-v2" न रखें। यदि आप सिस्टम प्रॉम्प्ट बदलते हैं, तो नाम वही रहता है, लेकिन व्यवहार बदल जाता है। इसके बजाय, कंटेंट हैश का उपयोग करें। कंटेनर इमेज, प्रॉम्प्ट, मॉडल और कॉन्फ़िगरेशन के आधार पर एक हैश बनाएं। यदि आप कोड की एक लाइन भी बदलते हैं, तो आईडी बदल जाएगी। यह साइलेंट ड्रिफ्ट को दृश्यमान बनाता है।
लिनिएज (Lineage) रिकॉर्ड करें। एजेंट सब-एजेंट (sub-agents) बनाते हैं। आपको यह रिकॉर्ड करना चाहिए कि किस पैरेंट एजेंट ने सब-एजेंट को शुरू किया था। आपको वह प्रॉम्प्ट भी रिकॉर्ड करना चाहिए जो पैरेंट ने सब-एजेंट को दिया था। इंजेक्ट किए गए निर्देशों या ज़हरीले डेटा (poisoned data) को खोजने का यही एकमात्र तरीका है।
पहचान (Identity) आपका रिकवरी सरफेस है। यह आपको किल स्विच (kill switch) का उपयोग करने और ऑडिट ट्रेल बनाने की अनुमति देता है। किसी घटना के होने से पहले आपको इसे सेटअप करना चाहिए। संकट के समय पहचान जोड़ना बहुत देर हो चुकी होगी।
अभी अपने लॉग्स चेक करें। एक घंटे पहले के किसी एक्शन को देखें। क्या आप उस विशिष्ट बिल्ड का नाम बता सकते हैं जिसने वह एक्शन लिया था? यदि आप नहीं बता सकते, तो आपको इस कमी को दूर करना होगा।
Source: https://dev.to/brennhill/when-your-agent-does-something-bad-can-you-tell-which-agent-did-it-37a2
Optional learning community: https://t.me/GyaanSetuAi
