Ի՞նչ է համակարգչի օգտագործումը, և ինչո՞ւ է այն կարևոր։ Համակարգչի օգտագործումը պարզ գաղափար է՝ լայն հետևանքներով. մոդելներին հարցերի պատասխաններ տալ խնդրելու փոխարեն խնդրում ենք ինքնավար կերպով աշխատել ծրագրակազմով՝ անցնել կայքերով, լրացնել ձևեր, կատարել աշխատանքային գործընթացների քայլերը և առաջադրանքներն ավարտել սկզբից մինչև վերջ։
Սա հասանելի է դարձնում իրական աշխարհի առաջադրանքների մեծ դաս, որոնք այժմ մասնատված են տարբեր միջերեսներում՝ ամբողջական ամրագրումներ, առցանց գնումների ձևակերպում, բազմափուլ ուղևորությունների պլանավորում և ներքին գրասենյակային գործընթացներ, որոնց համար API-ի հստակ համարժեք չկա։ Սրանք նոր խնդիրներ չեն։ Նորությունն այն է, որ դրանք այժմ հնարավոր է լուծել ընդհանուր նշանակության մոդելներով։
Anthropic-ի և OpenAI-ի վերջին համակարգերը ցուցադրել են ագենտներ, որոնք ոչ միայն գործում են, այլև դատողություն են կատարում վիճակի վերաբերյալ, վերականգնվում սխալներից և ընթացքի մեջ ստեղծում տվյալ առաջադրանքին հատուկ լուծումներ։ Այսպիսով զննարկիչը դառնում է ագենտների ընդհանուր կատարման միջավայր, բայց անմիջապես առաջանում է նախագծային հարց՝ այդ միջավայրից որքա՞նը պետք է հասանելի դարձնել մոդելին։
Վաղ համակարգերը որպես լուծում զննարկիչը պարփակում էին անվտանգ, նախապես սահմանված գործողությունների հաստատուն հավաքածուի մեջ։ Ինչպես կհիմնավորենք այս գրառման մեջ, այդ մոտեցումը հասնում է իր սահմաններին։


Զննարկչային ագենտներ ստեղծելիս տարածված բնազդ է մոդելին չափից շատ չվստահելը։
Ուստի մենք զննարկիչը պարփակում ենք։ Հասանելի ենք դարձնում նախապես սահմանված գործիքներ, ինչպիսիք են click, type, scroll, select և read_text։ Մենք պարզեցնում ենք Փաստաթղթի օբյեկտային մոդելը (DOM)։ Մենք կրճատում ենք գործողությունների տարածքը։ Փորձում ենք մեր նախագծած վերացարկումների միջոցով վարքագիծը դարձնել հասկանալի և վերահսկելի։
Սա ողջամիտ մեկնարկային մոտեցում է։ Միևնույն ժամանակ այն գնալով դառնում է սխալ երկարաժամկետ ճարտարապետություն։
Առաջադեմ մոդելների կատարելագործմանը զուգընթաց սահմանափակումն այլևս միայն գործիքների պակասը չէ։ Խնդիրն այն է, որ մոդելին ստիպում ենք աշխատել այնպիսի վերացարկումների միջոցով, որոնք չափազանց շատ բան են հեռացնում հիմքում ընկած համակարգից։ Մենք խառնաշփոթ, դինամիկ միջավայրը սեղմում ենք գործողությունների հաստատուն միջերեսի մեջ, ապա մոդելից պահանջում լավ աշխատել՝ չնայած այդ տեղեկատվական կորստին։
Այս փոխզիջումը գնալով պակաս գրավիչ է դառնում։
Մեր ուսումնասիրած անցումը նկարագրելը հեշտ է, սակայն դրա հետևանքները նշանակալի են։ Ագենտին նախապես սահմանված գործողություններ ընտրող համարելու փոխարեն այն դիտարկում ենք որպես սահմանափակ կատարման միջավայրում գործող ծրագրերի սինթեզող։
Մոդելները շատ են կատարելագործվել և այլևս ձեր վերացարկված պաշտպանիչ սահմանների կարիքը չունեն։ Նրանց անհրաժեշտ է գործողությունների ամբողջ տարածքը, որպեսզի նախագծեն ու կատարեն առաջադրանքը և կրկնեն քայլերը մինչև նպատակին հասնելը։
Այս գրառումը վերաբերում է վերացարկումներով ծանրաբեռնված զննարկչային ավտոմատացումից դեպի համակարգչի սահմանափակ օգտագործում անցմանը և նրան, թե ինչ է փոխվում համակարգերն այս կերպ նախագծելիս։
Խնդիրն այն չէ, որ գործողությունների հաստատուն միջերեսները հայեցակարգային առումով սխալ են։ Խնդիրն այն է, որ վեբը չի հարմարվում դրանց։


