Компьютерді пайдалану деген не және ол неліктен маңызды? Компьютерді пайдалану — салдары ауқымды қарапайым идея: модельдерден сұрақтарға жауап беруді сұраудың орнына, оларға бағдарламалық жасақтаманы басқаруды — сайттарды аралап, формаларды толтырып, жұмыс үдерістерінен өтіп, тапсырмаларды басынан аяғына дейін автономды орындауды тапсырамыз.
Бұл қазір әртүрлі интерфейстер арасында бөлшектенген нақты тапсырмалардың үлкен тобын орындауға жол ашады: толық брондау, интернет-дүкендегі сатып алуды рәсімдеу, көпсатылы сапар жоспарлау және ыңғайлы API баламасы жоқ ішкі әкімшілік үдерістер. Бұл жаңа мәселелер емес. Жаңалығы — оларды әмбебап модельдермен шешудің мүмкін бола бастауы.
Anthropic пен OpenAI-дың соңғы жүйелері әрекет етіп қана қоймай, күй туралы ой қорытып, қателерден кейін қалпына келетін және тапсырмаға бейімделген шешімдерді сол сәтте құрастыратын агенттерді көрсетті. Бұл браузерді агенттерге арналған әмбебап орындау ортасына айналдырады, бірақ бірден мынадай жобалау сұрағын туғызады: осы ортаның қанша бөлігін модельге ашу керек?
Алғашқы жүйелер браузерді қауіпсіз әрі алдын ала анықталған әрекеттердің тұрақты жиынтығына орау арқылы жауап берді. Осы мақалада көрсететініміздей, бұл тәсіл мүмкіндігінің шегіне жетіп келеді.


Браузер агенттерін жасағанда жиі туындайтын ой бар: модельге тым көп сенбеу керек.
Сондықтан браузерді орауышпен қоршаймыз. click, type, scroll, select және read_text сияқты алдын ала анықталған құралдарды ұсынамыз. Құжат нысаны моделін (DOM) жеңілдетеміз. Әрекеттер кеңістігін тарылтамыз. Өзіміз жасаған абстракциялар арқылы әрекетті түсінікті әрі басқарылатын етуге тырысамыз.
Бұл — орынды бастапқы тәсіл. Сонымен бірге ол біртіндеп ұзақ мерзімге жарамсыз архитектураға айналып келеді.
Озық модельдер жетілген сайын, мәселе енді модельде құралдардың жетіспеуінде ғана емес. Мәселе — оны негізгі жүйенің тым көп бөлігін жасыратын абстракциялар арқылы жұмыс істеуге мәжбүрлеуімізде. Біз ретсіз әрі динамикалық ортаны тұрақты әрекет интерфейсіне сыйғызамыз да, модельден ақпарат осылай жоғалған жағдайда жақсы жұмыс істеуді сұраймыз.
Мұндай ымыраның тартымдылығы азайып келеді.
Біз зерттеп жүрген өзгерісті сипаттау оңай, бірақ оның салдары елеулі. Агентті алдын ала анықталған әрекеттерді таңдаушы ретінде емес, шектеулі орындау ортасында жұмыс істейтін бағдарлама құрастырушы ретінде қарастырамыз.
Модельдер едәуір жетілді, енді оларға абстракцияланған қоршауларыңыз қажет емес. Мақсатқа жеткенше тапсырманы жобалау, орындау және жетілдіру үшін оларға толық әрекет кеңістігі керек.
Бұл мақала абстракцияға сүйенетін браузер автоматтандыруынан шектеулі компьютер пайдалануға көшу және жүйелерді осылай жобалағанда не өзгеретіні туралы.
Мәселе тұрақты әрекет интерфейстерінің тұжырымдамалық тұрғыдан қате болуында емес. Мәселе — вебтің оларға бейімделмеуінде.


