Dmitriy Kononov
ვისაუბროთკონტაქტი

სიახლეები და ანალიზი

აგენტის კონტექსტი: კოდის ინდექსი, ძებნა და შენახული მდგომარეობა

JetBrains-ის, Microsoft-ის, Vercel-ისა და Merge-ის ცნობები კონტექსტის სხვადასხვა ფენას ეხება. როგორ გავმიჯნოთ ძებნა, მეხსიერება და სამუშაო ფაილები.

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

JetBrains-ის Netflix-ის აღწერა კოდის ანალიზის ძრავის აგენტებთან ინტეგრაციას ეხება. Microsoft-ის 15 ოქტომბრის პუბლიკაცია Python-ის vector store API-ებსა და context provider-ებს წარმოადგენს; API-ები ექსპერიმენტულია, ინტეგრაციის პაკეტები alpha ან beta ეტაპზეა. Vercel-მა Drives-ის Sandbox-ისთვის საერთო ხელმისაწვდომობა გამოაცხადა. Merge-ის კომპანიის კონტექსტის ანალიზი აქტუალობას, ინსტრუმენტებსა და წვდომას აერთიანებს. ოთხივე პროდუქტის თავსებადობა ამ ცნობებით არ დასტურდება.

ინდექსი, ძებნა და სამუშაო სივრცე სხვადასხვა აქტივია

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

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

შეცდომების ფასიც განსხვავდება. გამორჩენილი ფუნქცია დამატებით ძებნას იწვევს. ძველი პოლიტიკა პასუხს ცვლის. არეული სამუშაო მდგომარეობა გარე ოპერაციას იმეორებს. ამიტომ ერთი „კონტექსტის ხარისხის“ ქულა კონკრეტულ საკითხებს მალავს. საზომი უნდა უკავშირდებოდეს მხარდაჭერილ ოპერაციას და არა დამატებული დოკუმენტების რაოდენობას.

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

შენახვას მოძველების ამოცნობა სჭირდება

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

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

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

პირობითი მაგალითი: ფასის წესის შეცვლა

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

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

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

ფონური დავალებებისა და გამეორებების გზამკვლევი გაგრძელების პრობლემას ხსნის. Python-ით API მონაცემების დამუშავების ქეისი პრაქტიკულ კონტექსტს იძლევა. კონტექსტის ფანჯრის გაფართოებამდე შეგვიძლია აგენტისთვის საჭირო ცოდნა და მდგომარეობა განვიხილოთ.