جب آپ کا ایجنٹ غلطی کرے، تو کیا آپ جانتے ہیں کہ یہ کس نے کی؟
ایک ایجنٹ ایسا ریکارڈ ڈیلیٹ کر دیتا ہے جسے اسے نہیں چھونا چاہیے تھا۔ وہ غلط ٹیننٹ (tenant) کو پیغام بھیج دیتا ہے۔ وہ ایک لوپ میں API کال کرتا ہے اور آپ کا بل بڑھا دیتا ہے۔
کسی واقعے کے دس منٹ بعد، آپ ایک ہی سوال پوچھتے ہیں: یہ کس ایجنٹ نے کیا؟
اگر آپ نہیں جانتے، تو آپ اسے ٹھیک نہیں کر سکتے۔ آپ بلڈ (build) کو روک نہیں سکتے۔ آپ غلطی کا آڈٹ نہیں کر سکتے۔ آپ اس غلطی سے سیکھ نہیں سکتے۔
یہ شناخت (identity) کا مسئلہ ہے۔
زیادہ تر ٹیموں کو تین ایسے پیٹرنز کا سامنا کرنا پڑتا ہے جو ایجنٹ کے اقدامات کو چھپا دیتے ہیں:
- مشترکہ سروس اکاؤنٹس (Shared service accounts): دس ایجنٹس ایک ہی سیٹ آف کریڈنشلز استعمال کرتے ہیں۔ آپ کے لاگز میں ہر ایکشن ایک جیسا نظر آتا ہے۔
- انسانی کریڈنشلز (Human credentials): ایجنٹ آپ کا لاگ ان استعمال کرتا ہے۔ لاگز میں آپ کا نام نظر آتا ہے، ایجنٹ کا نام نہیں۔ یہ ایک بڑا سیکیورٹی خطرہ پیدا کرتا ہے۔
- خاموش تبدیلی (Silent drift): دو مختلف بلڈز ایک ہی نام استعمال کرتے ہیں۔ ایک نیا ماڈل یا نیا پرامپٹ (prompt) استعمال کرتا ہے، لیکن لاگز میں شناخت وہی نظر آتی ہے۔
اسے ٹھیک کرنے کے لیے، ان اقدامات پر عمل کریں:
ہر ایجنٹ کو اس کی اپنی شناخت دیں۔ انسانی کریڈنشلز استعمال نہ کریں۔ مشترکہ اکاؤنٹس استعمال نہ کریں۔ ایجنٹ کو خود کی حیثیت سے مستند (authenticate) ہونا چاہیے۔
ہر ایکشن پر چھ مخصوص فیلڈز لگائیں:
- Accountable party: اس ایجنٹ کا ذمہ دار کون ہے؟
- Operational owner: اسے روزانہ کون برقرار رکھتا ہے؟
- Tenant: یہ کس کسٹمر کے لیے ہے؟
- Agent-type-id: یہ کون سا مخصوص بلڈ ہے؟
- Agent-instance-id: یہ کون سا مخصوص رن (run) ہے؟
- Trace context: کال چین میں یہ کہاں ہے؟
ورژننگ کے لیے ہیشز (hashes) استعمال کریں۔ اپنے ایجنٹ کا نام "support-agent-v2" نہ رکھیں۔ اگر آپ سسٹم پرامپٹ تبدیل کرتے ہیں، تو نام وہی رہتا ہے، لیکن رویہ بدل جاتا ہے۔ اس کے بجائے، کنٹینٹ ہیش (content hash) استعمال کریں۔ کنٹینر امیج، پرامپٹ، ماڈل اور کنفیگ (config) کی بنیاد پر ایک ہیش بنائیں۔ اگر آپ کوڈ کی ایک لائن بھی تبدیل کرتے ہیں، تو آئی ڈی بدل جائے گی۔ یہ خاموش تبدیلی (silent drift) کو واضح کر دیتا ہے۔
شجرہ (lineage) ریکارڈ کریں۔ ایجنٹس سب-ایجنٹس (sub-agents) پیدا کرتے ہیں۔ آپ کو یہ ریکارڈ کرنا چاہیے کہ کس پیرنٹ ایجنٹ نے سب-ایجنٹ کو شروع کیا۔ آپ کو وہ پرامپٹ بھی ریکارڈ کرنا چاہیے جو پیرنٹ نے سب-ایجنٹ کو دیا تھا۔ انجیکٹ شدہ ہدایات (injected instructions) یا زہریلے ڈیٹا (poisoned data) کو تلاش کرنے کا یہی واحد طریقہ ہے۔
شناخت آپ کی ریکوری کی سطح (recovery surface) ہے۔ یہ آپ کو 'کل سوئچ' (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
