Frá vafrahjúpum til takmarkaðrar tölvunotkunar

Öflugri fulltrúar þurfa minni vafrasjálfvirkni með sértækum lögum og vandlegar takmörkuð keyrsluumhverfi.

Samantekt fyrir stjórnendur

  • Hvað er tölvunotkun og hvers vegna skiptir hún máli? Tölvunotkun er einföld hugmynd með víðtækar afleiðingar: í stað þess að biðja líkön að svara spurningum biðjum við þau að stjórna hugbúnaði—fara um vefsvæði, fylla út eyðublöð, smella sig í gegnum verkferla og ljúka verkefnum sjálfstætt frá upphafi til enda.

  • Þetta opnar leið að stórum flokki raunverulegra verkefna sem nú dreifast yfir mörg viðmót, svo sem bókunum og netverslunarferlum frá upphafi til enda, ferðaskipulagningu í mörgum skrefum og bakvinnsluferlum sem eiga sér enga einfalda samsvörun í API. Þetta eru ekki ný vandamál. Það nýja er að nú er raunhæft að leysa þau með almennum líkönum.

  • Nýleg kerfi frá Anthropic og OpenAI hafa sýnt fram á fulltrúa sem framkvæma ekki aðeins aðgerðir heldur rökhugsa um stöðu, jafna sig eftir villur og búa samstundis til lausnir fyrir tiltekin verkefni. Þannig verður vafrinn að almennu keyrsluumhverfi fyrir fulltrúa, en um leið vaknar brýn hönnunarspurning: hversu mikið af þessu umhverfi ættum við að sýna líkaninu?

  • Fyrstu kerfin svöruðu því með því að setja vafrann í hjúp með föstum hópi öruggra, fyrirfram skilgreindra aðgerða. Eins og við færum rök fyrir í þessari grein er sú nálgun að ná takmörkum sínum.

Skýringarmynd sem sýnir samantekt fyrir stjórnendur.

Við smíði vafrafulltrúa er kunnuglegt viðbragð að treysta líkaninu ekki um of.

Því setjum við hjúp utan um vafrann. Við bjóðum upp á fyrirfram skilgreind verkfæri á borð við click, type, scroll, select og read_text. Við einföldum Document Object Model (DOM). Við þrengjum aðgerðarrýmið. Við reynum að gera hegðun skiljanlega og stýranlega með sérhönnuðum sértækum lögum.

Þetta er skynsamlegur upphafspunktur. En þetta er jafnframt, í síauknum mæli, röng langtímaarkitektúr.

Eftir því sem líkön sem eru framarlega í tækniþróun verða betri snýst takmörkunin ekki lengur aðeins um að líkanið skorti verkfæri. Hún felst í því að við neyðum það til að vinna í gegnum sértæk lög sem fjarlægja of mikið af undirliggjandi kerfinu. Við þjöppum flóknu og kviku umhverfi saman í fast aðgerðaviðmót og biðjum síðan líkanið að skila góðum árangri þrátt fyrir þetta upplýsingatap.

Þessi málamiðlun verður sífellt óhagstæðari.

Breytingunni sem við höfum verið að kanna er einfalt að lýsa, en afleiðingar hennar eru miklar. Í stað þess að líta á fulltrúann sem valbúnað fyrir fyrirfram skilgreindar aðgerðir lítum við á hann sem forritssmið sem starfar innan takmarkaðs keyrsluumhverfis.

Líkönin urðu gríðarlega góð og þurfa ekki lengur sértæku öryggisgrindurnar þínar—þau þurfa allt aðgerðarrýmið til að hanna, framkvæma og ítreka verkefnið þar til markmiðinu er náð.

Þessi grein fjallar um þessa breytingu, frá vafrasjálfvirkni sem byggist mjög á sértækum lögum yfir í takmarkaða tölvunotkun, og hvað breytist þegar kerfi eru hönnuð með þessum hætti.

Hvers vegna sértæk lög bregðast

Vandinn er ekki sá að föst aðgerðaviðmót séu röng í grunninn. Vandinn er að vefurinn vinnur ekki með þeim.

