પ્રોડક્શન પહેલા AI એજન્ટ પ્લેગ્રાઉન્ડ બનાવવું
એક કોડિંગ એજન્ટે એકવાર સ્ટેજિંગ ડેટાબેઝ સમજીને ક્લીનઅપ સ્ક્રિપ્ટ ચલાવી હતી. પરંતુ તે ખરેખર પ્રોડક્શન ડેટાબેઝ હતો. એજન્ટે ખોટા ક્રેડેન્શિયલ્સ સાથે બરાબર તે જ કર્યું જે તેને કહેવામાં આવ્યું હતું, જેના કારણે તેણે ચાર મહિનાના ગ્રાહકોના ઓર્ડર ડિલીટ કરી નાખ્યા.
આ નિષ્ફળતા એજન્ટોથી બચવાનું કારણ નથી. તે પ્લેગ્રાઉન્ડ બનાવવાનું કારણ છે.
તમે કોઈ નવા એન્જિનિયરને તેના પહેલા દિવસે પ્રોડક્શન ડેટાબેઝનો એક્સેસ આપશો નહીં. તમે તેમને સ્ટેજિંગ એન્વાયરમેન્ટ, રીડ-ઓન્લી એક્સેસ અને સુપરવાઈઝ્ડ કાર્યો આપો છો. એજન્ટોને પણ સમાન ઓનબોર્ડિંગની જરૂર છે. તેઓ મિનિટમાં હજારો એક્શન લઈ શકે છે, તેથી પ્લેગ્રાઉન્ડને અવગણવાનો ખર્ચ હજાર ગણો વધારે હોઈ શકે છે.
એક સાચા પ્લેગ્રાઉન્ડમાં ત્રણ વસ્તુઓ હોવી જોઈએ:
- એજન્ટને તેના સંપૂર્ણ ડિસિઝન લૂપ (decision loop) ચલાવવા દેવું.
- તમામ સાઇડ ઇફેક્ટ્સ (side effects) વાસ્તવિક સિસ્ટમ્સ સુધી પહોંચતા અટકાવવી.
- નિરીક્ષણ માટે બધું જ રેકોર્ડ કરવું.
ફક્ત પ્રોમ્પ્ટનું ટેસ્ટિંગ ન કરો. પ્રોમ્પ્ટનું ટેસ્ટિંગ એટલે પ્રશ્ન પૂછવો અને જવાબ વાંચવો તે છે. એજન્ટનું વર્તન એ ટૂલ કોલ્સ (tool calls) નો એક ક્રમ છે. વાસ્તવિક નિષ્ફળતાઓ લૂપની વચ્ચે ત્યારે થાય છે જ્યારે કોઈ ટૂલ અણધાર્યો ડેટા રિટર્ન કરે છે.
તમારે મોડેલને સેન્ડબોક્સ કરવાની જરૂર નથી. તમારે એક્ઝિક્યુટરને સેન્ડબોક્સ કરવાની જરૂર છે.
જ્યાં ટૂલ કોલ્સ એક્શનમાં રૂપાંતરિત થાય છે ત્યાં એક સીમ (seam) બનાવો. લાઈવ એક્ઝિક્યુટરને બદલે મોક્સ (mocks) નો ઉપયોગ કરતું પ્લેગ્રાઉન્ડ એક્ઝિક્યુટર વાપરો. એજન્ટ લૂપને આ તફાવત ખબર ન હોવી જોઈએ. જો તમારો એજન્ટ સીધો ડેટાબેઝ ક્લાયન્ટને કોલ કરે છે, તો તમારી પાસે કોઈ સીમ નથી અને કોઈ સુરક્ષા પણ નથી.
ત્રણ ચોક્કસ ક્ષેત્રોનું પરીક્ષણ કરો:
- વર્તન (Behavior): શું એજન્ટ યોગ્ય ક્રમમાં યોગ્ય ટૂલ પસંદ કરે છે?
- ટૂલ કોલ્સ (Tool calls): શું આર્ગ્યુમેન્ટ્સ સાચા અને સુરક્ષિત મર્યાદામાં છે?
- નિષ્ફળતાના પ્રકારો (Failure modes): જ્યારે API ટાઈમ આઉટ થાય અથવા કચરો (garbage) રિટર્ન કરે ત્યારે શું થાય છે?
જે મોક (mock) હંમેશા સફળ થાય છે તે એજન્ટને કંઈ શીખવતું નથી. તમારા પ્લેગ્રાઉન્ડમાં નેટવર્ક ટાઈમઆઉટ અથવા ખોટી રીતે રચાયેલ ડેટા (malformed data) જેવી નિષ્ફળતાઓ ઇન્જેક્ટ કરવાની સુવિધા હોવી જોઈએ. આ રીતે તમે જોઈ શકશો કે એજન્ટ સમજદારીપૂર્વક ફરી પ્રયાસ કરે છે કે પછી ભ્રમ (hallucinating) કરવા લાગે છે.
જો તમારો એજન્ટ કોડ રન કરે છે, તો તમારે મજબૂત આઇસોલેશનની જરૂર છે. અવિશ્વસનીય કોડ માટે microVMs નો ઉપયોગ કરો. ફક્ત તે સરળ છે એટલે સાદા કન્ટેનર્સથી શરૂઆત ન કરો. સરળ સેટઅપ મોટી સુરક્ષા ઘટના તરફ દોરી શકે છે.
યાદ રાખો કે એજન્ટો નોન-ડિટરમિનિસ્ટિક (non-deterministic) હોય છે. એકવાર પાસ થતું ટેસ્ટ એનો અર્થ નથી કે એજન્ટ વિશ્વસનીય છે. તમારે એક જ કાર્ય અનેક વખત ચલાવવું જોઈએ. જો એજન્ટ 10 માંથી 7 વખત પાસ થાય છે, તો તે તમારા અંદાજે 30% વાસ્તવિક વપરાશકર્તાઓ માટે નિષ્ફળ જશે. સુસંગતતા (Consistency) એ તમારું સૌથી મહત્વનું માપદંડ છે.
અંતે, એડવર્સરીયલ (adversarial) ટૂલ આઉટપુટ્સ સામે રક્ષણ કરો. એજન્ટ ટૂલ ડેટાને સૂચનાઓ તરીકે લે છે. એક દુષ્ટ વપરાશકર્તા એજન્ટને દિશા આપવા માટે પ્રોમ્પ્ટ ઇન્જેક્શન દ્વારા ડેટાબેઝમાં ખોટી માહિતી ભરી શકે છે. પ્લેગ્રાઉન્ડમાં એજન્ટને હાનિકારક પેલોડ્સ (hostile payloads) આપીને તેનું પરીક્ષણ કરો.
લોન્ચ બટન નહીં, પણ ગ્રેજ્યુએશન પાથ (graduation path) બનાવો:
- મોક્સ અને સંપૂર્ણ સેન્ડબોક્સિંગથી શરૂઆત કરો.
- અનેક રન દરમિયાન સુસંગતતા માટે ટેસ્ટ કરો.
- એડવર્સરીયલ ઇનપુટ્સ સામે ટેસ્ટ કરો.
- પ્રોડક્શન જેવો ડેટા ધરાવતા ડેટા સામે ડ્રાય-રન (dry-run) મોડ પર જાઓ.
- ત્યાર પછી જ મર્યાદિત, ગેટ્ડ અને મોનિટર કરેલ એક્સેસ આપો.
તમારા એજન્ટને સસ્તામાં ભૂલ કરવાની જગ્યા આપો. તો જ તે જ્યાં જરૂર હોય ત્યાં સાચું હોઈ શકશે.
Source: https://dev.to/nazar_boyko/building-an-ai-agent-playground-before-giving-it-production-access-4glh
Optional learning community: https://t.me/GyaanSetuAi
