AI એજન્ટ્સને નિષ્ફળ બનાવતી ૭ ભૂલો
તમારો AI એજન્ટ ટેસ્ટિંગમાં બરાબર કામ કરે છે. તે ઝડપી અને સચોટ છે. પછી તમે તેને ડિપ્લોય કરો છો. બધું જ નિષ્ફળ જાય છે. યુઝર્સ ટાઈમઆઉટ અને એરરની જાણ કરે છે.
મજબૂત (resilient) AI એજન્ટ્સ બનાવવા માટે માત્ર સારા કોડ કરતાં વધુની જરૂર છે. તમારે પ્રોડક્શનની જટિલ વાસ્તવિકતાને સંભાળવી પડશે.
વધુ સારા સિસ્ટમ બનાવવા માટે આ સાત ભૂલો ટાળો:
- એક્સટર્નલ API નિષ્ફળતાઓને અવગણવી નેટવર્ક રિક્વેસ્ટ ટાઈમઆઉટ અથવા રેટ લિમિટને કારણે નિષ્ફળ જાય છે.
- તમામ કોલ્સને try-catch બ્લોક્સમાં લપેટો (wrap કરો).
- ચોક્કસ ટાઈમઆઉટ વેલ્યુ સેટ કરો.
- એક્સપોનેન્શિયલ બેકઓફ (exponential backoff) સાથે રીટ્રાય લોજિકનો ઉપયોગ કરો.
- નિષ્ફળ જતી સેવાઓ માટે સર્કિટ બ્રેકર્સનો ઉપયોગ કરો.
- નિષ્ફળતાઓને બાઈનરી તરીકે ગણવી ઘણા ડેવલપર્સ વિચારે છે કે સિસ્ટમ કાં તો કામ કરે છે અથવા કામ કરતી નથી. વાસ્તવમાં, સિસ્ટમના અમુક ભાગો નિષ્ફળ જાય છે જ્યારે અન્ય સક્રિય રહે છે.
- મલ્ટી-ટાયર ફોલબેક વ્યૂહરચનાઓ બનાવો.
- સિસ્ટમ મર્યાદિત ફીચર્સ સાથે કેવી રીતે કામ કરશે તે વ્યાખ્યાયિત કરો.
- જ્યારે સિસ્ટમ ખરાબ સ્થિતિમાં (degraded state) હોય ત્યારે યુઝર્સને જાણ કરો.
- ન્યૂનતમ લોગિંગ તમે જે જોઈ શકતા નથી તેને સુધારી શકતા નથી.
- અલગ-અલગ લેવલ પર લોગ કરો: DEBUG, INFO, WARNING, અને ERROR.
- યુઝર જર્ની ટ્રેસ કરવા માટે રિક્વેસ્ટ ID નો ઉપયોગ કરો.
- એરર રેટ અને રિસ્પોન્સ ટાઈમ ટ્રેક કરો.
- સિસ્ટમની અસાધારણતા (anomalies) માટે એલર્ટ સેટ કરો.
- ફક્ત "happy paths" ટેસ્ટ કરવા જો તમે ફક્ત સફળતાનું જ ટેસ્ટિંગ કરશો, તો તમારો એજન્ટ દબાણ હેઠળ નિષ્ફળ જશે.
- નિષ્ફળતાઓને ટેસ્ટ કરવા માટે કેઓસ એન્જિનિયરિંગ (chaos engineering) નો ઉપયોગ કરો.
- ટેસ્ટ દરમિયાન જાણીજોઈને ડિપેન્ડન્સીઝને નિષ્ફળ બનાવો.
- નેટવર્ક લેટન્સી અને ધીમી સેવાઓનું અનુકરણ (simulate) કરો.
- ખોટા (malformed) ડેટા સાથે ટેસ્ટ કરો.
- એજન્ટ સ્ટેટ ગુમાવવી ક્રેસ (Crashes) નો અર્થ બધી પ્રગતિ ગુમાવવી એવો ન હોવો જોઈએ.
- મુખ્ય માઈલસ્ટોન્સ પર સ્ટેટ સેવ કરો.
- આઈડેમપોટેન્ટ (idempotent) ઓપરેશન્સનો ઉપયોગ કરો.
- અટકાયેલ કામ ફરી શરૂ કરવા માટે પૂરતો કોન્ટેક્સ્ટ સ્ટોર કરો.
- કોન્ફિગરેશન હાર્ડકોડ કરવું ટાઈમઆઉટ અથવા API એન્ડપોઈન્ટ્સ બદલવા માટે ફરીથી ડિપ્લોયમેન્ટની જરૂર ન પડવી જોઈએ.
- તમામ સેટિંગ્સ માટે એન્વાયરમેન્ટ વેરિયેબલ્સનો ઉપયોગ કરો.
- કોડ ફેરફાર વગર થ્રેશોલ્ડ એડજસ્ટેબલ બનાવો.
- નવા બિહેવિયર્સ માટે ફીચર ફ્લેગ્સનો ઉપયોગ કરો.
- સામાન્ય એરર હેન્ડલિંગ વેલિડેશન એરર માટે નેટવર્ક ટાઈમઆઉટ કરતા અલગ વ્યવહારની જરૂર હોય છે.
- રીટ્રાય કરી શકાય તેવી એરર્સને કાયમી એરર્સથી અલગ કરો.
- રેટ લિમિટ જેવી ક્ષણિક (transient) સમસ્યાઓ માટે રીટ્રાય કરો.
- ઓથેન્ટિકેશન નિષ્ફળતા જેવી કાયમી સમસ્યાઓ માટે રીટ્રાય ન કરો.
રેઝિલિયન્સ (Resilience) એટલે વાસ્તવિકતાનું પૂર્વાનુમાન કરવું. આ ખામીઓ સામે તમારા વર્તમાન એજન્ટ્સનું ઓડિટ કરીને શરૂઆત કરો.
Optional learning community: https://t.me/GyaanSetuAi