v0.20.6

Hermes Agent v0.20.6


Overview

v0.20.6 — The Steady Roll Release. Erschienen am 27. August 2026. ~525 gemergte PRs · ~1.313 Commits · ~1.557 geänderte Dateien (+177.113 / −21.682) seit v0.20.5.

Dieses Zeitfenster ist ein stetiger Strom an Substanz: Die größte Geschichte ist consent-gesteuertes Real-Profile-Browsing – der Agent kann jetzt einen Snapshot deines eigenen Browser-Profils steuern und browst damit als du, mit deinen vorhandenen Logins und Cookies, immer unter ausdrücklicher Zustimmung und standardmäßig deaktiviert. Darum herum bekommt der Desktop-Browser ein eigenes OS-Fenster und eine verwaltete SSH-Remote-Update-Engine; der eingebaute Remote-MCP-Katalog überschreitet 50 live-verifizierte, von Vendoren gehostete Server (Cloudflare, Grafana Cloud, Better Stack, Railway und mehr); web_search/web_extract erhalten TTL-Ergebnis-Caching, sodass wiederholte Abfragen die Vendoren nicht erneut belasten; Lean-Tail-Kompression wird Standard; tool_search lernt Multi-Query-Suchen mit Stemming; gespeicherte Secrets können sich für die OS-Keychain-Verschlüsselung entscheiden (keine macOS-Keychain-Abfragen mehr pro Start); Updater pausieren Gateways über den Control-Socket, statt sie per Tree-Kill zu beenden; und in den Auswahlmenüs erscheinen neue Modelle (GLM-5.3-Flash, MiniMax M3 free, MiniMax H3 Max video).

Da dies eine Patch-Release ist, fallen die offiziellen Notizen knapp aus; die vollständige kuratierte Dokumentation erscheint mit v0.21.0. Diese Seite behandelt die wertvollsten Teile dieses Zeitfensters.


Highlights

1. Real-Profile-Browsing: Der Agent browst als du

