ప్రొడక్షన్కు ముందు ఒక AI ఏజెంట్ ప్లేగ్రౌండ్ను నిర్మించడం
ఒక కోడింగ్ ఏజెంట్, స్టేజింగ్ డేటాబేస్ అనుకుని ఒక క్లీనప్ స్క్రిప్ట్ను రన్ చేసింది. కానీ అది నిజానికి ప్రొడక్షన్ డేటాబేస్. తప్పుడు క్రెడెన్షియల్స్తో దానికి చెప్పిన పనిని సరిగ్గా చేసినందువల్ల, ఆ ఏజెంట్ నాలుగు నెలల కస్టమర్ ఆర్డర్లను డిలీట్ చేసింది.
ఈ వైఫల్యం ఏజెంట్లను నివారించడానికి కారణం కాదు. ఇది ఒక ప్లేగ్రౌండ్ను నిర్మించడానికి ఒక కారణం.
మీరు ఒక కొత్త ఇంజనీర్కు వారి మొదటి రోజే ప్రొడక్షన్ డేటాబేస్ యాక్సెస్ను ఇవ్వరు. మీరు వారికి స్టేజింగ్ ఎన్విరాన్మెంట్, రీడ్-ఓన్లీ యాక్సెస్ మరియు పర్యవేక్షించబడే పనులను ఇస్తారు. ఏజెంట్లకు కూడా అదే విధమైన ఆన్బోర్డింగ్ అవసరం. అవి నిమిషానికి వెయ్యి పనులు చేయగలవు, కాబట్టి ప్లేగ్రౌండ్ను వదిలేయడం వల్ల కలిగే నష్టం వెయ్యి రెట్లు ఎక్కువగా ఉంటుంది.
ఒక నిజమైన ప్లేగ్రౌండ్ మూడు పనులు చేయాలి:
- ఏజెంట్ తన పూర్తి డిసిషన్ లూప్ను (decision loop) రన్ చేయడానికి అనుమతించాలి.
- సైడ్ ఎఫెక్ట్స్ (side effects) నిజమైన సిస్టమ్లకు చేరకుండా ఆపాలి.
- తనిఖీ కోసం ప్రతిదీ రికార్డ్ చేయాలి.
కేవలం ప్రాంప్ట్ను మాత్రమే పరీక్షించకండి. ప్రాంప్ట్ను పరీక్షించడం అంటే ఒక ప్రశ్న అడగడం మరియు సమాధానాన్ని చదవడం మాత్రమే. ఏజెంట్ ప్రవర్తన అనేది టూల్ కాల్స్ (tool calls) యొక్క ఒక క్రమం. ఒక టూల్ ఊహించని డేటాను తిరిగి ఇచ్చినప్పుడు, లూప్ మధ్యలో నిజమైన వైఫల్యాలు జరుగుతాయి.
మీరు మోడల్ను శాండ్బాక్స్ (sandbox) చేయాల్సిన అవసరం లేదు. మీరు ఎగ్జిక్యూటర్ను (executor) శాండ్బాక్స్ చేయాలి.
టూల్ కాల్స్ చర్యలుగా (actions) మారే చోట ఒక విభజనను (seam) ఏర్పాటు చేయండి. లైవ్ ఎగ్జిక్యూటర్కు బదులుగా మ్యాక్స్ (mocks) ఉపయోగించే ప్లేగ్రౌండ్ ఎగ్జిక్యూటర్ను ఉపయోగించండి. ఏజెంట్ లూప్కు ఈ తేడా తెలియకూడదు. మీ ఏజెంట్ నేరుగా డేటాబేస్ క్లయింట్ను కాల్ చేస్తే, మీకు విభజన ఉండదు మరియు భద్రత కూడా ఉండదు.
మూడు నిర్దిష్ట అంశాలను పరీక్షించండి:
- ప్రవర్తన (Behavior): ఏజెంట్ సరైన క్రమంలో సరైన టూల్ను ఎంచుకుంటుందా?
- టూల్ కాల్స్ (Tool calls): ఆర్గ్యుమెంట్స్ సరైనవిగా మరియు సురక్షితమైన పరిధిలో ఉన్నాయా?
- ఫెయిల్యూర్ మోడ్స్ (Failure modes): ఒక API టైమ్ అవుట్ అయినప్పుడు లేదా తప్పుడు డేటాను (garbage) ఇచ్చినప్పుడు ఏం జరుగుతుంది?
ఎల్లప్పుడూ విజయవంతమయ్యే ఒక మ్యాక్ (mock) ఏజెంట్కు ఏమీ నేర్పదు. నెట్వర్క్ టైమ్ అవుట్స్ లేదా తప్పుగా ఉన్న డేటా (malformed data) వంటి వైఫల్యాలను ఇంజెక్ట్ చేయడానికి మీ ప్లేగ్రౌండ్ అనుమతించాలి. దీని ద్వారానే ఏజెంట్ తెలివిగా మళ్ళీ ప్రయత్నిస్తుందా లేదా హాలూసినేట్ (hallucinating) చేయడం ప్రారంభిస్తుందా అనేది మీరు చూడగలరు.
మీ ఏజెంట్ కోడ్ను రన్ చేస్తే, మీకు బలమైన ఐసోలేషన్ (isolation) అవసరం. నమ్మకం లేని కోడ్ కోసం microVMలను ఉపయోగించండి. కేవలం సులభంగా ఉన్నాయని సింపుల్ కంటైనర్లతో ప్రారంభించకండి. సులభమైన సెటప్ వల్ల భారీ భద్రతా సమస్యలు తలెత్తవచ్చు.
ఏజెంట్లు నాన్-డిటర్మినిస్టిక్ (non-deterministic) అని గుర్తుంచుకోండి. ఒకసారి పాస్ అయిన టెస్ట్ ఏజెంట్ నమ్మదగినదని అర్థం కాదు. మీరు ఒకే టాస్క్ను పలుమార్లు రన్ చేయాలి. ఒక ఏజెంట్ 10 సార్లు చేసినప్పుడు 7 సార్లు పాస్ అయితే, అది మీ నిజమైన వినియోగదారులలో సుమారు 30% మందికి విఫలమవుతుంది. స్థిరత్వం (Consistency) అనేది మీ అత్యంత ముఖ్యమైన కొలమానం.
చివరగా, అడ్వర్సేరియల్ టూల్ అవుట్పుట్ల (adversarial tool outputs) నుండి రక్షణ పొందండి. ఏజెంట్ టూల్ డేటాను సూచనలుగా (instructions) పరిగణిస్తుంది. ఒక దురుద్దేశపూరిత వినియోగదారుడు ప్రాంప్ట్ ఇంజెక్షన్ (prompt injection) ద్వారా ఏజెంట్ను తప్పుదారి పట్టించడానికి డేటాబేస్లో డేటాను నింపవచ్చు. ప్లేగ్రౌండ్లో హొస్టైల్ పేలోడ్లను (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
