(اس سبق کی ویڈیو دیکھنے کے لیے اوپر دی گئی تصویر پر کلک کریں)
جس ایپلیکیشن کے لیے آپ AI ایجنٹ بنا رہے ہیں اس کی پیچیدگی کو سمجھنا ایک قابل اعتماد ایجنٹ بنانے کے لیے اہم ہے۔ ہمیں ایسے AI ایجنٹس بنانا ہوں گے جو معلومات کو مؤثر طریقے سے منظم کریں تاکہ پیچیدہ ضروریات کو پورا کیا جا سکے، جو صرف پرامپٹ انجینئرنگ سے آگے ہیں۔
اس سبق میں، ہم دیکھیں گے کہ کانٹیکسٹ انجینئرنگ کیا ہے اور AI ایجنٹس کی تعمیر میں اس کا کیا کردار ہے۔
اس سبق میں یہ چیزیں شامل ہوں گی:
• کانٹیکسٹ انجینئرنگ کیا ہے اور یہ پرامپٹ انجینئرنگ سے کیوں مختلف ہے۔
• موثر کانٹیکسٹ انجینئرنگ کی حکمت عملیاں، جن میں معلومات لکھنے، منتخب کرنے، کمپریس کرنے اور الگ کرنے کے طریقے شامل ہیں۔
• عام کانٹیکسٹ ناکامیاں جو آپ کے AI ایجنٹ کو متاثر کر سکتی ہیں اور انہیں کیسے درست کیا جائے۔
اس سبق کو مکمل کرنے کے بعد آپ یہ جان سکیں گے کہ:
• کانٹیکسٹ انجینئرنگ کی تعریف کیسے کریں اور اسے پرامپٹ انجینئرنگ سے کیسے مختلف سمجھیں۔
• بڑے زبان ماڈل (LLM) ایپلیکیشنز میں کانٹیکسٹ کے کلیدی اجزاء کی شناخت کریں۔
• کانٹیکسٹ لکھنے، منتخب کرنے، کمپریس کرنے اور الگ کرنے کی حکمت عملیوں کو نافذ کریں تاکہ ایجنٹ کی کارکردگی بہتر بنائی جا سکے۔
• عام کانٹیکسٹ ناکامیوں جیسے زہر آلودگی، منتشر ہونے، الجھن اور تصادم کو پہچانیں اور ان کے تدارک کے طریقے اپنائیں۔
AI ایجنٹس کے لیے، کانٹیکسٹ وہ چیز ہے جو AI ایجنٹ کی منصوبہ بندی کو مخصوص اقدامات کرنے پر مجبور کرتی ہے۔ کانٹیکسٹ انجینئرنگ اس بات کو یقینی بنانے کا عمل ہے کہ AI ایجنٹ کے پاس اگلے کام کے مرحلے کو مکمل کرنے کے لیے صحیح معلومات ہوں۔ کانٹیکسٹ ونڈو سائز میں محدود ہوتا ہے، اس لیے ایجنٹ بنانے والوں کے طور پر ہمیں ایسے نظام اور عمل بنانے ہوں گے جو کانٹیکسٹ ونڈو میں معلومات کو شامل کرنے، ہٹانے اور مختصر کرنے کا انتظام کریں۔
پرامپٹ انجینئرنگ ایک مخصوص، جامد ہدایات کے سیٹ پر مرکوز ہے تاکہ AI ایجنٹس کو مؤثر طریقے سے قواعد کے ذریعے رہنمائی کی جا سکے۔ کانٹیکسٹ انجینئرنگ ایک متحرک معلوماتی سیٹ کو منظم کرنے کا طریقہ ہے، جس میں ابتدائی پرامپٹ بھی شامل ہے، تاکہ AI ایجنٹ کے پاس وقت کے ساتھ وہ تمام معلومات موجود رہیں جو اسے درکار ہیں۔ کانٹیکسٹ انجینئرنگ کا بنیادی خیال اس عمل کو قابل تکرار اور قابل اعتماد بنانا ہے۔
یہ یاد رکھنا ضروری ہے کہ کانٹیکسٹ صرف ایک چیز نہیں ہے۔ وہ معلومات جو AI ایجنٹ کو چاہیے، مختلف ذرائع سے آ سکتی ہے اور یہ ہمارا کام ہے کہ ایجنٹ کو ان ذرائع تک رسائی مہیا کریں:
وہ کانٹیکسٹ کی اقسام جو AI ایجنٹ کو منظم کرنا پڑ سکتی ہیں، درج ذیل ہیں:
• ہدایات: یہ ایجنٹ کے “قواعد” جیسے ہوتے ہیں – پرامپٹس، نظامی پیغامات، چند نمونہ مثالیں (جس میں AI کو کچھ کرنے کا طریقہ دکھایا جاتا ہے)، اور آلات کی وضاحتیں جو وہ استعمال کر سکتا ہے۔ یہاں پرامپٹ انجینئرنگ اور کانٹیکسٹ انجینئرنگ دونوں کا ملاپ ہوتا ہے۔
• علم: حقائق، ڈیٹا بیس سے حاصل کردہ معلومات، یا طویل مدتی یادیں جو ایجنٹ نے جمع کی ہوتی ہیں۔ اس میں Retrieval Augmented Generation (RAG) سسٹم کو شامل کرنا بھی شامل ہے اگر ایجنٹ کو مختلف ذخیرہ معلومات یا ڈیٹا بیسز تک رسائی کی ضرورت ہو۔
• آلات: یہ بیرونی فنکشنز، APIs، اور MCP سرورز کی تعریفیں ہیں جنہیں ایجنٹ استعمال کر سکتا ہے، اور وہ فیڈبیک (نتائج) جو اسے استعمال کرنے سے ملتے ہیں۔
• گفتگو کی تاریخ: صارف کے ساتھ جاری مکالمہ۔ وقت کے ساتھ یہ بات چیت طویل اور پیچیدہ ہو جاتی ہے، جس کا اثر کانٹیکسٹ ونڈو کی جگہ پر پڑتا ہے۔
• صارف کی پسند: صارف کی پسندیدگی اور ناپسندیدگی سے متعلق معلومات جو وقت کے ساتھ سیکھی جاتی ہیں۔ یہ اہم فیصلے کرتے وقت صارف کی مدد کے لیے استعمال کی جا سکتی ہیں۔
اچھی کانٹیکسٹ انجینئرنگ اچھی منصوبہ بندی سے شروع ہوتی ہے۔ یہ ایک طریقہ ہے جو آپ کو کانٹیکسٹ انجینئرنگ کے تصور کو اپنانے میں مدد دے گا:
واضح نتائج کی تعریف کریں - AI ایجنٹس کو جو کام تفویض کیے جائیں گے ان کے نتائج واضح طور پر متعین ہونے چاہئیں۔ اس سوال کا جواب دیں - “جب AI ایجنٹ اپنا کام مکمل کر لے گا تو دنیا کیسی نظر آئے گی؟” دوسرے الفاظ میں، صارف کو AI ایجنٹ کے ساتھ بات چیت کے بعد کیا تبدیلی، معلومات یا جواب ملنا چاہیے۔
کانٹیکسٹ کا نقشہ بنائیں - جب آپ نے AI ایجنٹ کے نتائج متعین کر لیے، تو اس سوال کا جواب دیں کہ “AI ایجنٹ کو اس کام کو مکمل کرنے کے لیے کون سی معلومات چاہیے؟” اس طرح آپ جہاں یہ معلومات مل سکتی ہیں اس کا نقشہ بنا سکتے ہیں۔
کانٹیکسٹ پائپ لائنز بنائیں - اب جب آپ جان چکے ہیں کہ معلومات کہاں ہیں، آپ کو یہ سوال حل کرنا ہے کہ “ایجنٹ یہ معلومات کیسے حاصل کرے گا؟” یہ مختلف طریقوں سے ہو سکتا ہے، بشمول RAG، MCP سرورز اور دیگر آلات کا استعمال۔
منصوبہ بندی ضروری ہے لیکن جب معلومات ایجنٹ کے کانٹیکسٹ ونڈو میں آنا شروع ہو جائیں تو ہمیں اسے سنبھالنے کے عملی طریقے بھی درکار ہوتے ہیں:
اگرچہ کچھ معلومات خود بخود کانٹیکسٹ ونڈو میں شامل کردی جاتی ہے، کانٹیکسٹ انجینئرنگ اس معلومات کے زیادہ فعال انتظام کے بارے میں ہے، جسے چند حکمت عملیوں سے کیا جا سکتا ہے:
ایجنٹ اسکریچ پیڈ یہ ایک AI ایجنٹ کو اجازت دیتا ہے کہ وہ موجودہ کاموں اور صارف کے انٹریکشنز کے متعلق اہم معلومات کا نوٹس لے سکے، مخصوص سیشن کے دوران۔ یہ کانٹیکسٹ ونڈو کے باہر ایک فائل یا رن ٹائم آبجیکٹ میں ہونا چاہیے تاکہ ایجنٹ بعد میں ضرورت پڑنے پر اس کا حوالہ دے سکے۔
یادیں اسکریچ پیڈز ایک ہی سیشن کے کانٹیکسٹ ونڈو کے باہر معلومات کے انتظام کے لیے اچھے ہیں۔ یادیں ایجنٹس کو متعدد سیشنز میں متعلقہ معلومات ذخیرہ کرنے اور حاصل کرنے کی اجازت دیتی ہیں۔ اس میں خلاصے، صارف کی پسندیدگیاں اور مستقبل کی بہتری کے لیے فیڈبیک شامل ہو سکتا ہے۔
کانٹیکسٹ کو کمپریس کرنا جب کانٹیکسٹ ونڈو بڑھ جائے اور اس کی حد کے قریب ہو، تو خلاصے اور تراشنے جیسی تکنیکیں استعمال کی جا سکتی ہیں۔ اس میں صرف سب سے متعلقہ معلومات کو رکھنا یا پرانے پیغامات کو ہٹانا شامل ہے۔
ملٹی ایجنٹ سسٹمز ملٹی ایجنٹ سسٹمز کی ترقی کانٹیکسٹ انجینئرنگ کی ایک شکل ہے کیونکہ ہر ایجنٹ کا اپنا کانٹیکسٹ ونڈو ہوتا ہے۔ یہ منصوبہ بندی کرنا ضروری ہے کہ یہ کانٹیکسٹ کیسے شیئر اور دوسرے ایجنٹس کو منتقل کیا جائے۔
سینڈ باکس ماحول اگر ایجنٹ کو کوڈ چلانے یا دستاویز میں بڑی مقدار میں معلومات پراسیس کرنے کی ضرورت ہو، تو اس کے نتائج پراسیس کرنے کے لیے بہت سے ٹوکنز درکار ہوتے ہیں۔ اس کی بجائے کہ یہ سب کانٹیکسٹ ونڈو میں ذخیرہ کیا جائے، ایجنٹ ایک سینڈ باکس ماحول استعمال کر سکتا ہے جو اس کوڈ کو چلا سکے اور صرف نتائج اور دیگر متعلقہ معلومات کو پڑھ سکے۔
رن ٹائم اسٹیٹ آبجیکٹس یہ مخصوص معلومات کے کانٹینرز بنا کر اس وقت کے لیے کیا جاتا ہے جب ایجنٹ کو کسی خاص معلومات تک رسائی کی ضرورت ہو۔ ایک پیچیدہ کام کے لیے، یہ ایجنٹ کو ہر ذیلی مرحلے کے نتائج کو قدم بہ قدم ذخیرہ کرنے کی اجازت دیتا ہے، تاکہ کانٹیکسٹ صرف اس مخصوص ذیلی کام سے منسلک رہے۔
فرض کریں ہم ایک AI ایجنٹ چاہتے ہیں جو “میرے لیے پیرس کا سفر بک کرے۔”
• ایک سادہ ایجنٹ جو صرف پرامپٹ انجینئرنگ استعمال کرتا ہے، ممکن ہے بس جواب دے: “ٹھیک ہے، آپ پیرس جانا کب چاہتے ہیں؟” یہ صرف آپ کے براہ راست سوال پر اسی وقت عمل کرتا ہے جب صارف نے پوچھا۔
• ایک ایجنٹ جو کانٹیکسٹ انجینئرنگ کی حکمت عملی استعمال کرتا ہے، وہ اس سے کہیں زیادہ کرے گا۔ جواب دینے سے پہلے، اس نظام میں شامل ہو سکتا ہے:
◦ آپ کا کیلنڈر چیک کرے کہ کون سے دن دستیاب ہیں (حقیقی وقت کے ڈیٹا کی بازیافت)۔
◦ گزشتہ سفر کی ترجیحات یاد کرے (طویل مدتی یادداشت سے) جیسے آپ کی پسندیدہ ایئر لائن، بجٹ، یا آپ سیدھے فلائٹس کو ترجیح دیتے ہیں یا نہیں۔
◦ فلائٹ اور ہوٹل بکنگ کے دستیاب آلات کی شناخت کرے۔
یہ کیا ہے: جب ایک ہیلوسینیشن (LLM کی طرف سے پیدا شدہ غلط معلومات) یا کوئی غلطی کانٹیکسٹ میں داخل ہو جاتی ہے اور بار بار حوالہ دی جاتی ہے، جس کی وجہ سے ایجنٹ ناممکن اہداف کا پیچھا کرتا ہے یا بے معقول حکمت عملیاں بناتا ہے۔
کیا کریں: کانٹیکسٹ کی تصدیق اور قرنطینہ نافذ کریں۔ معلومات کو طویل مدتی یادداشت میں شامل کرنے سے پہلے اس کی تصدیق کریں۔ اگر ممکنہ زہر آلودگی کا پتہ چلے، تو خراب معلومات کے پھیلاؤ کو روکنے کے لیے نئے کانٹیکسٹ تھریڈز شروع کریں۔
سفر کی بکنگ کی مثال: آپ کا ایجنٹ ایک چھوٹے مقامی ہوائی اڈے سے ایک دور دراز بین الاقوامی شہر کے لیے براہ راست پرواز کے بارے میں ہیلوسینیٹ کرتا ہے، جو حقیقت میں بین الاقوامی پروازیں نہیں دیتا۔ یہ وجود نہ رکھنے والی پرواز کی تفصیل کانٹیکسٹ میں محفوظ ہو جاتی ہے۔ بعد میں، جب آپ ایجنٹ کو بک کرنے کے لیے کہتے ہیں، تو وہ اس ناممکن راستے کے لیے ٹکٹ تلاش کرنے کی کوشش کرتا رہتا ہے، جس سے بار بار غلطیاں ہوتی ہیں۔
حل: ایسا قدم نافذ کریں جو پرواز کے وجود اور راستوں کی اصلی وقت API سے تصدیق کرے پہلے کہ پرواز کی تفصیل ایجنٹ کے کام کے کانٹیکسٹ میں شامل کی جائے۔ اگر تصدیق ناکام ہو جائے، تو غلط معلومات کو “قرنطینہ” میں رکھا جائے اور مزید استعمال نہ کیا جائے۔
یہ کیا ہے: جب کانٹیکسٹ اتنا بڑا ہو جاتا ہے کہ ماڈل نے تربیت کے دوران سیکھی گئی باتوں کے بجائے جمع شدہ تاریخ پر بہت زیادہ توجہ دینا شروع کر دیا، جس کی وجہ سے بار بار یا غیر مددگار عمل ہوتے ہیں۔ ماڈلز کانٹیکسٹ ونڈو بھرنے سے پہلے ہی غلطیاں کرنے لگ سکتے ہیں۔
کیا کریں: کانٹیکسٹ کی سمری بنائیں۔ وقتاً فوقتاً جمع شدہ معلومات کو مختصر خلاصوں میں کمپریس کریں، اہم تفصیلات کو رکھتے ہوئے غیر ضروری تاریخ کو ہٹا دیں۔ اس سے فوکس کو “ری سیٹ” کرنے میں مدد ملتی ہے۔
سفر کی بکنگ کی مثال: آپ طویل عرصے سے مختلف خوابوں کی سفری منزلوں پر بات کر رہے ہیں، جس میں دو سال پہلے کیے گئے آپ کے بیگ پیکنگ کے سفر کی تفصیلی وضاحت بھی شامل ہے۔ جب آپ آخر کار کہتے ہیں، “مجھے اگلے مہینے کے لیے سستی فلائٹ ڈھوڈھو”، تو ایجنٹ پرانی، غیر متعلقہ تفصیلات میں الجھ جاتا ہے اور آپ کے بیگ پیکنگ گیئر یا گذشتہ سفرناموں کے بارے میں سوالات کرتا رہتا ہے، موجودہ درخواست کو نظرانداز کرتے ہوئے۔
حل: ایک مخصوص تعداد میں موڑ یا جب کانٹیکسٹ بہت بڑا ہو جائے، تو ایجنٹ کو چاہیے کہ وہ گفتگو کے تازہ ترین اور متعلقہ حصے کا خلاصہ بنائے – آپ کی موجودہ سفری تاریخوں اور منزل پر توجہ مرکوز کرتے ہوئے – اور اس مختصر سمری کو اگلے LLM کال کے لیے استعمال کرے، کم متعلقہ تاریخی بات چیت کو خارج کرتے ہوئے۔
یہ کیا ہے: جب غیر ضروری کانٹیکسٹ، اکثر بہت زیادہ دستیاب آلات کی شکل میں، ماڈل کو خراب جوابات دینے یا غیر متعلقہ آلات استعمال کرنے پر مجبور کر دیتا ہے۔ چھوٹے ماڈلز خاص طور پر اس کا شکار ہوتے ہیں۔
کیا کریں: RAG تکنیکوں کا استعمال کرتے ہوئے آلات کے لوڈ آؤٹ مینجمنٹ نافذ کریں۔ آلات کی وضاحتوں کو ویکٹر ڈیٹا بیس میں ذخیرہ کریں اور ہر مخصوص کام کے لیے صرف سب سے متعلقہ آلات منتخب کریں۔ تحقیق میں آلات کی تعداد کو 30 سے کم رکھنے کا مشورہ دیا گیا ہے۔
سفر کی بکنگ کی مثال: آپ کے ایجنٹ کے پاس ڈھیروں آلات تک رسائی ہے: book_flight، book_hotel، rent_car، find_tours، currency_converter، weather_forecast، restaurant_reservations، وغیرہ۔ آپ پوچھتے ہیں، “پیرس میں گھومنے کا بہترین طریقہ کیا ہے؟” آلات کی کثرت کی وجہ سے، ایجنٹ الجھ جاتا ہے اور پیرس کے اندر book_flight کال کرنے کی کوشش کرتا ہے، یا rent_car کہتا ہے حالانکہ آپ عوامی نقل و حمل کو ترجیح دیتے ہیں، کیونکہ آلات کی وضاحتیں ایک دوسرے سے اوورلیپ ہو سکتی ہیں یا وہ بہترین انتخاب نہیں کر پاتا۔
حل: آلات کی وضاحتوں پر RAG استعمال کریں۔ جب آپ پیرس میں گھومنے کے بارے میں پوچھتے ہیں، تو نظام آپ کی استفسار کے مطابق صرف سب سے متعلقہ آلات جیسے rent_car یا public_transport_info متحرک طور پر بازیافت کرتا ہے، اور LLM کو ایک مرکوز “لوڈ آؤٹ” پیش کرتا ہے۔
یہ کیا ہے: جب کانٹیکسٹ میں متصادم معلومات ہوتی ہے، جس کی وجہ سے نامناسب استدلال یا خراب حتمی جوابات نکلتے ہیں۔ یہ اکثر تب ہوتا ہے جب معلومات مرحلہ وار آتی ہیں، اور شروع میں دی گئی غلط مفروضات کانٹیکسٹ میں رہ جاتی ہیں۔
کیا کریں: کانٹیکسٹ کی چھانٹی اور آف لوڈنگ استعمال کریں۔ چھانٹی کا مطلب پرانی یا متصادم معلومات کو نئے تفصیلات کے آنے پر ہٹانا ہے۔ آف لوڈنگ ماڈل کو ایک الگ “اسکریچ پیڈ” ورک اسپیس دیتی ہے جہاں وہ معلومات کو پراسیس کر سکتا ہے بغیر مرکزی کانٹیکسٹ کو بھاری کیے۔
سفر کی بکنگ کی مثال: آپ شروع میں اپنے ایجنٹ کو بتاتے ہیں، “میں اکنامی کلاس کی فلائٹ چاہتا ہوں۔” بات چیت کے بعد آپ اپنا ارادہ بدل کر کہتے ہیں، “اصل میں، اس سفر کے لیے بزنس کلاس چلیں۔” اگر دونوں ہدایات کانٹیکسٹ میں موجود رہیں، تو ایجنٹ متصادم تلاش کے نتائج حاصل کر سکتا ہے یا یہ الجھن کا شکار ہو سکتا ہے کہ کون سی پسند کو ترجیح دے۔
حل: کانٹیکسٹ کی چھانٹی نافذ کریں۔ جب نئی ہدایت پرانی سے متصادم ہو، تو پرانی ہدایت کو ہٹا دیا جائے یا واضح طور پر کانٹیکسٹ میں اوور رائیڈ کیا جائے۔ متبادل طور پر، ایجنٹ ایک اسکریچ پیڈ استعمال کر کے متصادم ترجیحات کو حل کر سکتا ہے، تاکہ صرف آخری، مطابقت پذیر ہدایت اس کے عمل کی رہنمائی کرے۔
دیگر سیکھنے والوں سے ملاقات کے لیے، دفتر کے اوقات میں شمولیت کے لیے، اور اپنے AI ایجنٹس کے سوالات کے جوابات حاصل کرنے کے لیے Microsoft Foundry Discord میں شامل ہوں۔
تحفظِ رفتہ: یہ دستاویز AI ترجمہ خدمت Co-op Translator کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لئے پوری کوشش کرتے ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا نقصانات ہو سکتے ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی معتبر ماخذ سمجھی جائے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر عائد نہیں ہوگی۔