உங்கள் ஏஜென்ட் தவறாகச் செயல்படும்போது, அதைச் செய்தது எது என்று உங்களுக்குத் தெரியுமா?
ஒரு ஏஜென்ட் தொடக்கூடாது என்று இருக்கும் ஒரு பதிவை (record) நீக்குகிறது. தவறான டெனன்ட்டிற்கு (tenant) ஒரு செய்தியை அனுப்புகிறது. ஒரு API-ஐத் தொடர்ச்சியாக (loop) அழைத்து உங்கள் கட்டணத்தை (bill) உயர்த்துகிறது.
ஒரு சிக்கல் (incident) ஏற்பட்டு பத்து நிமிடங்கள் கழித்து, நீங்கள் ஒரு கேள்வியைக் கேட்பீர்கள்: இதைச் செய்தது எந்த ஏஜென்ட்?
உங்களுக்குத் தெரியவில்லை என்றால், உங்களால் அதைச் சரிசெய்ய முடியாது. உங்களால் பில்டை (build) நிறுத்த முடியாது. பிழையைத் தணிக்கை (audit) செய்ய முடியாது. அந்தத் தவறிலிருந்து உங்களால் கற்றுக்கொள்ள முடியாது.
இது ஒரு அடையாளப் (identity) பிரச்சனை.
பெரும்பாலான குழுக்கள் ஏஜென்ட்களின் செயல்பாடுகளை மறைக்கும் மூன்று முறைகளை எதிர்கொள்கின்றன:
- பகிரப்பட்ட சேவை கணக்குகள் (Shared service accounts): பத்து ஏஜென்ட்கள் ஒரே ஒரு சான்றுகளைப் (credentials) பயன்படுத்துகின்றன. உங்கள் லாக்ஸில் (logs) ஒவ்வொரு செயலும் ஒரே மாதிரியாகத் தெரியும்.
- மனித சான்றுகள் (Human credentials): ஏஜென்ட் உங்கள் லாகினைப் பயன்படுத்துகிறது. லாக்ஸில் உங்கள் பெயர் தான் தெரியும், ஏஜென்ட்டின் பெயர் தெரியாது. இது ஒரு மிகப்பெரிய பாதுகாப்பு அபாயத்தை (security risk) உருவாக்குகிறது.
- அமைதியான மாற்றம் (Silent drift): இரண்டு வெவ்வேறு பில்டுகள் (builds) ஒரே பெயரைப் பயன்படுத்துகின்றன. ஒன்று புதிய மாடல் அல்லது புதிய பிராம்ப்ட்டைப் (prompt) பயன்படுத்துகிறது, ஆனால் லாக்ஸில் ஒரே அடையாளம் தான் காட்டப்படுகிறது.
இதைச் சரிசெய்ய, இந்த வழிமுறைகளைப் பின்பற்றவும்:
ஒவ்வொரு ஏஜென்ட்டிற்கும் அதன் சொந்த அடையாளத்தைக் கொடுங்கள். மனித சான்றுகளைப் பயன்படுத்த வேண்டாம். பகிரப்பட்ட கணக்குகளைப் பயன்படுத்த வேண்டாம். ஏஜென்ட் தனக்காகவே அங்கீகரிக்கப்பட (authenticate) வேண்டும்.
ஒவ்வொரு செயலிலும் ஆறு குறிப்பிட்ட புலங்களை (fields) முத்திரையிடுங்கள்:
- Accountable party: இந்த ஏஜென்ட்டிற்கு யார் பொறுப்பு?
- Operational owner: இதைத் தினமும் பராமரிப்பவர் யார்?
- Tenant: இது எந்த வாடிக்கையாளருக்கானது?
- Agent-type-id: இது எந்த குறிப்பிட்ட பில்டு?
- Agent-instance-id: இது எந்த குறிப்பிட்ட இயக்கம் (run)?
- Trace context: அழைப்புச் சங்கிலியில் (call chain) இது எங்கே உள்ளது?
பதிப்பு மேலாண்மைக்கு (versioning) ஹாஷ்களைப் (hashes) பயன்படுத்துங்கள். உங்கள் ஏஜென்ட்டிற்கு "support-agent-v2" என்று பெயரிட வேண்டாம். நீங்கள் சிஸ்டம் பிராம்ப்ட்டை (system prompt) மாற்றினால், பெயர் அப்படியே இருக்கும், ஆனால் செயல்பாடு மாறும். அதற்குப் பதிலாக, ஒரு உள்ளடக்க ஹாஷைப் (content hash) பயன்படுத்துங்கள். கண்டெய்னர் இமேஜ் (container image), பிராம்ப்ட், மாடல் மற்றும் கான்ஃபிக் (config) ஆகியவற்றின் அடிப்படையில் ஒரு ஹாஷை உருவாக்குங்கள். நீங்கள் ஒரு வரியைக் குறியீட்டை (code) மாற்றினால் கூட, ஐடி (ID) மாறிவிடும். இது அமைதியான மாற்றத்தை (silent drift) வெளிப்படையாக்குகிறது.
வம்சாவளியைப் (lineage) பதிவு செய்யுங்கள். ஏஜென்ட்கள் துணை-ஏஜென்ட்களை (sub-agents) உருவாக்குகின்றன. எந்தப் பெற்றோர் ஏஜென்ட் துணை-ஏஜென்ட்டைத் தொடங்கியது என்பதை நீங்கள் பதிவு செய்ய வேண்டும். பெற்றோர் ஏஜென்ட் துணை-ஏஜென்ட்டிற்கு வழங்கிய பிராம்ப்ட்டையும் நீங்கள் பதிவு செய்ய வேண்டும். ஊடுருவப்பட்ட அறிவுறுத்தல்கள் (injected instructions) அல்லது நச்சுத் தரவுகளைக் (poisoned data) கண்டறிய இதுவே ஒரே வழி.
அடையாளம் என்பது உங்கள் மீட்புத் தளம் (recovery surface). இது ஒரு 'கில் ஸ்விட்ச்' (kill switch) பயன்படுத்தவும் மற்றும் தணிக்கைப் பாதையை (audit trail) உருவாக்கவும் அனுமதிக்கிறது. ஒரு சிக்கல் ஏற்படுவதற்கு முன்பே இதை நீங்கள் அமைத்துவிட வேண்டும். ஒரு நெருக்கடியின் போது அடையாளத்தைச் சேர்ப்பது மிகவும் தாமதமாகிவிடும்.
இப்போதே உங்கள் லாக்ஸ்களைச் சரிபார்க்கவும். ஒரு மணி நேரத்திற்கு முன்பு நடந்த ஒரு செயலைப் பார்க்கவும். அந்தச் செயலைச் செய்த குறிப்பிட்ட பில்டை உங்களால் பெயரிட முடியுமா? உங்களால் முடியாவிட்டால், நீங்கள் சரிசெய்ய வேண்டிய இடைவெளி உள்ளது.
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