Der Browser des Agenten lief früher in einer sauberen, ausgeloggten Welt – gut für öffentliche Recherche, frustrierend, sobald eine Aufgabe deinen eingeloggten Zustand braucht. v0.20.6 fügt consent-gesteuertes Real-Profile-Browsing hinzu (#1f4d095fd8, #830e4a29be): Wenn es aktiviert ist, kopiert Hermes das aktive Profil deines Standard-Browsers (Cookies, gespeicherte Logins, Einstellungen) in einen verwalteten Snapshot unter ~/.hermes/browser-profile/ und steuert diesen Snapshot mit seinem gebündelten Chromium. Dein Live-Profil wird nie direkt geöffnet, und die Auth-Dateien werden bei jedem Start einer frischen Session neu synchronisiert – Logins, die du in deinem eigenen Browser machst, tauchen also in der Session des Agenten auf.

# ~/.hermes/config.yaml
browser:
  use_real_profile: true

Das browser_exec-Tool stellt ein local-Argument bereit (nur wenn der Schalter aktiv ist), das eine Real-Profile-Session auch unter einem Cloud-Browser-Backend erzwingt. Unter Windows muss der Browser vor dem Kopieren vollständig beendet sein (Chrome/Edge/Brave sperren ihre Cookie-Datenbanken), und browser.real_profile_autoclose: true erlaubt Hermes, anzubieten, ihn für dich zu schließen – von selbst schließt er ihn nie. Wird der Schalter deaktiviert, wird der Snapshot-Speicher gelöscht, sodass kopierte Zugangsdaten nach dem Widerruf der Zustimmung nicht zurückbleiben. Unterstützte Browser: Chrome, Edge, Brave, Chromium; ein Nicht-Chromium-Standard (z. B. Firefox) verweigert sicherheitshalber mit einer klaren Meldung. Auch im Desktop: Einstellungen → Browser → Mein echtes Browser-Profil verwenden.

2. Desktop-Browser im eigenen OS-Fenster + verwaltete SSH-Remote-Update-Engine

Der Desktop-Browser schließt sein Dasein als eingebettetes Paneel ab: Er lässt sich jetzt in einem eigenen OS-Fenster öffnen – vergrößern, zwischen Monitoren verschieben, neben deinem Editor andocken. Der Desktop bekommt außerdem eine verwaltete SSH-Remote-Update-Engine: Updates pro Verbindung über SSH für Remote-Gateways, sodass eine Fleet von Maschinen von einer Desktop-App aus aktuell bleibt (inklusive Fleet-Profil-Leiste – Profile wechseln, und die Update-Ziele folgen).

3. Remote-MCP-Katalog: 50+ live-verifizierte Vendor-Server

Der eingebaute Remote-MCP-Katalog wächst auf 50+ live-verifizierte, von Vendoren gehostete Server – Cloudflare, Grafana Cloud, Better Stack, Railway, Canva, Dropbox, GitLab, Strava und mehr. Jeder Eintrag wird gegen den Live-Endpoint des Vendors verifiziert, und ?codemode=false ist fixiert, damit tool_search die volle Endpoint-Oberfläche jedes Katalog-Eintrags sieht. Ein Befehl, um zu sehen, was verfügbar ist:

hermes mcp catalog list --remote

4. TTL-Ergebnis-Caching für web_search / web_extract

Wiederholte Suchen und Extracts innerhalb eines kurzen Zeitfensters belasten den Vendor nicht mehr doppelt: Die Ergebnisse von web_search/web_extract werden mit einem TTL gecacht (konfigurierbar über web.cache_ttl), sodass ein Retry, eine erneute Ausführung desselben Prompts oder ein Cron-Job, der dieselbe URL zweimal prüft, die gecachte Antwort bekommt statt eines frischen (kostenpflichtigen) Aufrufs. Das spart Geld bei langen Agent-Läufen und wiederkehrenden Jobs.

5. Lean-Tail-Kompression ist jetzt der Standard

Die Kompression ist leiser und günstiger geworden: Lean-Tail ist der Standardmodus – statt eines langen Tails aus Turns mit geringem Wert behält der Kompressor eine kompakte Zusammenfassung plus einen kurzen, wertvollen Tail und reduziert damit, was jeder Turn nach der Kompression erneut senden muss. Bestehende Konfigurationen, die agent.compression.tail_mode nie gesetzt haben, übernehmen beim Upgrade den neuen Standard; explizite Einstellungen bleiben unangetastet.

6. tool_search: Multi-Query mit Stemming

tool_search akzeptiert jetzt queries: string[] – unabhängig gegen denselben Katalog gesucht, das Limit gilt pro Query (Standard 5, Maximum 25) – und liefert gruppierte Ergebnisse: Die Gruppen pro Query tragen nur Tool-Namen, während eine gemeinsame Tools-Map Quelle, Beschreibung und benötigte Parameter jedes gefundenen Tools hält. tool_describe nimmt names: string[] entgegen und gibt eine nach Namen verschlüsselte Map zurück, sodass ein einzelner falscher Name nicht mehr den gesamten Aufruf scheitern lässt. Snowball-Stemming bringt „browsing“ mit „browser“ und „searches“ mit „search“ zusammen.

{ "queries": ["browser snapshot", "web search cache", "read pdf"] }

7. Opt-in-OS-Keychain-Verschlüsselung für gespeicherte Secrets

Electrons safeStorage hat früher einen App-spezifischen Schlüssel in der macOS-Login-Keychain abgelegt, und auf Maschinen mit gesperrter oder fehlender Keychain verwandelte das jeden Desktop-Start in einen blockierenden Dialog „Keychain Not Found“. Die Keychain-gestützte Verschlüsselung ist jetzt ein explizites Opt-in (Einstellungen → Gateway): Der Standardpfad ruft keine safeStorage-API auf, und eine Einmal-Migration wandelt vorhandene verschlüsselte Blobs beim ersten Start in einfache 0600-Dateien um. Wird der Schalter umgelegt, werden alle gespeicherten Secret-Stores (connection.json, connections.json, native-oauth-tokens.json) an Ort und Stelle neu kodiert.

8. Updater pausieren Gateways über den Control-Socket

hermes update beendet laufende Gateways nicht mehr per Tree-Kill: Updater pausieren Gateways über den Control-Socket – Dienste quiescen sauber, das Update wird eingespielt, und die Gateways laufen weiter – sodass laufende Turns und Messaging-Verbindungen das Upgrade überleben. Image-/paketverwaltete Installationen verweigern außerdem unsichere In-Place-Updates über ein gemeinsames Gate (#91277 Phase 3), und gitignored-Nutzerdateien blockieren das destruktive ZIP-Overlay.

Improvements

  • Cron: dauerhafte Incident-Acks (ein Job, der einen Incident getroffen hat, kann einmal bestätigt werden, und der Ack bleibt erhalten) sowie klarere Code-Skew-Fehler, wenn Scheduler und Gateway bei der Code-Version uneins sind.
  • Slack: Link-Unfurl-Steuerung (unfurl_links/unfurl_media auf die ausgehenden Frame-Metadaten gestempelt) – Teams können verhindern, dass die Links des Agenten zu Karten aufgeklappt werden.
  • Docker: Vertrauenswürdige Profile können sich für einen gemeinsamen persistenten Container entscheiden, statt pro Chat zu splitten; der Stage2-API_SERVER_KEY-Bootstrap hängt nicht mehr davon ab, dass .env existiert.
  • Terminal: Third-Party-Sandboxes lassen sich als Terminal-Backends einstecken, ohne den Kern anzufassen.
  • Modelle: GLM-5.3-Flash erreicht die z.ai- und OpenCode-Auswahlmenüs; MiniMax M3 free kommt zu OpenRouter; MiniMax H3 Max kommt ins FAL-Video-Auswahlmenü (t2v + i2v).
  • state.db: journal_mode-Entscheidungen werden nicht mehr stillschweigend ignoriert; synchronous ist auf jeder Plattform festlegbar.
  • browser_exec: Tool-Zeilen werden nach ihrem führenden # step comment betitelt, und das Schema hat sich bei gleicher Genauigkeit um ~17 % verschlankt (803 → 663 Tokens/Aufruf).

Fixes

  • Gateway: Zwei-Witness-Loop-Liveness – der eigene Heartbeat des Watchdogs kann ein gesundes Gateway nicht mehr einfrieren oder killen (#92315, Bergung von #90502).
  • Gateway: Doppel-Kill von launchd --replace behoben – SIGUSR1-Graceful-Restart statt Supervised-argv-Übernahme (#96427).
  • Sessions: Der Empty-Session-Sweep löscht kein archiviertes Transcript mehr (#96401); Legacy-Sessions mit NULL-Owner bekommen Single-Match-Owner-Backfill plus Read-only-Resume des gespeicherten Transcripts (#96110).
  • MCP: Das stdio-Fast-Fail-Gate fordert einen Respawn an, wenn es einen toten Subprozess findet; der Children-Liveness-Check wurde ent-invertiert (#94339).
  • Gemini 3.x: Bilder werden in functionResponse.parts eingebettet, damit multimodale Tool-Ergebnisse das Modell wirklich erreichen (#96466).
  • Desktop: Gruppenchats leaken keine leeren Sentinels mehr und verschlucken keine echten Antworten mehr; ein @erwähnter Bot bekommt immer seinen Turn (#96239, #96240).
  • Update: gitignored-Nutzerdateien blockieren auch das destruktive ZIP-Overlay (#96440).
  • Approval: Übergroße approvals.timeout lassen parallele Tool-Batches nicht mehr abstürzen – beim Konfig-Lesen geklemmt (#86412).

Upgrade

hermes update

Führe nach dem Upgrade hermes doctor aus, um die Installation zu verifizieren, und starte das Gateway neu (hermes gateway), damit Plattformänderungen wirksam werden. Um zu sehen, was das nächste Update anfassen wird, bevor du es ausführst: hermes update --plan.

← Hermes Agent Changelog