Hermes Agent Lab

Hermes Agent Blog — Praxisleitfäden und Einblicke

Neueste Artikel und Einblicke.

Ein umbenanntes Hermes-Profil hinterließ ein Gespenst

Beim Umbenennen wanderte nur das Verzeichnis, die State-DB blieb auf dem alten Namen. PR #112653 migriert die Identität mit und sperrt gelöschte Profile.

Weiterlesen

Gateway-Multiplexing ist jetzt standardmäßig aktiv

gateway.multiplex_profiles ist jetzt standardmäßig an, doch ein Boot-Guard entscheidet ungesetzte Werte bei jedem Start: ein Gateway bedient dann alle Profile.

Weiterlesen

Warum state.db in Docker Desktop, OrbStack- und WSL2-Mounts beschädigt wird

Bind-mounte dein Datenverzeichnis in einen Container, und virtiofs oder 9p kann SQLite WAL nicht den Shared Lock geben, den es braucht – zwei Writer beschädigen state.db dann still, während jeder Integrity Check durchläuft. Seit PR #111433 sagt Hermes das beim Start und in hermes doctor, mit zwei konkreten Fixes.

Weiterlesen

Du zahlst schon fürs Denken, das du nicht brauchst: Reasoning-Aufwand in jedem Hermes-Modell-Picker

Eine einzeilige Umbenennung mit ultra Reasoning-Aufwand abzurechnen ist die häufigste Verschwendung in einem Agent-Setup. PR #110346 setzt einen Effort-Schritt auf jeden Modell-Picker – hermes model, /model, die Ink TUI, das Messaging-Gateway. Hier ist die komplette Steuerfläche: /reasoning, die Reasoning-Pille im Desktop-Composer, Aufwand pro Aufgabe unter Settings → Model → Auxiliary, agent.reasoning_overrides und delegation.reasoning_effort.

Weiterlesen

Warum deine MCP-Tools dich ständig ausloggen: Der OAuth-Token-Lebenszyklus von innen

Figma, Linear und Notion bitten Hermes immer wieder um eine neue Anmeldung – und meist ist es keine Fehlkonfiguration. Hier ist der Token-Lebenszyklus dahinter: wie gleichzeitige Refreshes die Reuse Detection auslösen, warum ein Refresh Token an den Server gebunden bleiben muss, der es ausgestellt hat, und die vier Fixes, die Hermes dafür ausgeliefert hat.

Weiterlesen

hermes profile update löschte früher deine Skills und Cron-Jobs

PR #111344 behebt einen P1-Datenverlust-Bug: Das Aktualisieren einer Profil-Distribution ersetzte die ganzen Verzeichnisse skills/ und cron/ und löschte damit alles, was Nutzer hinzugefügt hatten. Jetzt wird pro Root gemergt, sodass deine Ergänzungen überleben, während die vom Autor ausgelieferten Roots weiter aktualisiert werden.

Weiterlesen

Hermes v0.21.3: deine Desktop-Session meldet sich nach dem Schlafmodus nicht mehr selbst ab

v0.21.3 (Tag v2026.9.14) ist das Patch-Tag, das die Anmelde-Fixes für den Remote-Zugriff zu Docker- und Cloud-Nutzern bringt: gleichzeitige Refresh-Bursts widerrufen nicht mehr die ganze Session, der Refresh läuft nicht mehr auf dem Event-Loop, und langlebige Prozesse leaken keine doppelten state.db-Writer-Handles mehr.

Weiterlesen

Deine iPhone-Fotos funktionieren endlich: HEIC-Dekodierung in vision_analyze – und Vision-Tools, die nicht mehr verschwinden

Ein iPhone-Foto an Hermes zu übergeben brachte früher nur eine Zeile zurück: source is not a recognized image. PR #106408 ergänzt ISO-BMFF-ftyp-Sniffing plus pillow-heif-Normalisierung; PR #110136 behebt das Cache-Poisoning, durch das Vision-Tools in lang laufenden Prozessen verschwanden.

Weiterlesen

OAuth auf einem Remote-Server abschließen: SSH-Tunnel, eingefügte Callbacks und Device Codes

Wenn Hermes auf einer Cloud-VM oder hinter einem Jump Host läuft, bricht Loopback-Redirect-OAuth (Spotify, entfernte MCP-Server) an 127.0.0.1 zusammen. Drei gangbare Wege: ein lokaler SSH-Forward, das Zurückeinfügen der Redirect-URL und Device-Code- bzw. Paste-the-Code-Flows.