Ժամանակակից միջերեսները կառուցվում են React, Vue և Angular տեխնոլոգիաներով՝ վիճակի ասինխրոն թարմացումներով, իրադարձությունների սինթետիկ համակարգերով և երրորդ կողմերի ներկառուցված վիջեթներով, որոնք գործում են այլ ծագման iframe-ներում ու ունեն իրենց կենսացիկլերը։ «Մուտքագրել այս դաշտում» հրահանգող փաթեթը ճիշտ է միայն այն դեպքում, երբ էջի պատկերացումը մուտքագրման մասին համընկնում է ձերի հետ։ Շատ էջերի դեպքում այդպես չէ։ Արժեքն ուղղակի սահմանելը հաճախ ամբողջությամբ շրջանցում է ֆրեյմվորքի փոփոխությունների հայտնաբերման մեխանիզմը։ Դաշտը լրացված է երևում։ Վավերացումը չի գործարկվում։ Ձևը մնում է անսարք։
Դուք կարող եք սա կարկատել։ Կարող եք React-ի մուտքային դաշտերի համար հատուկ դեպքեր ավելացնել, կենտրոնացումից հետո ուղարկել blur իրադարձություններ և վիճակն ընթերցելուց առաջ սպասել ցանցային անգործության։ Յուրաքանչյուր կարկատում առանձին վերցրած ճիշտ է։ Միասին դրանք կուտակվում և ստեղծում են մի համակարգ, որն ավելի ու ավելի դժվար է սպասարկել և ավելի ու ավելի է հարմարեցված միայն արդեն հանդիպած կայքերին։
Ավելի խորքային խնդիրն այն է, որ փոխազդեցությունների աշխատանքի մասին ձեր ենթադրությունները կոդավորում եք վերացարկման շերտում, ապա պարզում, որ վեբն այլ ենթադրություններ ունի։
Դիտարկենք այլ ծագման iframe-ում Stripe-ի կամ Adyen-ի միջոցով ներկառուցված վճարման ձևը։ Ձեր փաթեթը չի կարող անմիջապես հասնել դրան, քանի որ այն գտնվում է առանձին ծագման տիրույթում։ Ձեր read_text գործիքը չի կարող տեսնել դրա ներքին վիճակը։ Ձեր type գործիքը չի կարող դիմել դրա մուտքային դաշտերին։ Փաթեթի վրա հիմնված ագենտն այստեղ փակուղու է բախվում։ Վերացարկումը նախագծված էր հիմնական փաստաթղթի համար։ Իրական առաջադրանքը գտնվում է այնտեղ, որտեղ վերացարկումը չի կարող տեսնել այն։
Նման անհամապատասխանություն հանդիպում է նաև ոչ այնքան ակնհայտ գործընթացներում։ Ֆրեյմվորքի կողմից կառավարվող բացվող ցանկը կարող է ընդհանրապես չարձագանքել ուղղակի սեղմումներին, քանի որ տեսանելի տարրը իրական կառավարիչը չէ։ Հիմքում ընկած վիճակի անցումը գործարկելու համար կարող է պահանջվել ստեղնաշարային իրադարձությունների հաջորդականություն։ Արտաքուստ UI-ը սեղմելի է թվում։ Վերացարկումն ասում է՝ «սեղմել»։ Ոչինչ չի կատարվում։
Կամ դիտարկենք բազմափուլ մոդալ գործընթաց, որտեղ տեսանելի DOM-ի թարմացումները հետ են մնում ներքին վիճակի փոփոխություններից։ Հաջորդ ճիշտ գործողությունը կախված է վիճակի այնպիսի անցումից, որը դեռ չի արտացոլվել ձեր փաթեթին տեսանելի տարրերում։ Փաթեթի վրա հիմնված ագենտն ի վերջո գործում է չափազանց շուտ կամ կարդում է հնացած վիճակ, քանի որ աշխատում է համակարգի ոչ ամբողջական պատկերով։
Յուրաքանչյուր դեպքում վերացարկումը թաքցնում է այն ազդանշանները, որոնք իրականում անհրաժեշտ են ագենտին։
Ավելի ցածր մակարդակում գործող մոդելը, որը ստուգում է ընթացիկ DOM-ը, դատողություն կատարում ֆրեյմների սահմանների մասին և տվյալ միջերեսի համար ստեղծում փոխազդեցությունների հաջորդականություն, կարող է հաղթահարել այս իրավիճակները։ Բանն այն չէ, որ մոդելն ի սկզբանե ավելի խելացի է։ Պարզապես նրան հասանելի է նախկինում հեռացված տեղեկատվությունը։
Մեր նպատակադրած փոփոխությունը հեշտ է նկարագրել. մոդելին նախապես սահմանված գործողություններից ընտրել խնդրելու փոխարեն նրան տրամադրում ենք ավելի ցածր մակարդակի կատարման միջերես և այն սահմանափակում կատարման կանոններով, ոչ թե վերացարկման նախագծմամբ։
Այս նախագծային ընտրությունը բխում է ոլորտում ավելի լայն անցումից դեպի ցածր մակարդակի պարզունակ գործիքներ։ Դրանք օգտվում են կատարման պահին ուղղումներ կատարելու և բարձրորակ կոդ ստեղծելու ագենտի բնածին կարողությունից՝ ի տարբերություն կոշտ կոդավորված, հուսալի, բայց տարբեր միջավայրերին հարմարվելու մոդելի ունակությունը սահմանափակող հատուկ գործիքների։
Հիշենք Claude Code-ի հաջողությունը՝ որպես բազմաթիվ ծրագրավորողների գործիքակազմի հիմնական ընտրություն, և ոլորտի ավելի լայն անցումը դեպի տերմինալում գործող ագենտներ։ Claude Code-ի ամենամեծ առավելությունը ոչ թե ինքնին մոդելն է, այլ ցածր մակարդակի հարնեսը։ Մոդելին ավելի քիչ, ավելի մոդուլային ու ցածր մակարդակի գործիքներ տալը, այսինքն՝ տերմինալ տրամադրելը, բարելավում է գործիքների կանչման արդյունավետությունը, հիմնականում քանի որ ագենտը կարող է դատողություն կատարել և ընթացիկ առաջադրանքի համար հատուկ սկրիպտներ ստեղծել՝ Համատեքստային պատուհանը ծանրաբեռնող ընդհանրացված գործիքներ կիրառելու փոխարեն։
Զննարկչային ավտոմատացման դեպքում գործնականում սա նշանակում է, որ մոդելը կարող է անմիջապես ստուգել էջի ընթացիկ վիճակը, անցնել ֆրեյմներով և ներկա միջերեսին հատուկ փոխազդեցության կոդ ստեղծել՝ ամեն ինչ պատրաստի գործողությունների հաստատուն հավաքածուին համապատասխանեցնելու փոխարեն։
Մոդելն իրեն ավելի քիչ է պահում որպես ընտրող և ավելի շատ՝ որպես կատարման տրամաբանության հեղինակ։ Այն ստուգում է ընթացիկ վիճակը, դատողություն կատարում միջերեսի մասին և տվյալ իրավիճակի համար ստեղծում փոխազդեցության տրամաբանություն։ Այն կարող է կառուցել բազմափուլ հաջորդականություններ, հարմարվել անսովոր գործընթացներին և շարունակելուց առաջ վավերացնել արդյունքները։ Երբ գործողությունը ձախողվում է, մոդելը տեսնում է հիմքում ընկած սխալը և ինքնուրույն ուղղվում։ Սա ավելի հզոր և ավելի ռիսկային է, բայց շատ ավելի մոտ է խնդրի իրական կառուցվածքին։
Կարևոր է, որ վերացարկման շերտը հեռացնելը համակարգը պակաս կարգապահ չի դարձնում։ Այն պարզապես կարգապահությունը տեղափոխում է այլ տեղ։
Նախկինում փաթեթների նախագծման և եզրային դեպքերի մշակման մեջ կատարվող աշխատանքը տեղափոխվում է երեք տեղ՝ հարցում, որը դառնում է գործառնական ուսուցման ձև, կատարման միջավայր, որը պարտադրում է սահմաններ՝ ներառյալ անցումների շրջանակը, զգայուն գործողություններն ու կրկնափորձերի վարքագիծը, և գնահատման շերտ, որը ստուգում է ոչ միայն առաջադրանքի հաջողությունը, այլև միջանկյալ քայլերի ճշտությունը։ Ավելի քիչ փխրուն վերացարկումներ։ Ավելի ամուր շրջապատող համակարգեր։
Այս անցման հետևանքներից մեկն այն է, որ արտադրանքի կոդը հաճախ պարզանում է, մինչդեռ ամբողջ համակարգը դառնում է ավելի ունակ։ Փոխազդեցության ձևանմուշները որպես բազմակի օգտագործման փաթեթներ կոդավորելու փոխարեն ագենտը վարքագիծը ստեղծում է կատարման պահին։ Մասնագիտացված գործիքների ու եզրային դեպքերի տրամաբանության շարունակ ընդլայնվող բազմության փոխարեն դուք պահպանում եք հզոր պարզունակների փոքր հավաքածու և սահմանափակ կատարման միջավայր։
Սա փոխում է նաև համակարգի ընդհանրացման եղանակը։ Փաթեթների վրա հիմնված ագենտը լավ է ընդհանրացնում այն առաջադրանքները, որոնք նման են արդեն ստեղծված փաթեթներին։ Սահմանափակ կատարման միջավայրում գործող ագենտը կարող է ընդհանրացնել ընդհանուր կատարման հիմք ունեցող առաջադրանքները, նույնիսկ երբ տեսանելի միջերեսը տարբեր է։
Օրինակ՝ որոնման ձևի, ամրագրման գործընթացի կամ կարգավորումների էջի հետ փոխազդեցությունը UI-ի մակարդակում կարող է բոլորովին տարբեր թվալ։ Սակայն հիմքում դրանք ունեն ընդհանուր օրինաչափություններ՝ վիճակի ընթերցում, իրադարձությունների գործարկում, արդյունքների վավերացում և ասինխրոն թարմացումների մշակում։ Այդ մակարդակում գործող համակարգը շատ ավելի բնականորեն է հարմարվում տարբեր առաջադրանքների։
Բազմակի օգտագործման բաղադրիչը գործողությունների ցանկը չէ։ Դա վիճակը ստուգելու, անվտանգ գործելու և արդյունքները հաստատելու մոդելի ունակությունն է։


