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

სამი როლი, ხუთი შეტყობინება
აგენტი სერვერის კოდია და წყვეტს, რა უნდა გამოჩნდეს: რომელი კომპონენტი და რომელი მნიშვნელობით. პროტოკოლი ის ფორმატია, რომლითაც ეს გადაწყვეტილება მიემართება, და მხოლოდ ხუთ ტიპის შეტყობინებას უშვებს. ოთხი აგენტიდან კლიენტისკენ მიდის: createSurface surface-ს კატალოგთან არეგისტრირებს, updateComponents კომპონენტის ჩანაწერებს ამატებს ან ცვლის, updateDataModel მნიშვნელობებს surface-ის JSON ხეში წერს, deleteSurface კი მას შლის. მეხუთე, action, კლიენტიდან აგენტისკენ მიმავალი ერთადერთი შეტყობინებაა. ტრანსპორტი სპეციფიკაციაში არ შედის.
ნდობის საზღვარი
უსაფრთხოების გარანტია ერთ წინადადებაში ჯდება: აგენტს მხოლოდ იმ კომპონენტის დასახელება შეუძლია, რომელიც კლიენტის კატალოგში უკვე არსებობს, ხოლო ყოველი მის მიერ შევსებული მნიშვნელობა მონაცემად ითვლება და არა ინსტრუქციად. ერთ ადგილას ეს გარანტია ჩუმად შეიძლება დაირღვეს: კატალოგის იმპლემენტაციაში, რომელიც მნიშვნელობას ისევ შესრულებად შიგთავსად აქცევს, მაგალითად HTML-ის პირდაპირი ჩასმით ან შეუმოწმებელი ბილიკიდან აწყობილი href-ით. პროტოკოლი კომპონენტის კოდს ვერ ხედავს, ამიტომ კატალოგის გაფართოება განსაკუთრებით ფრთხილად უნდა შემოწმდეს.
დაფა და გზა v1.0-მდე
მიმოხილვა მიუთითებს a2ui-mutual-fund-dashboard-ზე, ღია კოდის მქონე Next.js აპლიკაციაზე, სადაც ინდური მუტუალური ფონდის შესახებ ბუნებრივ ენაზე დასმული კითხვა დაფას აწარმოებს: სტატისტიკის ბარათი, NAV-ის ისტორიის გრაფიკი და მარტივი შეჯამება. კატალოგი ხუთ კომპონენტზეა დაფიქსირებული, მოდელს კი რიცხვებს არასდროს ჰკითხავენ. ყველაფერი v0.9.1-ზეა დამაგრებული, რომელსაც a2ui.org წარმოების მიმდინარე ვერსიად ასახელებს, v1.0 კი კანდიდატია. მთავარი დანამატი მეექვსე შეტყობინებაა, actionResponse, რომელიც კონკრეტულ მოქმედებაზე სინქრონულ პასუხს იძლევა.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.