კონტექსტის ინჟინერია არის პრაქტიკა, რომლის ფარგლებშიც AI სისტემა ყოველ ნაბიჯზე წყვეტს, ინფორმაციის რომელი ნაწილები — ინსტრუქციები, წინა შეტყობინებები, მოძიებული დოკუმენტები, ხელსაწყოების შედეგები — მოთავსდეს მოდელის შეზღუდულ სამუშაო მეხსიერებაში, და რომელი უნდა შეჯამდეს, სხვაგან შეინახოს ან საერთოდ გამოტოვდეს. ის პრომფტ-ინჟინერიიდან გაიზარდა, თუმცა გაცილებით დიდ ამოცანას მოიცავს: ერთი ტექსტის ბლოკის დახვეწის ნაცვლად, ის მართავს ინფორმაციის მთელ, მუდმივად ცვალებად მასივს იმ დავალების განმავლობაში, რომელიც შეიძლება ბევრ ნაბიჯად გაგრძელდეს.

რა ითვლება კონტექსტად

ყველა ინფორმაცია, რომელსაც მოდელი პასუხის გაცემამდე ხედავს, კონტექსტს განეკუთვნება: სისტემური ინსტრუქციები, საუბრის დღემდელი ისტორია, ხელმისაწვდომი ხელსაწყოების აღწერები, მოძიების გზით მიღებული დოკუმენტები და უკვე გადადგმული ნაბიჯების შედეგები. ეს ყველაფერი ერთმანეთს ეჯიბრება მოდელის საკონტექსტო ფანჯარაში ადგილისთვის — ტოკენების იმ ფიქსირებულ რაოდენობაში, რომლის ერთდროულად დამუშავებაც მოდელს შეუძლია.

ერთი შეკითხვა-პასუხის დროს ყველაფრის მოთავსება მარტივია. პრობლემა ჩნდება მაშინ, როცა საქმე ეხება AI აგენტებს, რომლებიც მიმდევრობით ბევრ ნაბიჯს დგამენ: ყოველი ხელსაწყოს გამოძახება, ფაილის წაკითხვა თუ ძიების შედეგი ტოკენებს მატებს, და გარკვეულ ეტაპზე ფანჯარა ივსება — ან, კიდევ უარესი, ივსება მოძველებული, გამეორებადი ან ურთიერთსაწინააღმდეგო ინფორმაციით.

ოთხი მიდგომა: ჩაწერა, შერჩევა, შეკუმშვა, იზოლაცია

2025 წელს LangChain-ის ინჟინრების ფართოდ წაკითხულმა სტატიამ ეს პრაქტიკა ოთხ განმეორებად მოქმედებად დაშალა. ჩაწერა ნიშნავს ინფორმაციის შენახვას აქტიური კონტექსტის გარეთ — სამუშაო ფაილში ან მეხსიერების საცავში — რათა საჭიროებისამებრ მოგვიანებით დაბრუნდეს, და არა მუდმივად ეკავოს ადგილი. შერჩევა ნიშნავს, რომ კონკრეტულ ნაბიჯზე უკან მოიტანო მხოლოდ ის ნაწილი, რომელიც რეალურად სჭირდება, და არა ყველაფერი წინასწარ ჩატვირთო. შეკუმშვა ნიშნავს მასალის შეჯამებას ან შემოკლებას მას შემდეგ, რაც მისი სრული დეტალი საჭირო აღარ არის — ძირითადი აზრი შენარჩუნდეს, ტოკენები კი გათავისუფლდეს. იზოლაცია კი დიდი დავალების დაყოფას ნიშნავს რამდენიმე ვიწრო-ფოკუსირებულ აგენტს ან სენდბოქსს შორის, თითოეული საკუთარი, დავიწროებული კონტექსტით მუშაობს, რათა ერთი აგენტის „უწესრიგობამ“ მეორეს არ შეუშალოს ხელი.

Anthropic-ის საკუთარმა ინჟინერიულმა სახელმძღვანელომ, გამოქვეყნებულმა დაახლოებით იმავე პერიოდში, ეს იდეები საკუთარ აგენტების შემუშავების პრაქტიკაში კონკრეტული მაგალითებით აღწერა: აგენტები, რომლებიც მუდმივ ჩანაწერებს ფაილში წერენ, ვიდრე ყველაფერს მეხსიერებაში ინახავენ; „კომპაქტირება“, რომელიც ხანგრძლივ საუბარს კონტექსტის ლიმიტამდე მისვლამდე აჯამებს; და ქვე-აგენტები, რომლებიც კოორდინატორ აგენტს რამდენიმე ათასი ტოკენის მოკლე შეჯამებას უბრუნებენ სრული სამუშაო ისტორიის ნაცვლად. ხელსაწყოს დიზაინსაც აქვს მნიშვნელობა — Model Context Protocol-ზე აგებულ სისტემასაც კი სჭირდება თითოეული ხელსაწყოს აღწერის მოკლედ და ერთმანეთთან გადაუფარავად შენარჩუნება, რადგან გაბერილი ხელსაწყოს განსაზღვრებები იმავე შეზღუდულ სივრცეს ჭამენ, რასაც ყველაფერი დანარჩენი.

