Agenci AI

Vercel Labs wypuszcza agent-desktop: agenci obsługują aplikacje przez drzewo dostępności, nie przez zrzuty ekranu

Vercel Labs opublikowało agent-desktop – otwartoźródłowe narzędzie wiersza poleceń, które pozwala agentom AI czytać i obsługiwać aplikacje desktopowe. Jak opisuje Marktechpost, wersja 1.0.2 trafiła do sieci 30 października 2026 roku na licencji Apache-2.0 (wpis o wydaniu jest na GitHubie). Kluczowa różnica wobec popularnych rozwiązań typu computer use jest taka, że agent nie analizuje obrazu ekranu, tylko dostaje strukturę interfejsu z systemowego API dostępności.

Samo narzędzie nie jest agentem. Nie zawiera żadnego modelu językowego ani interfejsu graficznego – każde polecenie wypisuje jedną kopertę JSON i kończy działanie. Pętla „obserwuj, działaj, weryfikuj” zostaje po stronie agenta, który je wywołuje. Vercel Labs opisuje w repozytorium narzędzie jako zapewniające agentom „niezawodną obsługę komputera”: odwołania do elementów pozostają stabilne, a akcje można bezpiecznie powtarzać bez polegania na interpretacji pikseli.

Jak to działa

Projekt to CLI napisane w Ruście plus biblioteka w C. Rdzeń komunikuje się z systemem wyłącznie przez interfejs PlatformAdapter, a pod spodem pracuje jeden z natywnych mechanizmów: AX API na macOS, UI Automation na Windows albo AT-SPI na Linuksie. Każda binarka jest kompilowana pod jeden system. Narzędzie ma 60 nazw poleceń, z czego 56 jest operacyjnych.

Agent zaczyna od migawki (snapshot) okna, w której każdy element, na którym można działać, dostaje referencję (ref). Zawiera ona identyfikator migawki, więc goły zapis w rodzaju @e8 jest odrzucany z błędem INVALID_ARGS. Gdy interfejs się zmieni, akcja zwraca STALE_REF lub AMBIGUOUS_TARGET i agent musi zrobić nową migawkę. Każdy błąd ma też wskazanie, czy ponowienie jest bezpieczne. Rozpoznawanie referencji jest ścisłe i w razie wątpliwości kończy się odmową, a nie zgadywaniem.

Akcje na referencjach przechodzą przez API dostępności bez ruszania kursorem i bez przejmowania fokusu, więc użytkownik może pracować na tym samym komputerze. Flaga --headed włącza fizyczne sterowanie wejściem, gdy jest potrzebne. Każda akcja czeka do 5000 ms, aż cel będzie widoczny, aktywny i stabilny.

Oszczędność tokenów – według autora

Gęste aplikacje potrafią wystawiać tysiące węzłów dostępności. Dlatego tryb --skeleton czyta tylko trzy poziomy w głąb, a ucięte kontenery dostają licznik dzieci i referencję do „wejścia głębiej”. Polecenie snapshot --root dociąga potem wybrany fragment.

Autor projektu podaje, że w Slacku, VS Code i Notion daje to o 78–96 proc. mniej tokenów niż zrzut całego drzewa. W Apple Maps pojedyncze spojrzenie spada z 3811 do 273 tokenów, a symulowane zadanie na 52 kroki – z 198 tys. do 31 tys. Marktechpost zaznacza, że to dane własne autora, a niezależnego benchmarku jeszcze nie ma. Dla porównania dokumentacja Anthropic szacuje koszt jednego zrzutu ekranu w Claude computer use na ok. 1000–1800 tokenów wejściowych, plus ok. 4500 tokenów za definicję zestawu narzędzi w każdym żądaniu.

Ograniczenia

Podejście ma oczywisty warunek: aplikacja musi publikować drzewo dostępności. Narzędzie nie dopasowuje pikseli, więc interfejs bez takiego drzewa jest dla niego niewidoczny. To też odpowiedź na pytanie, czy agent-desktop zastępuje wizję – FAQ projektu mówi, że główny przepływ opiera się na natywnych drzewach dostępności i referencjach do elementów interaktywnych.

  • Zimny start aplikacji opartych na Chromium lub Electronie może trwać 10–25 sekund, zanim wystawią drzewo webowe.
  • Na Windows aplikacje działające z wyższym poziomem integralności niż terminal odrzucają wejście.
  • Na Linuksie obsługa myszy i nakładka kursora wymagają X11.
  • Na macOS zaplanowane są jeszcze elementy powłoki systemowej, a użytkownik musi nadać uprawnienie dostępności.
  • Gdy kilku agentów działa równolegle, fizyczne wejście i tak jest szeregowane przez globalną „dzierżawę” interakcji; akcje semantyczne jej nie potrzebują.
  • Migawki, odczyty schowka i zrzuty ekranu mogą zawierać prywatne dane, więc nie powinny trafiać do publicznych logów.

Wymagania systemowe to macOS 13+, Windows 10 1809+ lub Server 2019+ oraz Ubuntu 24.04+, w architekturach x64 i ARM64, bez GPU. Instalacja sprowadza się do npm install -g agent-desktop, a agent uczy się narzędzia z wbudowanej dokumentacji poleceniem agent-desktop skills get desktop. Biblioteka w C pozwala wywoływać je w procesie z Pythona, Swifta, Go, Rubiego i Node. W aplikacjach Electron zawartość webową można przekazać agent-browserowi przez port DevTools otwierany opcją launch --cdp.