Zurück zu Arbeiten

HANDRAISE

2026

Vier Pakete aus einer einzigen gemessenen Zahl.

Agent InfrastructureTypeScriptCloud BrowsersBenchmarkingOpen Source
Live-Projekt ansehen
HANDRAISE

Solari-Cloud-Browser-Sessions enden ungefähr zehn Minuten nach dem Start. handraise übergibt einen feststeckenden Agenten an ein Handy und setzt dieselbe Session fort, outlive sichert die Session und betritt die Aufgabe nach dem Tod erneut, zwei Adapter bringen denselben Unterbruch nach Slack und Telegram.

Solari betreibt Browser in der Cloud, damit Agenten sie bedienen. Die Sessions enden ungefähr zehn Minuten nach dem Start, und es gibt kein timeoutMs, keinen Keep-Alive-Aufruf und kein resume(). Ich habe sechs gemessen: fünf starben zwischen 604 und 617 Sekunden, eine nach 319. Untätig, alle 25 Sekunden angepingt oder mit laufendem Screencast machte keinen Unterschied. Die untätige lebte am längsten.

Aus dieser einen Zahl wurden vier Pakete, alle MIT, alle auf npm.

outlive: Die Session stirbt, die Aufgabe nicht

Sichert Cookies, localStorage und die URL, bemerkt den Tod, startet einen neuen Browser und ruft deine Aufgabe erneut auf, mit attempt: 2.

  • 5 von 5 Zwölf-Minuten-Aufgaben abgeschlossen, Baseline 0 von 5. Zehn Läufe, fünfzehn Sessions, beide Arme gleichzeitig und abwechselnd. Jeder Baseline-Lauf kam bis Abfrage 29 oder 30 und flog mit goto: Browser closed raus.
  • Fünf Neustarts, kein Fehlschlag. Im Median 4,9 Sekunden verlorene Arbeit, im schlimmsten Einzelfall 15,0, bei 30 Sekunden Checkpoint-Abstand.
  • Einen Browser zu ersetzen dauert 2121 ms. Der Checkpoint braucht 200 ms und 1640 Bytes.

Cookies samt der HttpOnly-Cookies, localStorage, die URL und eine angemeldete Sitzung überleben einen Neustart, gemessen 3 von 3. Das DOM, der Zustand in der Seite, die Scrollposition, halb ausgefüllte Formulare, IndexedDB und Service Worker nicht. Ein Checkpoint ist kein Abbild eines laufenden Programms, und die README sagt das, bevor sie irgendetwas anderes sagt.

handraise: Die Wand, über die ein Mensch muss

Ein Agent trifft auf einen 2FA-Code, den er nicht wissen kann. Er hebt die Hand, im Terminal erscheint ein QR-Code, die laufende Session öffnet sich auf einem Handy, und nachdem du den Code getippt hast, macht der Agent in derselben Session weiter.

Die Handoff-Oberfläche läuft ebenfalls auf Solari. handraise erzeugt eine Sandbox, schreibt ein abhängigkeitsfreies Node-Relay hinein und macht es über Port-Preview erreichbar. Screencast-Bilder gehen raus, Tipp-Eingaben kommen als CDP-Ereignisse zurück, und die Sandbox wird nach dem Handoff zerstört. Sie fasst die Browser-Session nie an.

  • 19 von 20 gerettet, Baseline 0 von 20. Das sind 20 Läufe eines Workflows gegen ein Anmeldeportal, das ich selbst gebaut habe, nicht 20 verschiedene echte Workflows, und der Benchmark-Report sagt das in seiner eigenen Ausgabe.
  • Vom Feststecken bis live auf dem Handy: 3,53 s im p50 über 30 Läufe, davon 2,68 Kaltstart des Relays.
  • Eingabe-Umlauf 186 ms im p50 über 150 Messungen, Handy zum Relay und zurück. Der Browser liegt nicht auf diesem Weg.

Zwei Adapter

handraise-slack und handraise-telegram bringen denselben Unterbruch dorthin, wo die Person schon ist: ein Screenshot mit zwei Knöpfen im Kanal, und der Klick ist die Antwort. Kein öffentlicher Endpunkt zum Hosten.

Tech Stack

TypeScriptBunPlaywrightChrome DevTools ProtocolSolariWebSocketBiomeoxlintGitHub Actions
Live-Projekt ansehen

Cookie-Einstellungen

Wir nutzen Cookies für Analyse und Verbesserung unserer Website. Datenschutzerklärung