Skýringarmynd sem sýnir hvers vegna sértæk lög bregðast.

Nútímaviðmót eru byggð á React, Vue og Angular, með ósamstilltum stöðuuppfærslum, tilbúnum atvikakerfum og innfelldum íhlutum þriðju aðila sem keyra í iframe-römmum frá öðrum uppruna og fylgja eigin lífsferli. Hjúpur sem segir „sláðu inn í þennan innsláttarreit“ er aðeins réttur ef síðan er sammála skilgreiningu þinni á innslætti. Margar síður eru það ekki. Ef gildi er stillt beint er breytingagreining rammans oft sniðgengin að fullu. Innsláttarreiturinn virðist útfylltur. Sannprófunin fer aldrei af stað. Eyðublaðið virkar enn ekki.

Þetta má plástra. Þú getur bætt við sértilvikum fyrir React-innsláttarreiti, sent blur-atvik eftir focus og beðið eftir að netumferð stöðvist áður en staðan er lesin. Hver plástur er réttur í sínu samhengi. Saman safnast þeir upp í kerfi sem verður sífellt erfiðara í viðhaldi og sífellt sérhæfðara fyrir þau vefsvæði sem þú hefur þegar séð.

Dýpri vandinn er að þú festir forsendur um það hvernig samskipti eigi að virka í sértæka lagið og uppgötvar síðan að vefurinn byggist á öðrum forsendum.

Þegar sértæka lagið mætir raunverulegu ferli

Tökum greiðsluform frá Stripe eða Adyen sem er fellt inn í iframe-ramma frá öðrum uppruna. Hjúpurinn nær ekki beint til þess vegna þess að það tilheyrir öðrum uppruna. read_text-verkfærið getur ekki séð innri stöðu þess. type-verkfærið getur ekki unnið með innsláttarreiti þess. Fulltrúi sem byggist á hjúpum kemst ekki lengra. Sértæka lagið var hannað fyrir aðalskjalið. Verkefnið sjálft er þar sem sértæka lagið sér ekki til.

Svipað ósamræmi kemur fram í ferlum þar sem það er ekki eins augljóst. Fellilisti sem hugbúnaðarrammi stýrir bregst ef til vill alls ekki við beinum smellum, því sýnilega einingin er ekki eiginlegi stýrihlutinn. Hann kann að krefjast runu lyklaborðsatvika til að koma undirliggjandi stöðubreytingu af stað. Séð utan frá virðist hægt að smella á notendaviðmótið. Sértæka lagið segir „smelltu“. Ekkert gerist.

Eða tökum sprettigluggaferli í mörgum skrefum þar sem sýnilegar DOM-uppfærslur dragast aftur úr innri stöðubreytingum. Rétta næsta aðgerðin veltur á stöðubreytingu sem birtist ekki enn í þeim einingum sem hjúpurinn sér. Fulltrúi sem byggist á hjúpum bregst þá við of snemma eða les úrelta stöðu vegna þess að sýn hans á kerfið er ófullkomin.

Í öllum tilvikum felur sértæka lagið merkin sem fulltrúinn þarf í raun.

Líkan sem starfar á lægra stigi—skoðar virkt DOM, rökhugsar um rammamörk og býr til samskiptarunu fyrir þetta tiltekna viðmót—getur tekist á við þessar aðstæður. Ekki er um að ræða að líkanið sé í eðli sínu gáfaðra. Það hefur einfaldlega aðgang að upplýsingunum sem höfðu verið fjarlægðar.

Breytt kerfisarkitektúr

Breytingunni sem við höfum unnið að er einfalt að lýsa: í stað þess að biðja líkanið að velja úr fyrirfram skilgreindum aðgerðum gefum við því framkvæmdarviðmót á lægra stigi og takmörkum það með keyrslureglum fremur en hönnun sértækra laga.

Þessi hönnunarákvörðun sprettur af víðari þróun í geiranum í átt að grunneiningum á lægra stigi—verkfærum sem nýta meðfædda getu fulltrúans til leiðréttinga við keyrslu og gerðar vandaðs kóða, í stað harðkóðaðra sérverkfæra sem eru traust en skerða aðlögunarhæfni líkansins að ólíkum umhverfum.

