v0.21.4

Hermes Agent v0.21.4


Overview

v0.21.4 — The One-Gateway Patch. Veröffentlicht am 21. September 2026. Seit v0.21.3: 5.071 Nicht-Merge-Commits · 5.169 geänderte Dateien (+312.961 / −62.855) · 1.812 gemergte PRs · 2.116 geschlossene Issues, gemessen am Commit 4b8a8134009a8727a289bcabeb0019fedd353128.

Dieses Tag existiert für Downstream-Konsumenten: Docker-Images, Hermes Cloud und gehostete Deployments bauen alle aus dem neuesten Release-Tag, also müssen die Fixes in diesem Fenster in einer stabilen Version landen, bevor Cloud-Nutzer sie bekommen können. Der Release-Text ist explizit: Die vollständige kuratierte Ausarbeitung ist auf v0.22.0 verschoben, das alles ab v0.21.0 dokumentieren wird — Highlights, Feature-Bereiche und Contributor-Credits. Diese Seite hält fest, wofür das Tag gedacht ist, und die Änderungen im Fenster, die auf deiner Maschine bereits live sind und noch nirgends aufgeschrieben wurden.


Highlights

1. Gateway-Topologie-Konvergenz: ein Host-Gateway pro Maschine

Die größte architektonische Änderung im Fenster. Genau ein hermes gateway run-Prozess pro Host pro OS-Benutzer, der jedes Profile bedient; das gateway run eines Secondary-Profiles hängt sich jetzt an den Host-Prozess (gibt dessen PID und die bediente Menge aus, Exit 0), statt einen zweiten zu starten. gateway start --all und restart --all bedeuten diesen einen Host-Multiplexer und fegen nie ein Gateway weg, das ein anderes Profile laufen lässt.

Der alte Schalter gateway.multiplex_profiles: false ist außer Betrieb: Er wird weiter geparst, kann aber keinen separaten Gateway-Prozess mehr festnageln — er wird wie ein nicht gesetzter Key aufgelöst und protokolliert eine Warnung. Ein benanntes Profile kann ohne --force keine neue Gateway-Unit installieren, und --standalone ist entfernt. Der Upgrade-Pfad ist hermes gateway migrate --multiplex --dry-run, um den Plan zu lesen, dann hermes gateway migrate --multiplex, um ihn anzuwenden — Konvergenz wird durch die Topologie definiert, nicht durch das Config-Flag, also ist das erneute Ausführen des Befehls der Wiederherstellungspfad nach einer unterbrochenen Migration. PRs #118273, #118097, #118433.

2. Connectors: eine App direkt aus der Unterhaltung heraus verbinden

