நடக்காத ஒன்றைப் பதிவு செய்ய உங்கள் லாக் (Log) முடியாது
பெரும்பாலான AI பாதுகாப்பு கருவிகள் சான்றுகளைத் (artifacts) தேடுகின்றன. அவை ஒரு லாக் பதிவு, ஒரு கையொப்பம் அல்லது ஒரு கருவியின் முடிவைத் தேடுகின்றன. ஒரு கருவியின் முடிவு போலியாக இருந்தால், அமைப்பு அதைத் தடையுயர்த்தும் (flags). ஒரு JSON பிளாக் சிதைந்திருந்தால், அமைப்பு அதைக் கண்டறியும்.
இவை எளிதான தோல்விகள், ஏனெனில் இவை ஒரு தடயத்தை விட்டுச் செல்கின்றன.
உண்மையான ஆபத்து விடுபடல் (omission) ஆகும். விடுபடல் என்பது எதுவுமே நடக்காத நிலையைக் குறிக்கிறது.
ஒரு append-only log-இல், ஒரு விஷயம் இல்லாதது மூன்று வழிகளில் ஒரே மாதிரியாகத் தோன்றும்:
- அது நடக்கவில்லை.
- அது இன்னும் நடக்கவில்லை.
- அது நடந்தது, ஆனால் ஒருபோதும் பதிவு செய்யப்படவில்லை.
லாக் எதையும் காட்டாது. தணிக்கை வினவல் (audit query) எதையும் வழங்காது. மௌனம் ஒப்புதலாக மாறிவிடும்.
இந்த மூன்று வடிவமைப்பு விதிகளின் மூலம் இதைச் சரிசெய்யலாம்:
மௌனத்தை காலாவதியாக்குங்கள் (Make silence expire) ஒரு ஏஜென்ட் (agent) ஒரு செயலைச் செய்தால், ஒரு மதிப்பாய்வாளர் (reviewer) அதை உறுதிப்படுத்த வேண்டும். கையொப்பம் இல்லாமை என்பது உங்கள் பாதுகாப்பில் உள்ள ஒரு ஓட்டமாகும். "நிலுவையில்" (pending) உள்ளவை என்றென்றும் நிலுவையில் இருக்க அனுமதிக்காதீர்கள். ஒரு காலக்கெடுவை நிர்ணயியுங்கள். காலக்கெடு முடிந்தால், அமைப்பு
REVIEW_EXPIREDபோன்ற ஒரு இறுதி நிலையை (terminal state) பதிவு செய்ய வேண்டும். இது ஒரு வெற்று இடத்தைத் தேடக்கூடிய பிழையாக (searchable error) மாற்றுகிறது.கூற்றுகளுக்கு ஆதாரங்களைக் கோருங்கள் (Require citations for claims) ஏஜென்ட்கள் பெரும்பாலும் உலகை விவரிக்க உரைநடையைப் (prose) பயன்படுத்துகின்றன. ஒரு ஏஜென்ட், "கோப்பு காலியாக இருந்தது" என்று சொல்லலாம். அதை உறுதிப்படுத்த ஒரு கருவி முடிவு (tool result) இல்லையென்றால், அந்த கூற்று ஆபத்தானது.
ஒரு கூற்று எதிர்காலச் செயலைத் தீர்மானிக்கும் என்றால், அதில் ஒரு observation ID இருக்க வேண்டும். ஏஜென்ட் உண்மையைக் கூறுகிறதா என்று யூகிக்க முயற்சிக்காதீர்கள். அந்த கூற்று ஒரு உண்மையான தரவு ஆதாரத்தைக் (data source) காட்டுகிறதா என்பதை மட்டும் சரிபார்க்கவும். ஆதாரம் இல்லாத கூற்று என்பது ஒரு தவறான செய்தி (malformed message) ஆகும்.
- செயல்களுக்கு இரண்டு நிகழ்வுப் பிரிவைப் (two-event split) பயன்படுத்துங்கள் ஒரு ஏஜென்ட் மின்னஞ்சல் அனுப்புவது போன்ற ஒரு பணியைத் தொடங்கும்போது, அதன் முடிவைப் பதிவு செய்வதற்கு முன்பே அது செயலிழந்துவிடலாம். இது ஒரு இடைவெளியை உருவாக்குகிறது. மின்னஞ்சல் அனுப்பப்பட்டதா? நீங்கள் மீண்டும் முயற்சிக்க வேண்டுமா?
இந்த முறையைப் பின்பற்றுங்கள்:
- ஒரு தனித்துவமான திறவுகோலுடன் (unique key) ஓர்
INTENTநிகழ்வைப் பதிவு செய்யுங்கள். - அந்தச் செயலைச் செய்யுங்கள்.
- ஓர்
OUTCOMEநிகழ்வைப் பதிவு செய்யுங்கள்.
இப்போது உங்களால் இடைநிலை நிலையை (middle state) பார்க்க முடியும். உங்களிடம் INTENT இருந்து, ஆனால் OUTCOME இல்லை என்றால், அமைப்பு எங்கே தோல்வியடைந்தது என்பதை நீங்கள் துல்லியமாகத் தெரிந்து கொள்ளலாம். யூகிக்காமல், அந்த நிலையைச் சரிசெய்ய (reconcile) முடியும்.
விதி எளிமையானது: உங்கள் அமைப்பு பதிவு செய்யும் ஒவ்வொரு வெற்றிக்கும், அந்தப் பதிவு இல்லையென்றால் என்ன நடக்கும் என்று கேளுங்கள். பதில் "ஒன்றுமில்லை" என்றால், உங்களுக்கு ஒரு மறைமுகப் பிரச்சனை (blind spot) உள்ளது.
உங்கள் எதிர்மறை நிலைகளை (negative states) முதன்மையான பதிவுகளாக (first-class records) வடிவமைக்கவும். அவற்றுக்கு பெயர்களைக் கொடுங்கள். அவற்றுக்கு உரிமையாளர்களைக் கொடுங்கள். அவை உங்கள் பாதுகாப்புத் தடைகளைத் (gates) தாண்ட முடியாதபடிச் செய்யுங்கள்.
Source: https://dev.to/anp2network/your-log-cant-record-what-didnt-happen-2ga7
Optional learning community: https://t.me/GyaanSetuAi
