నేను విడుదల చేసిన AI ఏజెంట్ 23 యూనిట్ టెస్ట్లను పాస్ అయింది, కానీ లైవ్ అయిన గంటలోనే అది ఒక కొత్త ప్రొడక్ట్ ఫీచర్ను సృష్టించి, వాస్తవానికి మూడు రెట్లు తక్కువ ధరను కోట్ చేసింది. వినియోగదారుడు దానిని ప్రశ్నించినప్పుడు, బాట్ తన వాదననే పట్టుబట్టింది, దానితో సంభాషణ ముగిసింది మరియు నేను ఒక క్లయింట్ను కోల్పోయాను. యూనిట్ టెస్ట్ల సమూహం ఒక ఏజెంట్ యొక్క విశ్వసనీయతను గ్యారెంటీ ఇవ్వలేదని ఈ పొరపాటు నిరూపించింది.
AI ఏజెంట్లకు యూనిట్ టెస్ట్లు ఎందుకు సరిపోవు
సాంప్రదాయ కోడ్కు యూనిట్ టెస్ట్లు బాగా పనిచేస్తాయి ఎందుకంటే ఒకే ఇన్పుట్ ఎల్లప్పుడూ ఒకే అవుట్పుట్ను ఇస్తుంది. “2 + 2 = 4” అనేది మీరు ఒక సాధారణ ఈక్వాలిటీ చెక్తో ధృవీకరించగల గ్యారెంటీ. అయితే, ఒక LLM-డ్రివెన్ ఏజెంట్, ప్రాంప్ట్, చుట్టూ ఉన్న సందర్భం (context), మరియు అది పిలిచే ఏదైనా ఎక్స్టర్నల్ టూల్స్ యొక్క స్థితిని బట్టి తన అవుట్పుట్ను మారుస్తుంది. ఖచ్చితమైన స్ట్రింగ్ ఈక్వాలిటీని తనిఖీ చేసే టెస్ట్, హాలూసినేషన్స్ (hallucinations), టోన్ మార్పులు లేదా గార్డ్రైల్ ఉల్లంఘనలను గుర్తించలేదు. ఒక క్లయింట్ను కోల్పోయేలా చేసిన ఆ నిశ్శబ్ద వైఫల్యం ఏమిటంటే, మీరు కేవలం విడివిడి ఫంక్షన్లను మాత్రమే కాకుండా, మొత్తం ఇంటరాక్షన్ను మూల్యాంకనం చేయాలని చూపిస్తుంది.
ఫీచర్ కోడ్ రాయడానికి ముందే ఒక ఎవాల్యుయేషన్ హార్నెస్ నిర్మించడం
నేను డెవలప్మెంట్ క్రమాన్ని మార్చాను: మొదట నాలుగు పొరల (four-layer) ఎవాల్యుయేషన్ హార్నెస్ డిజైన్ చేయండి, ఆ తర్వాత ఏజెంట్ను రాయండి. ఈ హార్నెస్ ఒకేసారి 131 టెస్ట్లను నిర్వహిస్తుంది, ప్రతి రన్కు సుమారు మూడు సెంట్లు ఖర్చవుతుంది మరియు దాదాపు పదకొండు నిమిషాల్లో పూర్తవుతుంది. నేను ప్రతి టెస్ట్ను దానికి సరిపోయే అతి చిన్న మోడల్కు కేటాయిస్తాను, పెద్ద మరియు ఖరీదైన మోడల్లను అవి నిజంగా విలువను జోడిస్తాయి అనుకున్న సమయాల కోసం రిజర్వ్ చేస్తాను.
లేయర్ 1 – టూల్ ఫంక్షనాలిటీ
మొదటి రక్షణ వరుస ఏజెంట్ తన టూల్స్ను సరిగ్గా పిలుస్తుందో లేదో తనిఖీ చేస్తుంది. టెస్ట్లు విజయవంతమైన సెర్చ్లు, ఉద్దేశపూర్వకంగా తప్పుగా రూపొందించిన క్వెరీలు మరియు సిమ్యులేటెడ్ API వైఫల్యాలను కవర్ చేస్తాయి. టూల్ వినియోగం చాలా వరకు డిటర్మినిస్టిక్ (deterministic) కాబట్టి—అంటే రిక్వెస్ట్ సరిగ్గా ఫార్మ్ చేయబడిందో లేదో లేదా API ఎర్రర్ను తిరిగి ఇస్తుందో—సాధారణ Python assertions సరిపోతాయి. ఇక్కడ తప్పుగా ఉన్న రిక్వెస్ట్ను పట్టుకోవడం వల్ల తదుపరి దశల్లో వచ్చే గందరగోళాన్ని నివారిస్తుంది.
లేయర్ 2 – ఇన్స్ట్రక్షన్ ఫాలోయింగ్
తదుపరిగా, ఏజెంట్ గార్డ్రైల్స్ను గౌరవిస్తుందో లేదో హార్నెస్ ధృవీకరిస్తుంది. ఒక చిన్న LLM ఎవాల్యుయేటర్గా పనిచేస్తుంది, ఏజెంట్ యొక్క ప్రతిస్పందనను తనిఖీ చేస్తుంది: క్యారెక్టర్లో ఉండటం, నిషేధిత అంశాలను నివారించడం మరియు అవసరమైన JSON schemaను అందించడం వంటివి. యూనిట్ టెస్ట్లు గుర్తించలేని సెమాంటిక్ డ్రిఫ్ట్ (semantic drift) వంటి వాటిని, అంటే అనుకోని వ్యక్తిత్వంలోకి వెళ్లడం లేదా అంతర్గత ప్రాంప్ట్లను లీక్ చేయడం వంటి వాటిని ఈ లేయర్ గుర్తిస్తుంది.
లేయర్ 3 – గోల్-ఓరియెంటెడ్ బిహేవియర్
మూడవ లేయర్ అత్యంత కీలకమైనది. ఏజెంట్ నిజంగా తన ఉద్దేశ్యాన్ని నెరవేరుస్తుందో లేదో ఇది అడుగుతుంది. ఒక లీడ్-జనరేషన్ బాట్ కోసం, అది సరైన క్వాలిఫైయింగ్ ప్రశ్నలను అడుగుతుందో మరియు తగినప్పుడు మనిషికి (human) బదిలీ చేస్తుందో లేదో నిర్ధారించడం అని అర్థం. నేను ఇక్కడ రీజనింగ్-ఓరియెంటెడ్ మోడల్ను ఉపయోగిస్తాను ఎందుకంటే ఇది ఖర్చులను పెంచకుండా మొత్తం ఫ్లోను అంచనా వేయగలదు. బాట్ తన లక్ష్యాన్ని చేరుకోవడంలో విఫలమైతే—మొదటి రెండు లేయర్లను పాస్ అయినప్పటికీ—అది రీడిజైన్ కోసం ఫ్లాగ్ చేయబడుతుంది.
లేయర్ 4 – పెర్ఫార్మెన్స్
చివరగా, హార్నెస్ లాటెన్సీ (latency) మరియు టోకెన్-జనరేషన్ వేగాన్ని రికార్డ్ చేస్తుంది. నెమ్మదైన ప్రతిస్పందనలు యూజర్ ఎక్స్పీరియన్స్ను దెబ్బతీస్తాయి, ముఖ్యంగా రియల్-టైమ్ చాట్లో. ఫంక్షనల్ కరెక్ట్నెస్తో పాటు ఈ మెట్రిక్స్ను ట్రాక్ చేయడం ద్వారా, ఏజెంట్ ఖచ్చితంగా మరియు వేగంగా స్పందిస్తుందని నేను నిర్ధారిస్తాను.
ఖర్చు ఆదా చేసే ఎంపికలు
ప్రతి రన్కు $0.03 అనేది మార్కెటింగ్ గిమ్మిక్ కాదు; ఇది టెస్ట్ సంక్లిష్టతను మోడల్ పరిమాణంతో సరిపోల్చడం ద్వారా వస్తుంది. డిటర్మినిస్టిక్ టూల్ చెక్లు తక్కువ ఖర్చుతో కూడిన రన్టైమ్లో నడుస్తాయి, ఇన్స్ట్రక్షన్ కంప్లయన్స్ కోసం లైట్వెయిట్ మోడల్ను ఉపయోగిస్తాము మరియు కేవలం గోల్-ఓరియెంటెడ్ అసెస్మెంట్ల కోసం మాత్రమే ఎక్కువ సామర్థ్యం కలిగిన, కాస్త ఖరీదైన మోడల్ను ఉపయోగిస్తాము. ఈ క్రమానుగత విధానం (tiered approach) మొత్తం ఖర్చును తక్కువగా ఉంచుతుంది, తద్వారా ప్రతి కోడ్ మార్పుపై పూర్తి సూట్ను రన్ చేయవచ్చు.
ట్రేడ్-ఆఫ్: వేగం వర్సెస్ భద్రత
హార్నెస్ను ప్రవేశపెట్టడం వల్ల ప్రారంభంలో కొంత అడ్డంకి ఏర్పడింది. డెవలప్మెంట్ సైకిల్స్ పెరిగాయి మరియు లాంచ్ టైమ్లైన్ ఆలస్యమైంది.
తదుపరి ఏమి గమనించాలి
- మోడల్-డ్రివెన్ ఎవాల్యుయేటర్స్: LLMలు మెరుగుపడుతున్న కొద్దీ, లేయర్ 2లోని ఎవాల్యుయేటర్ మరింత సూక్ష్మంగా మారవచ్చు, తద్వారా తప్పుడు పాజిటివ్లను (false positives) తగ్గిస్తూనే, సూక్ష్మమైన పాలసీ ఉల్లంఘనలను గుర్తించగలదు.
ముగింపు
మీరు ప్రొడక్షన్ కోసం AI ఏజెంట్లను నిర్మిస్తుంటే, లేయర్డ్ ఎవాల్యుయేషన్ హార్నెస్ అనేది ఐచ్ఛికం కాదు; అది పునాది వంటిది. సమగ్రమైన టెస్టింగ్ కోసం ఖర్చును ముందే కేటాయించడం ద్వారా—ప్రతి రన్కు $0.03, ప్రతి సూట్కు పదకొండు నిమిషాలు—యూనిట్ టెస్ట్లు గుర్తించలేని నిశ్శబ్ద వైఫల్యాల నుండి మీరు రక్షణ పొందవచ్చు.
