(ఈ పాఠాన్ని వీక్షించడానికి పై చిత్రం పై క్లిక్ చేయండి)
మీరు నిర్మిస్తున్న AI ఏజెంట్ కోసం అప్లికేషన్ యొక్క సంకీర్ణతను అర్థం చేసుకోవడం ఒక నమ్మకమైన ఏజెంట్ తయారీలో ముఖ్యం. ప్రాంప్ట్ ఇంజినీరింగ్ కంటే మించిన సంక్లిష్ట వైవిధ్యాల పరిష్కారానికి సమర్ధవంతంగా సమాచారాన్ని నిర్వహించే AI ఏజెంట్లను నిర్మించడం అవసరం.
ఈ పాఠంలో, మనం సందర్భ ఇంజినీరింగ్ అంటే ఏమిటి మరియు AI ఏజెంట్లను నిర్మించడంలో దాని పాత్ర ఏమిటి అనేది చూసుకోబోతున్నాం.
ఈ పాఠం అందించే విషయాలు:
• సందర్భ ఇంజినీరింగ్ అంటే ఏంటి మరియు అది ప్రాంప్ట్ ఇంజినీరింగ్ నుండి ఎందుకు భిన్నంగా ఉంటుందో.
• సమర్థవంతమైన సందర్భ ఇంజినీరింగ్ కోసం వ్యూహాలు, సమాచారాన్ని ఎలా రాయాలో, ఎంపిక చేసుకోవాలో, కుదించాలో, & వేరుచేసుకోవాలో.
• సాధారణ సందర్భ వైఫల్యాలు ఏవో వాటిని ఎలా సరిచేయాలో.
ఈ పాఠం పూర్తి చేసిన తర్వాత, మీరు ఈ క్రింది విషయాలు అర్థమవుతాయి:
• సందర్భ ఇంజినీరింగ్ ని నిర్వచించడం మరియు ప్రాంప్ట్ ఇంజినీరింగ్ నుండి ఎలా వేరుచేయాలో.
• పెద్ద భాషా మోడల్ (LLM) అప్లికేషన్లలో సందర్భ ముఖ్య భాగాలను గుర్తించడం.
• ఏజెంట్ పనితీరు మెరుగుపర్చేందుకు సందర్భాన్ని రాయడం, ఎంపిక చేయడం, కుదించడం, వేరుచేయడం వ్యూహాలను వర్తించడం.
• సందర్భంలో సాధారణ వైఫల్యాలను గుర్తించడం (పాయిజనింగ్, విఘాతం, గందరగోళం, మరియు ఐక్యవిపరిత పరిస్థితులు) మరియు వాటి నివారణ విధానాలను అమలు చేయడం.
AI ఏజెంట్ల కోసం, సందర్భం ఏజెంట్ ఏ చర్యలు చేపట్టాలో నిర్ణయించడంలో ప్రధాన భూమిక పోషిస్తుంది. సందర్భ ఇంజినీరింగ్ అంటే AI ఏజెంట్ పనిని పూర్తి చేయడానికి సరైన సమాచారం ఉన్నదో లేదో చూసుకోవడం. సందర్భ విండో పరిమితమైనది కాబట్టి, ఏజెంట్ నిర్మాతలుగా మనం ఈ విండోలో సమాచారాన్ని జోడించడం, తొలగించడం, మరియు సాంద్రీకరించడం వంటి వ్యవస్థలను మరియు ప్రక్రియలను రూపొందించాలి.
ప్రాంప్ట్ ఇంజినీరింగ్ ఒక స్టాటిక్ నియంత్రిత సూచనల సెట్ పై ఆధారపడి AI ఏజెంట్లను మినహాయింపుగా నియంత్రిస్తుంది. సందర్భ ఇంజినీరింగ్ అంటే, ప్రారంభ ప్రాంప్ట్ సహా డైనమిక్ సెట్ సమాచారాన్ని నిర్వహించడం, తద్వారా AI ఏజెంట్ మనం కావలసిన సమాచారాన్ని కలిగి ఉంటుందో చూసుకోవడం. ప్రధాన ధ్యేయం ఈ ప్రక్రియను పునరావృతం చేయదగిన మరియు నమ్మకాలపరమైనదిగా చేయడం.
సందర్భం ఒకటేనని కాదు అనేది గుర్తుంచుకోవడం అవసరం. AI ఏజెంట్ కావలసిన సమాచారం వివిధ వనరుల నుండి వస్తూ ఉంటుంది, మరియు ఏజెంట్ ఆ వనరులకు ప్రాప్తి కలిగి ఉండడం మన బాధ్యత:
ఒక AI ఏజెంట్ నిర్వహించాల్సిన సందర్భ రకాలు:
• సూచనలు: ఇవి ఏజెంట్ ‘నియమాలు’ లాంటివి – ప్రాంప్ట్లు, సిస్టమ్ సందేశాలు, కొద్దిగా ఉదాహరణలు (AI ఎలా చేయాలో చూపించడం), ఉపయోగించగల టూల్ల వివరణలు. ఇది ప్రాంప్ట్ ఇంజినీరింగ్ మరియు సందర్భ ఇంజినీరింగ్ సంకలనం.
• జ్ఞానం: వాస్తవాలు, డేటాబేస్ల నుండి తీసుకున్న సమాచారమో, లేదా ఏజెంట్ సేకరించిన దీర్ఘకాలిక జ్ఞాపకాలు. రిట్రీవల్ ఆగుమెంటెడ్ జనరేషన్ (RAG) సిస్టమ్ అవసరమైతే ఇంటిగ్రేట్ చేయడం.
• సాధనాలు: బాహ్య ఫంక్షన్లు, APIs మరియు MCP సర్వర్లు, మరియు వాటి ద్వారా పొందిన ఫలితాల నిర్వచనలు.
• మాట్లాడే చరిత్ర: యూజర్ తో కొనసాగుతున్న సంభాషణ. కాలక్రమేణా ఈ సంభాషణలు పెద్దవిగా మరియు సంక్లిష్టంగా మారతాయి, కాబట్టి అవి సందర్భ విండోలో స్థలాన్ని ఆక్రమిస్తాయి.
• యూజర్ అభిరుచులు: యూజర్ ఇష్టాలు, అపసంధులు వంటి సమాచారం సమయం గడిచేక అందించినది. దీన్ని భవిష్యత్తులో కీలక నిర్ణయాలకు నిల్వ చేసి పిలవవచ్చు.
మంచి సందర్భ ఇంజినీరింగ్ మంచి ప్రణాళికతో మొదలు అవుతుంది. కింది విధంగా మీరు సందర్భ ఇంజినీరింగ్ కి సంబంధించిన ఆలోచనను ప్రారంభించవచ్చు:
ప్రణాళిక ముఖ్యం, కానీ సమాచారము ఏజెంట్ సందర్భ విండోలో ప్రవహిస్తున్నప్పుడు, దీన్ని నిర్వహించడానికి ప్రాక్టికల్ వ్యూహాల అవసరం ఉంటుంది:
కొంత సమాచారం స్వయంచాలకంగా సందర్భ విండోలో చేరుతుంది, కానీ సందర్భ ఇంజినీరింగ్ దీనిపై మరింత చురుకైన నియంత్రణను అవసరం పడుతుంది, ఇది కొన్ని వ్యూహాల ద్వారా నిర్వహించవచ్చు:
ఏజెంట్ స్క్రాచ్ప్యాడ్ ఇది ఏజెంట్ ఒక సెషన్ సమయంలో సంబంధిత సమాచారాన్ని నోట్స్ గా తీసుకునేందుకు అనుమతిస్తుంది. ఇది సందర్భ విండో వెలుపల ఫైలు లేదా రన్టైమ్ ఆబ్జెక్ట్ గా ఉండాలి, ఎక్కడ ఏజెంట్ అవసరమైతే తిరిగి పొందచ్చు.
జ్ఞాపకాలు స్క్రాచ్ప్యాడ్లతో పోల్చితే, జ్ఞాపకాలు అనేక సెషన్ల్లో సంభంధిత సమాచారాన్ని నిల్వ చేసి తిరిగి పొందేందుకు ప్రేరేపిస్తాయి. దీని లో భాగంగా సమారాంశాలు, యూజర్ అభిరుచులు, అభిప్రాయాలు ఉంటాయి.
సందర్భం కుదింపు సందర్భ విండో పెరిగిపోయే సమయంలో సమారాంశం మరియు ట్రిమ్మింగ్ వంటి సాంకేతికతలు ఉపయోగించి కుదించడం చేయవచ్చు. అనవసర సమాచారం తొలగించి మాత్రమే ప్రాముఖ్యమైన సమాచారాన్ని ఉంచాలి.
మల్టీ-ఏజెంట్ సిస్టమ్స్ మల్టీ-ఏజెంట్ సిస్టమ్ రూపకల్పన సందర్భ ఇంజినీరింగ్ రూపం, ఎందుకంటే ప్రతి ఏజెంట్ కు తన కొత్త సందర్భ విండో ఉంటుంది. ఆ సందర్భం ఎలా పంచుకోవాలో కూడా ప్రణాళిక చేయాలి.
సాండ్బాక్స్ వాతావరణాలు ఏజెంట్ కొంత కోడ్ రన్ చెయ్యాలనుకొంటే లేదా పెద్ద పరిమాణంలో సమాచారాన్ని ప్రాసెస్ చేయాలనుకొంటే, ఇది ఇన్పుట్ టోకెన్ల పెద్ద ఎత్తున వాడుతుంది. అందువలన, ఈ సమాచారం మొత్తం సందర్భ విండోలో నిల్వ చేయటం కన్నా, ఏజెంట్ ఒక సాండ్బాక్స్ వాతావరణాన్ని ఉపయోగించి కోడ్ రన్ చేసి ఫలితాలు మాత్రమే చదువుతుంది.
రన్టైమ్ స్టేట్ ఆబ్జెక్ట్స్ ఈ సాంకేతిక విధానం ద్వారా ఏజెంట్ కి అవసరమైన కొన్ని సమాచారాన్ని ప్రత్యేక కంటెయినర్లలో నిల్వ చేస్తారు. సంక్లిష్ట పనులకు, ఏజెంట్ ప్రతి ఉపపని ఫలితాలను దశల వారీగా నిల్వ చేసి, సంబంధిత ఉపపనికి మాత్రమే సందర్భం ఉంచవచ్చు.
ఈ వ్యూహాలను వర్తించిన తర్వాత, తదుపరి మోడల్ కాల్ ఏ సమాచారాన్ని అందుకున్నదో తనిఖీ చేయడం మంచిది. ఒక ఉపయోగకరమైన డీబగ్గింగ్ ప్రశ్న:
ఏజెంట్ చాలా సందర్భం లోడ్ చేశాడా, తప్పు సందర్భాన్ని తీసుకున్నాడా, లేదా అవసరమైన సందర్భాన్ని మిస్ అయ్యాడా?
మీరు ఆ ప్రశ్నకు సమాధానం ఇవ్వాలంటే రా ప్రాంప్ట్లు, టూల్ అవుట్పుట్లు లేదా జ్ఞాపక 내용을 లాగ్ చేయాల్సిన అవసరం లేదు. ప్రొడక్షన్లో, చిన్న సందర్భ పరిశీలన రికార్డులు ఉపయోగించడం మంచిది, వాటిలో కౌంట్లు, ఐడీలు, హాష్లు, మరియు పాలసీ లేబుల్స్ ఉంటాయి:
లక్ష్యం మరింత సందర్భం నిల్వ చేయటం కాదు. ఒక డెవలపర్ ఏ సందర్భ వ్యూహం అమలు అయ్యిందో మరియు అది తదుపరి మోడల్ కాల్ ని ఇష్టమైన విధంగా మార్చిందో తెలియడానికి సరిపడా సాక్ష్యాలను ఉంచడమే లక్ష్యం.
మనం ఒక AI ఏజెంట్ ను “నేనికోసం పారిస్ కు ట్రిప్ బుక్ చేయండి.” అని అడగదలిచినట్టు అనుకుందాం.
• కేవలం ప్రాంప్ట్ ఇంజినీరింగ్ ఉపయోగించే సాదారణ ఏజెంట్ “సరే, మీరు ఎప్పుడు పారిస్ కు వెళ్లాలనుకుంటున్నారు?” అని మాత్రమే స్పందించవచ్చు. దీనికి యూజర్ అడిగిన సమయానికి మీరు అడిగిన ప్రత్యక్ష ప్రశ్నను ప్రాసెస్ చేస్తుంది.
• ఈ తరహా సందర్భ ఇంజినీరింగ్ వ్యూహాలు ఉపయోగించే ఏజెంట్ మాత్రం బాగా వేరు. ప్రతిస్పందించే ముందు, దాని సిస్టమ్ :
◦ తిరిగి రియల్-టైమ్ డేటా తీసుకొని మీ క్యాలెండర్ లో ఖాళీ తేదీలను తనిఖీ చేస్తుంది.
◦ గత ప్రయాణ అభిరుచులు (దీర్ఘకాలిక జ్ఞాపకాలు) గుర్తించడం - మీ ఇష్టమైన ఎయిర్లైన్, బడ్జెట్, లేదా నేరుగా ఫ్లైట్లను ఇష్టపడటం.
◦ ఫ్లైట్ మరియు హోటల్ బుకింగ్ కొరకు ఉపయోగించదగిన టూల్స్ను గుర్తించడం.
ఏంటి ఇది: LLM ద్వారా సృష్టించబడిన తప్పు సమాచారము (హల్యూసినేషన్) లేదా పొరపాటు సందర్భంలోకి చేర్చబడినప్పుడు, అది పునరావృతంగా సూచించబడుతూ ఏజెంట్ అసాధ్యమైన లక్ష్యాలను అనుసరించి లేదా అర్థరహిత వ్యూహాలను తీసుకోవచ్చు.
చేయవలసినది: సందర్భ ధృవీకరణ మరియు ఓడించుట అమలు చేయండి. దీర్ఘకాలిక జ్ఞాపకంలో చేరే ముందు సమాచారాన్ని ధృవీకరించండి. పాయిజనింగ్ గుర్తించినప్పుడు కొత్త సందర్భ థ్రెడ్లను ప్రారంభించి చెడు సమాచార వ్యాప్తిని నివారించండి.
ప్రయాణ బుకింగ్ ఉదాహరణ: మీ ఏజెంట్ ఒక చిన్న స్థానిక ఎయిర్పోర్ట్ నుంచి దూర అంతర్జాతీయ నగరానికి నేరుగా విమానం ఉన్నట్టు హల్యూసినేట్ చేస్తుంది, కానీ అత్యంత నిజంగా అంతర్జాతీయ విమానాలు అందుబాటులో లేవు. ఈ తప్పు వివరంబు సందర్భంలో నిల్వ చేసుకోబడుతుంది. తర్వాత మీరు బుకింగ్ అడిగినప్పుడు, ఆ అసాధ్య మార్గం కోసం టిక్కెట్ల కోసం ప్రయత్నిస్తూ తప్పులు వచ్చేలా చేస్తుంది.
పరిష్కారం: ఏజెంట్ సంభందిత విమానాలు నిజంగా ఉన్నాయా, మార్గాలు సరైనదా అన్నదానిని రియల్-టైమ్ API తో ధృవీకరించేందుకు ఒక దశను అమలుపరచండి ముందు ఆ విమాన వివరాలను ఏజెంట్ పనిచేసే సందర్భంలో చేర్చే ముందు. ధృవీకరణ విఫలమైతే, పొరపాటు సమాచారం ‘ఓడింపుగా’ పరిగణించాలి మరియు మరింత ఉపయోగించబరాదు.
ఏంటి ఇది: సందర్భం అంత పెద్దదైపోయినప్పుడు, మోడల్ గత చరిత్రను అధికంగా పరిగణించి, ట్రైనింగ్ సమయంలో నేర్చుకున్న విషయాలను ఉపయోగించకుండా, పునరావృత లేదా అసహాయక చర్యలు తీసుకుంటుంది. చాలా చిన్న మోడల్స్ కూడా సందర్భ విండో నిండక ముందు తప్పులు చేసే అవకాశం ఉంది.
చేయవలసినది: సందర్భ సమారాంశం ఉపయోగించండి. సమయం సమయంగా సేకరించిన సమాచారాన్ని చిన్న సమారాంశాలుగా కుదించి, అవసరమైన వివరాలను ఉంచి, పునరావృత చరిత్రని తొలగించండి. ఇది దృష్టిని “రిసెట్” చేయడంలో సహాయపడుతుంది.
ప్రయాణ బుకింగ్ ఉదాహరణ: మీరు చాలా కాలంగా అనేక కలల ప్రయాణ స్థలాలపై సంభాషణ జరుపుతున్నారు, రెండు సంవత్సరాల క్రితం మీ బ్యాక్ప్యాకింగ్ ట్రిప్ యొక్క వివరాలను కూడా వ్రాశారు. మీరు “తరువాతి నెలలో సస్తా విమానం కనుగొనండి” అని అడిగినప్పుడు, ఏజెంట్ పాత, సంబంధంలేని విషయాలలో మునిగిపోతుంది మరియు మీ బ్యాక్ప్యాకింగ్ పరికరాలు లేదా గత యాత్రల గురించి అడుగుతూనే ఉంటూ ప్రస్తుత అభ్యర్థనని పట్టించుకోదు.
పరిష్కారం: కొన్ని చాన్స్లు తర్వాత లేదా సందర్భం చాలా పెద్దదైతే, ఏజెంట్ సమకాలీన మరియు సంబంధిత సంభాషణ భాగాల సమారాంశాన్ని తయారు చేయాలి — మీ ప్రస్తుత ప్రయాణ తేది మరియు గమ్యస్థానం పైన దృష్టి పెట్టి — ఆ సమారాంశాన్ని తదుపరి LLM కాల్ కోసం ఉపయోగించి తక్కువ సంబంధంలేని చారిత్రక చాట్ ను తొలగించాలి.
ఏంటి ఇది: అవసరంలేని సందర్భం, భాగంగా చాలా టూల్స్ అందుబాటులో ఉండటం వల్ల మోడల్ చెడైన ప్రతిస్పందనలను ప్రొడ్యూస్ చేయడం లేదా సంబంధంలేని టూల్స్ పిలవడం. చిన్న మోడల్స్ దీనికి ఎక్కువ సార్లు గురవుతాయి.
చేయవలసినది: RAG సాంకేతికతలు ఉపయోగించి టూల్ లోడ్ అవుట్ నిర్వహణ చేయండి. టూల్ వివరణలను వెక్టర్ డేటాబేస్లో నిల్వ చేసి, ఒక నిర్దిష్ట పనికి సంబంధించన టూల్స్ను మాత్రమే ఎంచుకోండి. పరిశోధనలు 30 కంటే తక్కువగా టూల్ ఎంపికలను సూచిస్తున్నాయి.
ప్రయాణ బుకింగ్ ఉదాహరణ: మీ ఏజెంట్ దగ్గర డజన్ల కొద్దీ టూల్స్ ఉన్నాయి: book_flight, book_hotel, rent_car, find_tours, currency_converter, weather_forecast, restaurant_reservations మొదలైనవి. మీరు అడుగుతారు, “పారిస్ లో తిరగడానికి ఉత్తమ మార్గం ఏది?” టూల్స్ చాలా ఉండటంతో ఏజెంట్ గందరగోళం చెంది పారిస్ లో ఫ్లైట్ బుక్ చేసే ప్రయత్నం లేదా మీరు ప్రజా రవాణాను ఇష్టపడినా కూడా కార్ రెంట్ చేయడం అనుకుంటుంది, ఎందుకంటే టూల్ వివరణలు ఒకరితో ఒకరు చిరుగుండాయి లేదా ఉత్తమ టూల్ గుర్తించలేకపోయింది.
పరిష్కారం: టూల్ వివరణలపై RAGని ఉపయోగించండి. మీరు “పారిస్ లో తిరగడానికి” అడిగినప్పుడు, సిస్టమ్ మీ ప్రశ్నకు సంబంధించి rent_car లేదా public_transport_info లాంటి సంబంధిత టూల్స్ మాత్రమే డైనమిక్గా తీసుకువస్తుంది, మరింత సారాంశం కలిగిన “లోడ్ అవుట్” ని LLM కి అందిస్తుంది.
ఎంతిది: సందర్భంలో విరుద్ధమైన సమాచారం ఉండటం వల్ల అసమంజస reasoning లేదా చెడైన తుది ప్రతిస్పందనలు రావడం. ఇది తరచుగా వివరాలు దశల వారీగా అందినపుడు మరియు మొదటి తప్పు ఊహాగానాలు సందర్భంలో మిగిలిపోయినపుడు జరగుతుంది.
చేయవలసినది: సందర్భ pruning మరియు ఆఫ్లోడ్ ఉపయోగించండి. పాత లేదా విరుద్ధ సమాచారాన్ని తొలగించడం pruning అర్థం. ఆఫ్లోడ్ అంటే ప్రధాన్ సందర్భాన్ని భరించకుండా వివరాలు ప్రాసెస్ చేయడానికి మోడల్ కి వేరే “స్క్రాచ్ప్యాడ్” కూల ప్రసారం ఇచ్చే విధానం.
ప్రయాణం బుకింగ్ ఉదాహరణ: మీరు మొదట మీ ఏజెంట్కు, “నేను ఎకానమీ తరగతి ప్రయాణించాలనుకుంటున్నాను.” అని చెప్పుతారు. సంభాషణలో తరువాత, మీరు మనసు మార్చి అంటారు, “నిజానికి, ఈ ప్రయాణం కోసం, బిజినెస్ క్లాస్లో వెళ్లుదాం.” ఈ రెండు సూచనలు సన్నివేశంలో ఉంటే, ఏజెంట్ కి విరుద్ధమైన శోధన ఫలితాలు రావచ్చు లేదా ఏ ప్రాధాన్యత ఇవ్వాలి అనేదానిపై గందరగోళం ఏర్పడవచ్చు.
పరిష్కారం: సందర్భం సడలింపు (context pruning) ను అమలు చేయండి. కొత్త సూచన పాతదనికి విరుద్ధంగా ఉంటే, పాత సూచనను తొలగించాలి లేదా స్పష్టంగా ప్రతిష్టించాలి. లేకపోతే, ఏజెంట్ ఒక స్క్రాచ్ప్యాడ్ ఉపయోగించి విరుద్ధమైన అభిరుచులను సరిపోల్చుకుని నిర్ణయం తీసుకోవచ్చు, దీంతో కేవలం తుది, సुसంస్కృత సూచన తన చర్యలలో మార్గదర్శకంగా ఉంటుంది.
ఇతర అభ్యాసకులతో కలుసుకోవడానికి, కార్యాలయ సమయాలకు హాజరు కావడానికి మరియు మీ AI ఏజెంట్ల ప్రశ్నలకు జవాబు పొందడానికి Microsoft Foundry Discord లో చేరండి.
అస్వీకరణ: ఈ పత్రం AI అనువాద సేవ Co-op Translator ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నిస్తున్నప్పటికీ, ఆటోమేటెడ్ అనువాదాలు తప్పులు లేదా అసమగ్రతలను కలిగి ఉండవచ్చు. దాని స్వదేశ భాషలో ఉన్న అసలు పత్రాన్ని అధికారం కలిగిన మూలంగా పరిగణించాలి. కీలకమైన సమాచారం కోసం, ప్రొఫెషనల్ మానవ అనువాదాన్ని సిఫారసు చేస్తాము. ఈ అనువాదం ఉపయోగం వల్ల కలిగే ఏవైనా అపార్థాలు లేదా తప్పుదారులు కోసం మేము బాధ్యత వహించము.