Այս աշխատանքից ստացած ամենահստակ դասն այն է, որ հուսալիությունը չի ապահովվում մոդելին ավելի շատ օժանդակ գործառույթներ տալով։ Այն հաճախ ապահովվում է ավելի քիչ, բայց ավելի հզոր պարզունակներ տրամադրելով և դրանք ճիշտ ձևով սահմանափակելով։ Չափից ավելի օգնությունը կոդում ամրագրում է առաջադրանքի կատարման եղանակի մասին ենթադրությունները։ Սահմանափակումները սահմանում են անվտանգ աշխատանքի սահմանները և մոդելին թույլ տալիս գտնել տեղային ավելի լավ լուծումներ։
Ավելի հզոր կատարման միջերեսը պահանջում է նաև անվտանգության ավելի խիստ մոդել։ Երբ ագենտն այլևս սահմանափակված չէ նախապես սահմանված գործողությունների փոքր հավաքածուով, այն փաստացի ուղղակիորեն աշխատում է իրական ծրագրակազմի հետ։ Դա անմիջապես փոխում է ռիսկերի պատկերը։
Նախագծելիս պետք է հաշվի առնել չորս խնդիր։
Տվյալների բացահայտում։ Եթե ագենտը փոխազդում է իրական միջերեսների հետ, հաճախ հանդիպելու է զգայուն տեղեկությունների։ Ուստի քողարկման և մուտքի վերահսկման հարցում անհրաժեշտ է կարգապահ մոտեցում։ Տվյալները պետք է բացահայտվեն միայն կատարման համար անհրաժեշտության դեպքում, իսկ մատյաններն ու հետագծերը պետք է զգուշորեն մշակվեն, որպեսզի դիտարկելիությունը չդառնա համակարգի ամենազգայուն մասը։
Կատարման շրջանակ։ Հզոր ագենտը չպետք է կարողանա կամայականորեն գործել։ Գործնականում սա նշանակում է սահմանափակել, թե որտեղ կարող է այն անցնել, որ տիրույթներին կարող է մուտք գործել և որ համակարգերի հետ կարող է փոխազդել։ Այս սահմանափակումները պետք է կիրառվեն կատարման միջավայրի մակարդակում, այլ ոչ թե մնան որպես հարցումներում ամրագրված պայմանավորվածություններ։
Միջավայրի վստահելիություն։ Ժամանակակից միջերեսները կարող են պարունակել ապակողմնորոշող կամ միտումնավոր հակազդող հրահանգներ, բովանդակություն ու գործընթացներ։ Էջի բովանդակության միջոցով հարցումների ներարկումը իրական հարձակման մակերես է։ Համակարգին անհրաժեշտ են հրահանգների հստակ աստիճանակարգ, վավերացման ստուգումներ և դադարեցման պայմաններ, որպեսզի ագենտը չհետևի չնախատեսված ցուցումներին։
Ինքնավարության սպեկտր։ Ոչ բոլոր գործողությունները պետք է լիովին ինքնավար լինեն։ Շատ արտադրական միջավայրերում կարևոր է ինքնավարությունը դիտարկել որպես սպեկտր։ Համակարգը կարող է հետազոտել և կատարել խիստ ագենտային եղանակով, բայց գործողությունների որոշ կատեգորիաների համար միևնույն է հաստատում պահանջել։
Հիմքում ընկած սկզբունքը պարզ է՝ մոդելին ավելի մեծ ուժ տալը պահանջում է ամրապնդել այն շրջապատող համակարգը։ Առանց կանոնների ինքնավարությունը պատրաստ չէ արտադրական կիրառման։
Մենք դադարեցինք հարցնել՝ զննարկչի ո՞ր գործողությունները պետք է հասանելի դարձնել։
Փոխարենը սկսեցինք հարցնել՝ ինչպե՞ս մոդելին տրամադրել գործողությունների ամբողջական տարածք և դրա շուրջ ստեղծել կատարման կանոններ, որոնք այն միևնույն ժամանակ անվտանգ կպահեն։
Այս վերաիմաստավորումը փոխում է առաջնահերթությունները։ Գործողությունների դասակարգումն ու փաթեթների ամբողջականությունը պակաս կարևոր են դառնում։ Ավելի կարևոր են դառնում կատարման կանոնները, դիտարկելիությունը և յուրաքանչյուր քայլի գնահատումը։ Մոդելի կարողությունն ու համակարգի նախագծումը չեն փոխարինում միմյանց։ Մոդելների կատարելագործմանը զուգընթաց համակարգի աշխատանքը դառնում է ավելի, ոչ թե պակաս կարևոր։
Ցուցադրությունների ժամանակ աշխատող զննարկչային ագենտները հաճախ հաջողում են, քանի որ առաջադրանքը նեղ է, իսկ միջավայրը՝ նպաստավոր։ Արտադրական համակարգերին այլ բան է անհրաժեշտ՝ սահմանափակ կատարում, չափելի վարքագիծ և գնահատում, որը կարող է ճիշտ արդյունքը տարբերել պատահական հաջողությունից։
Փաթեթների պակաս նախագծում։ Ավելի շատ համակարգային ճարտարագիտություն։
Եվ թեև կենտրոնացել ենք զննարկչային ագենտների վրա, սա հուշում է համակարգչի օգտագործումը որպես համակարգային գիտակարգ դիտարկելու ավելի լայն մոտեցում։