20 ఏళ్ల సపోర్ట్ టికెట్ల ముందు నేను ఒక AI ఏజెంట్ను ఉంచాను
మా వద్ద పది లక్షల టికెట్లు ఉన్న ఒక హెల్ప్డెస్క్ సిస్టమ్ ఉంది. మా వద్ద 2,400 మాన్యువల్స్ మరియు రెండు భారీ కోడ్బేస్లు ఉన్నాయి.
ఒక డెవలపర్ గతంలో మేము ఏదైనా సమస్యను పరిష్కరించామా అని అడిగితే, దానికి సమాధానం ఎప్పుడూ 'అవును' అనే ఉంటుంది. కానీ ఆ డేటా ఎక్కడో లోతుగా దాగి ఉంది. సీనియర్ సిబ్బంది వెతకడానికి గంటల సమయం వృథా అవుతోంది. జూనియర్లు వారాల సమయం వృథా చేస్తున్నారు.
ఈ మొత్తం డేటా ముందు పనిచేయడానికి నేను ఒక AI ఏజెంట్ను రూపొందించాను. ఇది ఇప్పుడు ప్రొడక్షన్లో ఉంది. అసలు ఏం జరిగిందో ఇక్కడ చూడండి.
డేటా సేకరించడం కష్టమైన పని కాదు. ఎక్కడ వెతకాలో తెలియడమే కష్టం. ఏజెంట్ సొంతంగా విషయాలను సృష్టించకుండా (hallucinations) ఆపడం ఇంకా కష్టమైన పని.
ఇది ఎలా పనిచేస్తుంది:
- నేచురల్ లాంగ్వేజ్ ఇన్పుట్తో ఒక ఏజెంట్.
- ఇది హెల్ప్డెస్క్ డేటాబేస్, ప్రాజెక్ట్ టూల్స్, GitLab మరియు SVNలను చదువుతుంది.
- ఇది మాన్యువల్స్ మరియు పాత టికెట్లపై వెక్టార్ సెర్చ్లను నిర్వహిస్తుంది.
- ఇది .xlsx లేదా .docx వంటి ఫైళ్లను జనరేట్ చేయగలదు.
- ఇది స్వయంగా టూల్స్ను ఎంచుకుని, వాటిని సమాంతరంగా (in parallel) రన్ చేస్తుంది.
దీని ఆర్కిటెక్చర్ చాలా సరళంగా ఉంటుంది. ఇది మెయిన్ యాప్కు భిన్నంగా ఒక Node కంటైనర్లో నడుస్తుంది. ఫెయిల్యూర్ ఐసోలేషన్ (failure isolation) కోసం నేను ఇలా చేశాను. ఒకవేళ AI విఫలమైనా, హెల్ప్డెస్క్ పని చేయడం ఆగదు.
ప్రాంప్ట్ (prompt) గురించి నేర్చుకున్న అతిపెద్ద పాఠం ఏమిటంటే, నేను మొదట ఒక భారీ టెక్స్ట్ బ్లాక్తో ప్రారంభించాను. అది 40,000 టోకెన్ల పరిమాణంలో ఉండేది. దానిని నిర్వహించడం కష్టంగా ఉండేది మరియు ఏజెంట్ తన ఫోకస్ కోల్పోయేది.
నేను నా విధానాన్ని మార్చుకున్నాను. ప్రాంప్ట్ను చిన్న చిన్న స్కిల్ ఫైళ్లుగా విభజించాను.
- టికెట్ సెర్చ్ కోసం ఒక ఫైల్.
- కోడ్ హిస్టరీ కోసం మరొకటి.
- ప్రాజెక్ట్ మేనేజ్మెంట్ కోసం మూడవది.
మెయిన్ ప్రాంప్ట్ ఒక రూటర్ (router) లాగా పనిచేస్తుంది. దానికి అవసరమైనప్పుడు మాత్రమే అది ఒక స్కిల్ను లోడ్ చేస్తుంది. దీనివల్ల ప్రతి రిక్వెస్ట్కు అవసరమయ్యే టోకెన్ల సంఖ్య 40,000 నుండి 8,000కి తగ్గింది. దీనివల్ల ఏజెంట్ తన పనిపై దృష్టి పెడుతుంది మరియు కోడ్ను అప్డేట్ చేయడం సులభం అవుతుంది.
నేను యూజర్ ప్రొఫైల్స్ను కూడా జోడించాను. ఒక డెవలపర్కు కోడ్ పాత్లు (code paths) అందుతాయి. ఒక ప్రాజెక్ట్ మేనేజర్కు స్టేటస్ సమ్మరీలు అందుతాయి. ఎవరෙක් అడుగుతున్నారో చెప్పాల్సిన అవసరం లేకుండానే ఏజెంట్కు తెలుస్తుంది.
ఇది పరిపూర్ణంగా లేదు. మేము కొన్ని నిజమైన సమస్యలను ఎదుర్కొన్నాము:
- Hallucinations: ఏజెంట్ తప్పుడు URLలను సృష్టించింది. పరిష్కారం: ఖచ్చితమైన ప్యాటర్న్లను నిర్ణయించడం లేదా లుకప్ (lookup) చేయమని ఆదేశించడం.
- Memory loss: సుదీర్ఘమైన చాట్లలో ఏజెంట్ నియమాలను మర్చిపోయింది. పరిష్కారం: ప్రతి టర్న్లో ఒక స్ట్రక్చర్డ్ టు-డూ లిస్ట్ను (structured to-do list) జోడించడం.
- Infinite loops: ఏజెంట్ మరీ ఎక్కువ సార్లు టూల్ కాల్స్ చేసింది. పరిష్కారం: ప్రతి రిక్వెస్ట్కు కఠినమైన బడ్జెట్ను నిర్ణయించడం.
- Safety: వినియోగదారులు దానిని మోసం చేయడానికి ప్రయత్నించారు. పరిష్కారం: భద్రత కోసం కేవలం ప్రాంప్ట్లపై ఆధారపడకండి. మీ ఇన్ఫ్రాస్ట్రక్చర్లో రీడ్-ఓన్లీ (read-only) డేటాబేస్ క్రెడెన్షియల్స్ను ఉపయోగించండి.
అసలైన పని వారానికోసారి చేసే లూప్ (weekly loop). నేను లాగ్లను చదువుతాను. సెషన్లకు స్కోర్ ఇస్తాను. స్కిల్స్ను మెరుగుపరుస్తాను. ప్రొఫైల్స్ను అప్డేట్ చేస్తాను.
మీరు ఈ లూప్ను వదిలేస్తే, అది కేవలం ఒక డెమో మాత్రమే. మీరు దీన్ని చేస్తే, అది ఒక ప్రొడక్ట్ అవుతుంది.
లక్ష్యం కేవలం వేగవంతమైన సమాధానాలు ఇవ్వడం మాత్రమే కాదు. సంస్థ యొక్క జ్ఞానాన్ని (institutional knowledge) భద్రపరచడం కూడా లక్ష్యం. ఒక వ్యక్తి సంస్థ నుండి వెళ్ళిపోయినా, వారి జ్ఞానం ట్రాన్స్క్రిప్ట్లలో ఉండిపోతుంది.
మీ బిల్డ్ కోసం సమ్మరీ:
- మీ స్వంత హిస్టరీపై RAGతో ప్రారంభించండి.
- ఒక పెద్ద ప్రాంప్ట్కు బదులుగా లేజీ-లోడెడ్ (lazy-loaded) స్కిల్ ఫైళ్లను ఉపయోగించండి.
- వ్యక్తిగతీకరించిన కాంటెక్స్ట్ కోసం యూజర్ ప్రొఫైల్స్ను ఉపయోగించండి.
- AIని దాని స్వంత కంటైనర్లో వేరుగా ఉంచండి.
- భద్రతను సూచనల ద్వారా కాకుండా ఇన్ఫ్రాస్ట్రక్చర్ ద్వారా అమలు చేయండి.
- ప్రతి వారం మీ లాగ్లను చదవండి.
Optional learning community: https://t.me/GyaanSetuAi
