Hermes Desktop hat sich gerade verändert: Der Preview Pane ist jetzt eine vollständige Browser-Steuerschleife


Du bittest Hermes, „sich auf dieser Seite anzumelden und meine Rechnungen abzurufen“ – früher hangelte sich der Agent in einem separaten Chromium herum, das du nicht sehen konntest, verlor dabei jede Login-Session, und du hast erst im Nachhinein erfahren, was passiert war. Das ist vorbei: Der Preview Pane in Hermes Desktop ist jetzt vollständig angebunden – der Agent kann nun den In-App-Browser direkt vor deinen Augen steuern, mit den Sessions, in denen du bereits angemeldet bist, Schritt für Schritt. Eine Reihe von Änderungen, die am 19.–20. August in main gemergt wurden, hat diese Oberfläche von einem Einweg-Spiegel in eine vollständige Steuerschleife verwandelt.

Das Gesamtbild: Eine vollständige Toolchain

Der Preview Pane war früher ein Einweg-Spiegel: open_preview platzierte eine Seite im Pane, und read_preview las den Text zurück – aber der Agent konnte die Seite nie berühren. Das Desktop-Toolset umfasst jetzt ein vollständiges Set:

Tool Was es tut
open_preview Öffnet eine Seite im Pane (bestehend)
read_preview Liest den Seitentext zurück (bestehend)
drive_preview Bedient die Seite: elements erfasst klick-/tippbare Elemente, dann wirken click/type/scroll/press auf sie ein; back/forward/reload steuern den Verlauf
annotate_preview Setzt eine Markierung auf ein Element („hier klicken“) – zeigen, ohne zu handeln
close_preview Schließt das ganze Pane oder einen bestimmten Tab (neu seit 19. Aug. – früher konnte der Agent dich nur bitten, auf ✕ zu klicken)

Die Browser-Leiste hat außerdem einen „open in system browser“-Button und einen URL-Kopieren-Button bekommen (SSH gateways erhalten automatisch die weitergeleitete Adresse), und Chat-Links haben jetzt ein Rechtsklick-Menü: im In-App-Browser oder im system browser öffnen. Der In-App-Browser und dein Alltagsbrowser reden endlich miteinander.

Was es so „seidig“ macht

Drei zugrunde liegende Designs sind es, die das Erlebnis tatsächlich verändern:

1. Inkrementelle Diff-Reads – Schluss mit dem Verschicken der ganzen Seite. Früher schickte jeder „Blick“ das komplette Seiteninventar erneut. Jetzt: Nur der erste Blick liefert das vollständige Inventar; jeder Blick danach liefert das, was sich verändert hatadded (neue Elemente vollständig), changed (Handle plus das, was von label/value/disabled tatsächlich abwich), removed/rebound als reine Listen. Gemessen an einer App-Shell mit 85 Elementen: Die Grundlast sank von 18.693 auf 4.930 Zeichen, und ein Steady-State-Turn, der zwei Dinge bewegte, kostet etwa 200. Eine Aufgabe mit zehn Schritten bezahlte früher zehn Kopien einer Seite, die sich kaum bewegt hatte. Eine vollständige Neuauslesung kommt nur dann zurück, wenn die Hälfte der Seite neu ist.

2. Langlebige Element-Handles – Framework-Re-Renders bringen sie nicht zum Verschwinden. Elemente werden nach dem benannt, was sie sind und sagen (btn-sign-in, inp-email), und merken sich ein stabiles Attribut, eine Rolle, den accessible name und die Landmarke, in der sie sitzen. Wenn ein Framework einen Knoten zerstört und einen neuen baut, bindet sich das Handle automatisch neu (der Agent hört rebound statt einer Entfernung plus einer Hinzufügung, die er neu lesen müsste). Die :nth-child-Selektorkette, die jedes Element begleitete, ist weg – sie machte 74 % des Inventars auf einer Seite mit 85 Elementen aus, und eine Positionskette bricht, sobald ein Geschwisterelement auftaucht. Eine #id oder ein [data-testid] überlebt dort, wo die Seite eine anbietet.

3. Echte Eingaben, keine synthetischen Events. Aktionen laufen über sendInputEvent von Chromium – eine Seite kann den Unterschied nicht erkennen, und Hover-/Fokus-Zustände verhalten sich exakt wie bei einem echten Nutzer (synthetische Klicks hinterlassen Seiten in Zuständen, die kein Nutzer erzeugen könnte, und React-artige Frameworks schlucken gefälschte Eingabe-Events). Die Engine ist weiterhin injiziert, aber nur, um Handles aufzulösen, Knoten zu vermessen und die Seite zurückzulesen – das Handeln selbst ist echte Eingabe an echten Koordinaten.

Überwachbarkeit: Du siehst es, also lässt du es fahren

Einen Browser zu steuern, in dem der Nutzer angemeldet ist, ist etwas anderes, als einen Wegwerf-Browser zu steuern. Deshalb erzählt das Pane in Echtzeit, was der Agent tut: das Feld, das er erwägt, das Element, auf das er zielt, der landende Klick, der Text, den er gerade gelesen hat. Der Puls läuft auch durch die 20–100 Sekunden weiter, die das Modell mit Nachdenken verbringt – wer einen Blick auf das Pane wirft, kann erkennen, was der Agent gleich mit seiner Live-Session vorhat – und es stoppen. Das ist keine unbeaufsichtigte Automatisierung; es ist Automatisierung, die du beobachtest.

Was du tun kannst

  • Angemeldete Aufgaben: „auf das Dashboard einloggen und meine Rechnungen abrufen“ – im Pane erledigt, mit deinen vorhandenen Sessions;
  • Formulare ausfüllen: elements, um Eingabefelder zu finden → type, um sie zu befüllen → absenden, komplett sichtbar;
  • Gemeinsames Zeigen: annotate_preview markiert das Ziel-Element, der Agent zeigt nur, du klickst (ideal für Workflows wie „hilf mir, genau diese eine Sache zu ändern“);
  • Aufräumen: close_preview schließt das Pane, wenn alles erledigt ist – kein Betteln nötig.

Release-Status und so bekommst du es

Diese Funktionen (#90197 / #90239 / #89366) wurden am 19.–20. August in main gemergt und sind noch in keinem Release enthalten (das neueste Release ist weiterhin v0.20.5). Zum Ausprobieren: hermes update --branch main oder warte auf das nächste Release. Sie ergänzen die vorhandenen browser_*-Tools (die ein separates Chromium steuern): Der Preview Pane ist für „den Browser vor dir, bereits angemeldet“, während browser_* für unbeaufsichtigte Automatisierung da ist – entscheide danach, ob du zuschauen willst. Mehr Desktop-Funktionen: Hermes Desktop Skills Hub und der Bot-Mode-Tiefgang; die Browser-Steuerung wurde außerdem in 4 versteckte Hermes-Tricks zusammengefasst.

Fazit

Was die Anbindung des Preview Pane wirklich verändert hat, ist dies: Agent-gesteuertes Surfen ging von einer Blackbox im Hintergrund zu sichtbarer, stoppbarer Zusammenarbeit über – schnell dank inkrementeller Reads, stabil dank Handle-Re-Binding, echt dank echter Eingaben und vertrauenswürdig dank der Live-Erzählung. Installiere den main-Build und lass Hermes einmal eine Seite vor deinen Augen steuern – dieses „seidige“ Gefühl ist eine andere Erfahrung als zuvor.