Заманауи интерфейстер React, Vue және Angular негізінде жасалады. Оларда күй асинхронды жаңарады, синтетикалық оқиға жүйелері қолданылады және шығу тегі бөлек iframe ішінде өз өмірлік циклімен жұмыс істейтін бөгде виджеттер ендіріледі. «Осы енгізу өрісіне мәтін тер» дейтін орауыш беттің мәтін теру туралы түсінігі сіздікімен сәйкес келсе ғана дұрыс жұмыс істейді. Көп бетте олай емес. Мәнді тікелей орнату көбіне фреймворктің өзгерісті анықтау тетігін толығымен айналып өтеді. Өріс толтырылғандай көрінеді. Тексеру іске қосылмайды. Форма жұмыс істемей қалады.
Мұны жамауға болады. React өрістеріне арнайы жағдайлар қосуға, фокустан кейін blur оқиғаларын жіберуге, күйді оқымас бұрын желідегі белсенділіктің тоқтауын күтуге болады. Әр жамау жеке алғанда дұрыс. Бірақ жинала келе олар қолдауы барған сайын қиын әрі тек бұрын кездескен сайттарға бейімделген жүйеге айналады.
Түпкі мәселе — өзара әрекет қалай жұмыс істеуі керек деген болжамдарды абстракция қабатына кодтап, кейін вебтің бұл жөніндегі болжамы басқа екенін анықтауыңызда.
Шығу тегі бөлек iframe ішінде Stripe немесе Adyen арқылы ендірілген төлем формасын қарастырайық. Орауыш оған тікелей жете алмайды, себебі ол бөлек шығу тегінде орналасқан. read_text құралы оның ішкі күйін бақылай алмайды. type құралы оның енгізу өрістеріне қатынай алмайды. Орауышқа негізделген агент осы тұста тығырыққа тіреледі. Абстракция негізгі құжатқа арналып жасалған. Ал нақты тапсырма абстракция көре алмайтын жерде орналасқан.
Мұндай сәйкессіздік бірден байқалмайтын үдерістерде де кездеседі. Фреймворк басқаратын ашылмалы тізім тікелей басуға мүлде жауап бермеуі мүмкін, себебі көрінетін элемент нақты басқару тетігі емес. Негізгі күй ауысуын іске қосу үшін пернетақта оқиғаларының белгілі бір реті қажет болуы мүмкін. Сырттай қарағанда интерфейстегі элементті басуға болатын сияқты. Абстракция «бас» дейді. Ештеңе болмайды.
Немесе көрінетін DOM ішкі күй өзгерістерінен кеш жаңаратын көпсатылы модальдық үдерісті алайық. Келесі дұрыс әрекет орауыш көретін элементтерде әлі көрсетілмеген күй ауысуына байланысты. Орауышқа негізделген агент жүйені толық көрмегендіктен, әрекетті тым ерте орындайды немесе ескірген күйді оқиды.
Әр жағдайда абстракция агентке шын мәнінде қажет сигналдарды жасырады.
Төменірек деңгейде жұмыс істеп, белсенді DOM-ды тексеретін, фрейм шекаралары туралы ой қорытатын және нақты интерфейске арналған өзара әрекет ретін құрастыратын модель мұндай жағдайлардан өте алады. Бұл модельдің табиғатынан ақылдырақ болғанын білдірмейді. Ол тек бұрын алынып тасталған ақпаратқа қол жеткізді.
Біз ұмтылған өзгерісті сипаттау оңай: модельден алдын ала анықталған әрекеттерді таңдауды сұраудың орнына, оған төмен деңгейлі орындау ортасын береміз және оны абстракция дизайнымен емес, орындау саясатымен шектейміз.
Бұл шешім саладағы кең ауқымды өзгерістен туындады: енді модельдің бейімделу қабілетін жоятын сенімді, бірақ қатаң кодталған арнайы құралдардан гөрі агенттің орындау кезінде түзету енгізу және сапалы код жасау қабілетін пайдаланатын төмен деңгейлі базалық құралдарға басымдық беріле бастады.
Claude Code-тың көптеген әзірлеушінің негізгі құралына айналғанын және саланың терминалға негізделген агенттерге бет бұрғанын қарастырайық. Claude Code-тың басты артықшылығы модельдің өзінде емес, төмен деңгейлі тапсырма ортасында. Модельге саны аз, модульді әрі төмен деңгейлі құралдар, яғни терминал беру құралдарды шақыру сапасын арттырады. Өйткені агент мәнмәтін терезесін ластайтын әмбебап құралдарды қолдануға тырыспай, ой қорытып, нақты тапсырмаға арналған сценарийлер жасай алады.
Браузерді автоматтандыруда бұл модельдің бәрін алдын ала жасалған тұрақты әрекеттер жиынтығына сәйкестендірмей, беттің ағымдағы күйін тікелей тексеруін, фреймдер арасында өтуін және нақты интерфейске арналған өзара әрекет кодын құрастыруын білдіреді.
Модель таңдаушыдан гөрі орындау ортасының авторы сияқты әрекет етеді. Ол ағымдағы күйді тексеріп, интерфейс туралы ой қорытады және нақты жағдайға арналған өзара әрекет логикасын құрастырады. Ол көпсатылы әрекет ретін құрып, әдеттен тыс үдерістерге бейімделе және жалғастырмас бұрын нәтижені тексере алады. Әрекет орындалмаса, модель негізгі қатені көріп, өзін-өзі түзетеді. Бұл тәсіл қуаттырақ әрі тәуекелдірек, бірақ мәселенің шынайы сипатына әлдеқайда жақын.
Маңыздысы — абстракция қабатын алып тастау жүйедегі тәртіпті азайтпайды. Ол тәртіпті басқа жерге көшіреді.
Бұрын орауыш дизайны мен сирек жағдайларды өңдеуге тиесілі жұмыс үш жерге ауысады: көмексөзге (ол операциялық оқыту нысанына айналады), орындау ортасына (ол навигация ауқымы, құпия әрекеттер және қайталап көру тәртібі сияқты шекараларды қамтамасыз етеді) және бағалау қабатына (ол тапсырманың орындалуын ғана емес, аралық қадамдардың дұрыстығын да бағалайды). Осал абстракциялар азырақ. Қоршаған жүйелер күштірек.
Бұл өзгерістің бір нәтижесі — жалпы жүйенің мүмкіндігі артқанымен, өнім коды көбіне қарапайым бола түседі. Өзара әрекет үлгілерін қайта пайдаланылатын орауыштар түрінде кодтаудың орнына, агент әрекетті орындау кезінде құрастырады. Мамандандырылған құралдар мен сирек жағдайларға арналған логиканы үнемі көбейтудің орнына, қуатты базалық құралдардың шағын жиынтығы мен шектеулі орындау ортасын қолдайсыз.
Бұл жүйенің жалпылау тәсілін де өзгертеді. Орауыштарға негізделген агент бұрын жасалған орауыштарға ұқсас тапсырмаларды жақсы жалпылайды. Шектеулі орындау ортасындағы агент интерфейсі өзгеше болса да, ортақ орындау негізі бар тапсырмаларды жалпылайды.
Мысалы, іздеу формасымен, брондау үдерісімен немесе параметрлер бетімен жұмыс істеу интерфейс деңгейінде мүлде бөлек көрінуі мүмкін. Алайда олардың негізінде ортақ үлгілер бар: күйді оқу, оқиғаларды іске қосу, нәтижелерді тексеру және асинхронды жаңартуларды өңдеу. Осы деңгейде жұмыс істейтін жүйе бір тапсырмадан екіншісіне табиғи түрде бейімделеді.
Қайта пайдаланылатын құрамдас — әрекеттер тізімі емес. Ол — модельдің күйді тексеру, қауіпсіз әрекет ету және нәтижені растау қабілеті.