Weiterlesen

169.254.169.254 fragt jetzt zuerst nach: Hermes legt Credential-Abrufe aus Cloud-Instance-Metadata hinter eine Approval

Auf einer Cloud-VM liefert der Instance-Metadata-Service temporäre IAM-Credentials an jeden lokalen Prozess, ganz ohne Authentifizierung. Seit PR #106418 lösen Kommandos, die 169.254.169.254, fd00:ec2::254, metadata.google.internal oder 100.100.100.200 treffen, eine Approval-Abfrage aus, statt automatisch genehmigt zu werden.

Weiterlesen

Wenn die Finger Esc drücken: Vim-Keybindings für den Hermes-CLI-Composer (plus der Branch-Name in deiner Status Bar)

Du tippst einen langen Prompt, entdeckst einen Tippfehler und drückst reflexhaft Esc, um ihn zu korrigieren – nichts passiert. Nach PR #106412 macht display.vim_mode aus dem CLI-Input-Composer einen Editor im vi-Stil, mit einem live aktualisierten NORMAL/INSERT/REPLACE-Label in der Status Bar.

Weiterlesen

Hermes v0.21.2: mehr Profil-Isolation und kein Backend mehr pro Profil

v0.21.2 schließt sieben Leckpfade zwischen Profilen, verhindert ein Backend pro Profil im Desktop und räumt eine Reihe von Cron-, Kanban- und Memory-Verhalten auf, die bisher keinen Sinn ergaben.

Weiterlesen

Kein Neustart mehr: Hermes bedient neue Profile direkt im laufenden Gateway

Du legst um zwei Uhr nachts ein drittes Profil an, klebst den Bot-Token ein, schreibst hallo in Telegram – und niemand antwortet. Der Desktop zeigt weiterhin das Gateway dieses Profils als gestoppt. Die einzige dokumentierte Lösung war der Neustart des Gateways, und der unterbricht die beiden anderen Profile mitten in laufenden Langzeitjobs. PR #109239 ändert das: Ein laufendes Multiplex-Gateway gleicht sein Profilverzeichnis jetzt im Betrieb ab. Neue Profile werden sofort bedient, später eingetragene Zugangsdaten bauen ihren Adapter neu auf, gelöschte Profile werden abgebaut und aus dem Routing genommen, und ein Rescan alle 30 Sekunden fängt die Fehlerfälle auf. Am 2026-09-12 in main gemergt, nach dem Release v0.21.2.

Weiterlesen

Hermes fragt jetzt nach, bevor Pakete deinstalliert werden

Ein globales npm-Paket bremst deine Builds aus, du tippst `npm uninstall -g some-package` und drückst Enter. Zwei Tage später fehlt es in der CI und alle Projekte auf dieser Maschine sind betroffen. Dieses Kommando lief früher völlig ohne Rückfrage, weil das Gate für gefährliche Kommandos nur Shell-Primitive kannte. PR #109170 (bereits in main) ergänzt eine package manager uninstall-Regel für npm, pnpm, yarn, pip und brew: Deinstallationen fragen jetzt nach, Installationen und Updates laufen weiter durch. Die Regeln sind mit _CMDPOS verankert, damit Text in Anführungszeichen nicht fälschlich anschlägt – auch eine globale Option mit einem Argument rutscht nicht durch.

Weiterlesen

Hermes MCP include: Eine leere Liste blockiert jetzt überall wirklich alles

Mehrere Oberflächen lasen tools.include: [] als „Schlüssel nicht gesetzt“. Nach PR #109188 lesen hermes mcp list, hermes mcp configure, hermes tools, die Katalog-Neuinstallation und das Desktop-MCP-Panel daraus 0 ausgewählt.

Weiterlesen

Hermes-Cron-Jobs degradieren jetzt, statt auf systemd-Gateways ohne User-D-Bus-Session hart zu scheitern

Auf von systemd verwalteten Gateways ohne User-D-Bus-Session (Container, schlanke LXC-Images, Service-User ohne linger) scheiterte bisher jeder fällige Cron-Job direkt beim Dispatch. PR #109311 lässt solche Jobs stattdessen degradieren: weiterhin ein eigener externer Worker-Prozess, nur ohne cgroup-Isolation, mit einer einzigen Warnung pro Gateway-Prozess. Mit cron.require_restart_safe_scope: true kehrt das alte fail-closed-Verhalten zurück. Am 2026-09-12 in main gemerged; noch in keinem Release.

Weiterlesen