Má vlastní vibecoded RPA šanci proti Claude Computer Use?
Stavím si fyzického robota pro RPA (Robotic Process Automation), který automatizuje práci v aplikacích přes myš a klávesnici. Claude Computer Use se ne vždy hodí - kvůli nákladům při tisících kroků, citlivosti dat, která by musela opustit síť, i kvůli tomu, že klasické RPA má v některých doménách pořád lepší výsledky.
Teď ho nasazuju na testování šablon a E2E v contract lifecycle management systému Legito, ale věřím, že půjde použít v dalších projektech. V sérii příspěvků ho rozeberu po hardwarových i softwarových součástkách.
Kurzor, který je vidět.
Když jsem na robotu začal pracovat, první problém nebyl, že neklikne. První problém byl, že robot neví, kam kliknul. Kurzor, který člověk vnímá bez přemýšlení, je pro počítačové vidění překvapivě složitý objekt. Mění tvar (šipka, přesýpací hodiny…), je tenký, světlý a pohybuje se po pozadí, které má často podobnou barvu.
Používám OmniParser, lokální vizuální model pro analýzu UI, který ze screenshotu dokáže určit prvky na obrazovce a jejich pozice. Když se ho zeptám „kde je kurzor“, většinou se trefí. Ale pár procent chyb stačí na to, aby se práce zasekla. Je tedy třeba mít jistotu v tom, jaká je pozice kurzoru, těsně předtím, než dojde ke kliknutí.
Řešení není lepší model. Řešení je lepší kurzor.
Na Raspberry Pi 400 jsem klasickou šipku nahradil purpurovým křížem se čtvercem v barvě, která se nikde jinde na obrazovce nevyskytuje (platí pro Legito). Detekce se tím změnila z „najdi tvar“ na „najdi shluk purpurových pixelů“. A to funguje i v situacích, kdy kurzor najede na hranu obrazovky nebo úplně do rohu, systém ho ořízne a zůstane jen část. U klasické šipky by to znamenalo problém. U barevného kurzoru stačí pár pixelů a souřadnice je pořád jasná.
Druhá polovina problému je, jak s kurzorem přesně hýbat.
Počítače předpokládají, že myš má v ruce člověk. Rychlejší pohyb znamená větší posun kurzoru. Pro robota nepoužitelné. Když mu řeknu „jdi o 300 pixelů dolů“, může skončit úplně jinde. Řešení je vypnout akceleraci a pohyb linearizovat: jeden pulz = jeden pixel. Pak „o 300 dolů“ znamená skutečně 300 pixelů, bez ohledu na rychlost.
Dnes vedle sebe stojí různé přístupy. Klasické RPA kliká přímo do struktury aplikace (DOM, objekty). Claude Computer Use pracuje se screenshoty v cloudu. A můj robot jde třetí cestou - pracuje s myší a klávesnicí, vidí přesně to, co člověk, a může běžet kompletně lokálně.
Příště: ruka, která kurzorem pohybuje. Raspberry Pi Pico a firmware v C.
hashtag
#RPA
hashtag
#CLM
…more