Бұл жұмыстан түйген ең айқын сабақ: сенімділік модельге көбірек көмекші функция беруден туындамайды. Ол көбіне модельге саны аз, бірақ қуатты базалық құралдар беріп, оларды дұрыс шектеуден туындайды. Артық көмек тапсырманың қалай орындалуы керектігі туралы болжамдарды кодқа қатырып тастайды. Шектеулер қауіпсіз жұмыс шекарасын белгілеп, модельге жергілікті жағдайға тиімді шешімдер табуға мүмкіндік береді.
Қуатты орындау ортасы қауіпсіздік моделінің де нақты болуын талап етеді. Агент алдын ала анықталған аз ғана әрекетпен шектелмеген сәттен бастап, іс жүзінде нақты бағдарламалық жасақтамамен тікелей жұмыс істейді. Бұл тәуекел сипатын бірден өзгертеді.
Жобалау кезінде төрт мәселені ескеру қажет:
Деректердің ашылуы. Агент нақты интерфейстермен жұмыс істегенде, құпия ақпаратты жиі кездестіреді. Сондықтан деректерді бүркемелеу мен қолжетімділікті басқару қатаң тәртіппен жүргізілуі керек. Деректер тек орындауға қажет кезде ашылуы тиіс, ал бақыланғыштық жүйенің ең құпия бөлігіне айналмауы үшін журналдар мен трассаларды мұқият өңдеу қажет.
Орындау аясы. Қуатты агентке еркін әрекет етуге жол берілмеуі керек. Іс жүзінде бұл оның қайда өте алатынын, қандай домендерге кіре алатынын және қандай жүйелермен жұмыс істеуге рұқсат етілгенін шектеуді білдіреді. Мұндай шектеулер көмексөздегі нұсқау күйінде қалмай, орындау ортасы деңгейінде қолданылуы тиіс.
Ортаның сенімділігі. Заманауи интерфейстерде жаңылыстыратын немесе әдейі қарсы бағытталған нұсқаулар, мазмұн не үдерістер болуы мүмкін. Бет мазмұны арқылы көмексөзге зиян келтіру — нақты шабуыл нысанасы. Агенттің күтпеген нұсқауларды орындауына жол бермеу үшін жүйеге нұсқаулардың айқын иерархиясы, тексерулер және тоқтату шарттары қажет.
Автономдық ауқымы. Әрекеттердің бәрі толық автономды болмауы керек. Көптеген өндірістік ортада автономдықты ауқым ретінде қарастырған маңызды. Жүйе зерттеу және орындау барысында агенттік тұрғыдан өте дербес бола алады, бірақ әрекеттердің кей санаттары үшін бәрібір мақұлдау талап етеді.
Негізгі қағида қарапайым: модельге көбірек мүмкіндік беру оны қоршаған жүйені де күшейтуді талап етеді. Саясатсыз автономдық өндірісте қолдануға дайын емес.
Біз «Қандай браузер әрекеттерін ұсынған дұрыс?» деп сұрауды тоқтаттық.
Оның орнына: «Модельге толық әрекет кеңістігін қалай береміз және оның айналасында қауіпсіздікті сақтайтын орындау саясатын қалай құрамыз?» деп сұрай бастадық.
Мұндай жаңа көзқарас басымдықтарды өзгертеді. Әрекеттер жіктемесі мен орауыштардың толықтығының маңызы азаяды. Орындау саясаты, бақыланғыштық және әр қадамды бағалау маңыздырақ болады. Модель мүмкіндігі мен жүйе дизайны бірін-бірі алмастырмайды. Модельдер жетілген сайын жүйенің атқаратын жұмысы азаймайды, керісінше маңыздырақ болады.
Демонстрацияда жұмыс істейтін браузер агенттері көбіне тапсырма ауқымы тар, ал орта қолайлы болғандықтан сәтті нәтиже береді. Өндірістік жүйелерге басқасы қажет: шектеулі орындау, құралдармен бақыланатын әрекет және дұрыс нәтижені сәтті сәйкестіктен ажырата алатын бағалау.
Орауыштарды азырақ жобалау. Жүйелік инженерияны көбірек қолдану.
Біз браузер агенттеріне назар аударғанымызбен, бұл компьютерді пайдалануды жүйелік пән ретінде кеңірек қарастыруға жол ашады.