Lítum á velgengni Claude Code sem eitt helsta verkfæri margra forritara og almennari þróun geirans í átt að fulltrúum sem byggjast á skipanalínu. Stærsti kostur Claude Code er ekki líkanið sjálft heldur beislið á lægra stigi. Þegar líkanið fær færri og einingaskiptari verkfæri á lægra stigi—þ.e. skipanalínuna—verður frammistaða þess við verkfæraköll betri, einkum vegna þess að fulltrúinn getur rökhugsað og búið til sérsniðnar skriftur fyrir verkefnið í stað þess að reyna að nota almenn verkfæri sem fylla samhengisgluggann af óþarfa efni.

Í vafrasjálfvirkni þýðir þetta í reynd að líkanið getur skoðað virka stöðu síðunnar beint, farið á milli ramma og samið sérsniðinn samskiptakóða fyrir núverandi viðmót í stað þess að varpa öllu yfir á fastan hóp forsmíðaðra aðgerða.

Líkanið hagar sér síður eins og valbúnaður og frekar eins og höfundur keyrslunnar. Það skoðar núverandi stöðu, rökhugsar um viðmótið og býr til samskiptarökfræði fyrir þessar tilteknu aðstæður. Það getur búið til runur í mörgum skrefum, lagað sig að óvenjulegum ferlum og sannreynt niðurstöður áður en haldið er áfram. Þegar aðgerð mistekst sér líkanið undirliggjandi villu og leiðréttir sig sjálft. Þetta er öflugra og áhættusamara—en mun nær raunverulegu eðli vandans.

Mikilvægt er að brottnám sértæka lagsins dregur ekki úr aga kerfisins. Aginn færist annað.

Vinna sem áður fór fram við hönnun hjúpa og meðhöndlun jaðartilvika færist á þrjá staði: í kvaðninguna (sem verður eins konar rekstrarþjálfun), keyrsluumhverfið (sem framfylgir mörkum á borð við umfang flakks, viðkvæmar aðgerðir og endurtekningarhegðun) og matslagið (sem metur ekki aðeins hvort verkefnið tókst heldur einnig hvort milliskrefin voru rétt). Færri brothætt sértæk lög. Öflugri umlykjandi kerfi.

Óvænt afleiðing: einfaldari vörukóði og víðtækari alhæfing

Ein afleiðing þessarar breytingar er að vörukóðinn verður oft einfaldari, jafnvel þótt kerfið í heild verði öflugra. Í stað þess að festa samskiptamynstur í endurnýtanlega hjúpa býr fulltrúinn til hegðun við keyrslu. Þú viðheldur fáum, öflugum grunneiningum og takmörkuðu keyrsluumhverfi í stað sívaxandi flóru sérhæfðra verkfæra og rökfræði fyrir jaðartilvik.

Þetta breytir einnig því hvernig kerfið alhæfir. Fulltrúi sem byggist á hjúpum alhæfir vel yfir á verkefni sem líkjast hjúpunum sem þú hefur þegar smíðað. Fulltrúi í takmörkuðu keyrsluumhverfi alhæfir yfir á verkefni sem byggjast á sama framkvæmdargrunni, jafnvel þótt sýnilega viðmótið sé ólíkt.

Samskipti við leitarform, bókunarferli eða stillingasíðu geta til dæmis litið gerólíkt út í notendaviðmótinu. Undir niðri eiga þau þó sameiginleg mynstur: að lesa stöðu, kveikja atvik, sannreyna niðurstöður og meðhöndla ósamstilltar uppfærslur. Kerfi sem starfar á því stigi yfirfærist eðlilegar milli verkefna.

Endurnýtanlegi þátturinn er ekki aðgerðalistinn. Hann er geta líkansins til að skoða stöðu, bregðast við á öruggan hátt og sannreyna niðurstöður.

Settu skorður, ekki ofmikla aðstoð

Skýringarmynd sem sýnir að setja eigi skorður en ekki veita ofmikla aðstoð.