Ein Nutzer bittet im Chat darum, Notion zu verbinden, und das Backend führt die gesamte Verbindung aus: Es sammelt die Werte ein, zeigt den Anmeldelink, und der Agent kann das neue Tool noch im selben Turn aufrufen. Desktop, hermes --tui und die klassische CLI zeichnen alle denselben Einrichtungsschritt. Das Repository liefert einen Katalog mit 65 geprüften MCP-Servern, 55 davon mit OAuth (#111008).

3. CLI- und Agent-Oberfläche: strukturierte Ausgabe, angeheftete Skills, Journal-Modus

  • hermes chat -q "..." --format stream-json gibt JSONL-Events auf stdout aus (init / text / tool_use / tool_result / result), wobei das abschließende Envelope Token-Statistiken und einen Exit-Code trägt — so kann die CI einen Lauf konsumieren, ohne den Bildschirm zu scrapen (#90411).
  • skills.auto_load in der config.yaml heftet Skills so an, dass sie zu Beginn jeder neuen Session vollständig geladen sind, über CLI, TUI, Gateway, Cron und API-Agents hinweg; die Injektion wird einmal pro Agent aufgelöst und ist byte-stabil, sodass das Prompt-Caching überlebt (#92048).
  • hermes sessions set-journal-mode delete|wal konvertiert state.db (oder einen anderen Store via --db) offline zwischen WAL- und DELETE-Journal-Modus: Es verweigert die Ausführung, solange irgendein Prozess die Datei hält, benennt jeden Halter und liest die Header-Bytes zurück, um zu verifizieren (#117684).

4. Profile-Isolation: eine Serie von P1-Fixes

„Ein Backend, viele Profile“ verstärkt Scoping-Fehler, und dieses Fenster hat einen Schwung davon geschlossen. #118275 sorgt dafür, dass jede REST-Route das Profile respektiert, das die Anfrage nennt — zuvor löschte POST /api/memory/reset?profile=worker_beta die MEMORY.md des Launch-Profiles, und destruktive Routen geben auf einem Multi-Profile-Host jetzt 400 zurück, wenn kein Ziel genannt wird. #118373 stellt die OAuth-Auflösung des Root-Profiles für benannte Profile wieder her und behebt damit die No Codex credentials stored-Fehler nach dem Update. #118246 lässt Desktop sich an das Host-Backend anhängen, statt ein hermes serve pro Profile zu spawnen.

Improvements

  • mcp.discovery_concurrency begrenzt die MCP-Connect-Konkurrenz beim Boot (Default 4, 0 für unbegrenzt): Mit 8 stdio-Servern sinkt der gemessene Peak von 8 auf 4, was den Spawn-Sturm beseitigt (#117956).
  • Drei-Zustands-Verhalten für unautorisierte DMs: gateway.unauthorized_dm_behavior bekommt decline, mit unauthorized_dm_decline_message für die Formulierung und Overrides pro Plattform.
  • session_search-Zeitfenster: neue after- / before-Grenzen (ISO-Daten oder relative Dauern wie 7d / 24h / 2w), plus ein gelockerter OR-Matching-Retry, wenn striktes Matching nichts findet.
  • Desktop: Chat-/UI-Font-Picker (#111226), Minimieren in den Tray (#118441), HUD-Aufruf per Modifier-Tap (#118446), ein Status-Stack-Drawer pro Chat (#118407), Plugin-Deinstallation und lokale Engine-Updates mit einem Klick.
  • Ein Gateway-Neustart pro Update: hermes -p X update und hermes -p Y update starten das Host-Gateway zusammen nur einmal neu, wobei der Hinweis jedes bediente Profile erreicht (#118108).
  • Katalog-Updates: LTX 2.5 und Kling O3 Standard kommen zur FAL-Videofamilie hinzu; der Plugin-Katalog bekam einen Schwung Community-Plugins, und jedes Plugin und jeder Autor hat jetzt eine eigene Seite mit dem README auf einen geprüften Commit gepinnt.

Fixes

  • Ein Managed-Gateway-429 bei image_generate und FAL-Video wird als Rate-Limit erkannt und einmal wiederholt, statt „das Modell ist möglicherweise noch nicht aktiviert“ zu melden (#118311).
  • Ein Update-Hinweis, der an eine Plattform adressiert ist, die sich nie verbindet, wiederholt sich nicht mehr endlos mit einem Log-Eintrag alle 2 Sekunden (#118312).
  • Der Auto-Title-Aufruf konkurriert auf einem selbst gehosteten Single-Slot-Modellserver nicht mehr mit der Antwort des Turns (#117494).
  • Wenn ein Provider ein Bild zurückweist, wird nur die Kopie der Anfrage bereinigt — die Session wird nicht mehr als vision-unsupported markiert (#118316).
  • Ein TimeoutError eines Compression-Workers wird nicht mehr für einen Poll-Timeout gehalten (#118319); Session-Housekeeping läuft auf einem eigenen Pool, sodass es Turn-Bodies nicht aushungern kann (#118318); die Unterhaltungshistorie übersteht eine ASCII-Codec-Recovery (#118313).
  • Read-only-Aufräumen von Git-Objekten unter Windows (Checkpoints, Plugins, MCP-Katalog, Profile-Distributionen) schlägt nicht mehr fehl (#117609).

Upgrade

hermes update                      # Git-Installationen
# Docker / Hermes Cloud: Images werden aus diesem Tag gebaut
docker pull nousresearch/hermes-agent:v2026.9.21

Auf einer Maschine, auf der mehrere Profile laufen, beginne mit hermes gateway status und lies dann einmal hermes gateway migrate --multiplex --dry-run.

← Hermes Agent Changelog