რატომ აქვს მნიშვნელობა: კონტექსტის „დაშლა“ და ყურადღების ბიუჯეტი

ორი პრაქტიკული პრობლემა ამართლებს ამ დამატებით ინჟინერიას. პირველი — მოდელის შედეგები საზომად უარესდება, როცა საკონტექსტო ფანჯარა ივსება; მკვლევრები ამ მოვლენას კონტექსტის „დაშლას“ (context rot) უწოდებენ: მოდელს, რომელსაც მოკლე პრომფტში ფაქტის იდეალურად გახსენება შეუძლია, იგივე ფაქტის გამოტოვება შეუძლია, როცა ის ათასობით სხვა ტოკენს შორის არის დამარხული. მეორე — ყურადღება თავად შეზღუდული რესურსია. ტრანსფორმერი ყოველ ტოკენს ყველა დანარჩენთან ადარებს, ასე რომ, კონტექსტის ზრდასთან ერთად ეს გამოთვლა — და მოდელის რეალური უნარი, თვალი ადევნოს იმას, რაც ნამდვილად მნიშვნელოვანია — უფრო და უფრო თხელდება, მითუმეტეს, რომ წვრთნის უმეტესობა უფრო მოკლე თანმიმდევრობებზე მიმდინარეობს, ვიდრე რეალურად გამოიყენება საწარმოო აგენტებში.

ცუდად მართული კონტექსტი მხოლოდ ზედმეტი ტოკენების ხარჯვას არ ნიშნავს — მას შეუძლია აგენტმა უფრო ადრეული ინსტრუქცია დაივიწყოს, უკვე დაშვებული შეცდომა გაიმეოროს ან მოძველებულ მონაცემებზე იმოქმედოს. ვინც კლიენტთა მხარდაჭერის ბოტს, კოდირების ასისტენტს თუ კვლევით ხელსაწყოს დიდი ენობრივი მოდელის საფუძველზე აშენებს, მისთვის საქმე ახლა იმდენადვე ეხება იმის კონტროლს, თუ რას ხედავს მოდელი, რამდენადაც — რას ავალებ მას გააკეთოს.

კონტექსტის ინჟინერია vs. პრომფტ-ინჟინერია

ეს ორი ცნება ერთმანეთთან დაკავშირებულია, მაგრამ იდენტური არაა. პრომფტ-ინჟინერია ეხება ერთჯერადი დავალებისთვის ერთი, კარგად ჩამოყალიბებული ინსტრუქციის შედგენას. კონტექსტის ინჟინერია კი მუდმივი დისციპლინაა — მართო ყველაფერი, რაც ამ ინსტრუქციის გარშემოა: მეხსიერება, მოძიებული მონაცემები, ხელსაწყოების აღწერები, წინა ნაბიჯები — იმ დავალების განმავლობაში, რომელიც წუთებს ან საათებს გასტანს. ეს განსხვავება ყველაზე მეტად მნიშვნელოვანია მათთვის, ვინც მარტივი ჩატბოტების ნაცვლად აგენტებს აშენებს: კარგი პრომფტი ვერ ანაზღაურებს ისეთ საკონტექსტო ფანჯარას, რომელიც არასაჭირო ან ურთიერთსაწინააღმდეგო ინფორმაციითაა გადატვირთული, ხოლო სრულიად სუფთა კონტექსტსაც მაინც სჭირდება მკაფიო ინსტრუქცია, რომ იმოქმედოს. დეველოპერები, რომლებიც ხანგრძლივად მომუშავე კოდირების აგენტებს ქმნიან, ამას პირდაპირ აწყდებიან — სესიის ზრდასთან ერთად, აგენტის კონტექსტის სუფთად და აქტუალურად შენარჩუნება იმდენადვე მნიშვნელოვანი ხდება, რამდენადაც თავდაპირველი ინსტრუქციები იყო.

ვისაც დღეს აგენტის აშენება სურს, შეუძლია სიღრმისეულად გაეცნოს Anthropic-ის კონტექსტის ინჟინერიის სახელმძღვანელოს, რომელიც ჩაწერის, შერჩევის, შეკუმშვისა და იზოლაციის ტექნიკებს უფრო ტექნიკურ დეტალებში განიხილავს.