Skýrasti lærdómurinn af þessari vinnu er að áreiðanleiki fæst ekki með því að gefa líkaninu fleiri hjálparföll. Hann fæst oft með færri og öflugri grunneiningum sem eru takmarkaðar á réttan hátt. Of mikil aðstoð festir í kóða forsendur um hvernig eigi að vinna verkefni. Skorður skilgreina örugg rekstrarmörk og gera líkaninu kleift að finna betri lausnir við staðbundnar aðstæður.

Öflugra framkvæmdarviðmót krefst einnig skýrara öryggislíkans. Þegar fulltrúinn er ekki lengur bundinn við fáar fyrirfram skilgreindar aðgerðir vinnur hann í raun beint með raunverulegan hugbúnað. Það breytir áhættusniðinu samstundis.

Við hönnun þarf að huga að fjórum atriðum:

Afhjúpun gagna. Þegar fulltrúinn vinnur með raunveruleg viðmót rekst hann oft á viðkvæmar upplýsingar. Því þarf markvissa nálgun við felun og aðgangsstýringu. Aðeins ætti að birta gögn þegar framkvæmd krefst þess og fara verður varlega með annála og rakningargögn svo rekjanleiki verði ekki viðkvæmasti hluti kerfisins.

Umfang framkvæmda. Öflugur fulltrúi ætti ekki að geta starfað án takmarkana. Í reynd þarf að setja skorður við því hvert hann getur farið, hvaða lén hann getur opnað og við hvaða kerfi hann má eiga samskipti. Þessum skorðum ætti að framfylgja í keyrsluumhverfinu en ekki láta þær ráðast af venjum í kvaðningum.

Traust á umhverfinu. Nútímaviðmót geta innihaldið villandi eða beinlínis fjandsamlegar leiðbeiningar, efni eða ferli. Kvaðningarvörpun í gegnum síðuefni er raunverulegur árásarflötur. Kerfið þarf skýrt stigveldi leiðbeininga, sannprófanir og stöðvunarskilyrði svo fulltrúinn fylgi ekki óæskilegri leiðsögn.

Sjálfræðisrófið. Ekki ætti að framkvæma allar aðgerðir með fullu sjálfræði. Í mörgum raunverulegum rekstrarumhverfum er mikilvægt að líta á sjálfræði sem róf. Kerfið getur sýnt mikla virkni fulltrúa við könnun og framkvæmd en samt krafist samþykkis fyrir tiltekna flokka aðgerða.

Grunnreglan er einföld: aukið vald líkansins krefst öflugra umlykjandi kerfis. Sjálfræði án stefnu er ekki tilbúið til raunnotkunar.

Nýja sjónarhornið sem breytti hugsun okkar

Við hættum að spyrja: hvaða aðgerðir vafrans eigum við að gera aðgengilegar?

Við fórum að spyrja: hvernig getum við veitt líkaninu aðgang að öllu aðgerðarrýminu—og hvernig mótum við keyrslureglur utan um það sem tryggja samt öryggi?

Þetta nýja sjónarhorn breytir því hvað skiptir máli. Flokkun aðgerða og tæmandi hjúpar skipta minna máli. Keyrslureglur, rekjanleiki og mat á hverju skrefi skipta meira máli. Geta líkansins og hönnun kerfisins koma ekki hvort í stað annars. Eftir því sem líkönin batna verður framlag kerfisins mikilvægara, ekki síður mikilvægt.

Vafrafulltrúar sem virka í sýnikennslu ná oft árangri vegna þess að verkefnið er afmarkað og umhverfið samstarfsfúst. Kerfi til raunnotkunar krefjast annars: takmarkaðrar framkvæmdar, mælanlegrar hegðunar og mats sem greinir rétta niðurstöðu frá heppni.

Lokaorð

Minni hönnun hjúpa. Meiri kerfisverkfræði.

Þótt við höfum einblínt á vafrafulltrúa vísar þetta til víðara sjónarhorns þar sem tölvunotkun er sjálfstæð grein kerfisverkfræði.

Höfundur

Yuxi Huan, Yuliyan Stefanov Savchev, Sheah Wen Liaw