Hermes Agent v0.20.5
Overview
v0.20.5 – The Housekeeping Release. Erschienen am 19. August 2026. Seit v0.20.4 ~323 gemergte PRs · ~746 Commits · ~1.250 geänderte Dateien (+111.500 / −20.701).
Dieses Zeitfenster hat kein einzelnes Schlagzeilen-Feature – es schließt einen Stapel Aufgaben ab, die längst überfällig waren. Die größte Geschichte: Bot-Mode-Gruppenchats akzeptieren endlich Dateien: PDFs, Bilder und beliebige Anhänge per Drag & Drop, sichtbar für jeden antwortenden Bot; ältere Unterhaltungen falten sich zu einzeiligen Zusammenfassungen zusammen, damit Räume nicht mehr endlos scrollen; und Avatare werden zu deterministischen Blob-Gesichtern, die aus dem Agentennamen abgeleitet werden, mit vier neuen Silhouetten. Für den Entwicklungsalltag gibt hermes worktree list/prune Multi-Agent-Workflows einen sicheren, kontrollierten Kanal, um angesammelte Worktrees und gemergte Branches zurückzugewinnen; hermes update --plan und strukturierte Update-Belege machen zum ersten Mal nachvollziehbar, „was beim Update tatsächlich passiert ist“; Cron-Jobs erhalten persistenten Speicher wie jeder andere Agent und einen Reasoning-Aufwand pro Job; und opencode-free wird ein wirklich schlüsselloses kostenloses Modell – keine Env-Variable, kein Konto, direkt verfügbar in /model und im Desktop-Auswahlmenü.
Da es sich um ein Patch-Release handelt, 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. Bot-Mode-Gruppenchats: Dateien rein, alte Nachrichten weggefaltet
Gruppenchats waren früher reiner Text; jetzt sind Dateien erstklassig: Räume akzeptieren PDFs, Dateien und Drag & Drop, und jeder Bot, der auf den Turn antwortet, sieht die Anhänge (#97b41f8cf, #b359db72e). Lange Räume scrollen nicht mehr endlos – ältere Unterhaltungen falten sich automatisch zu einzeiligen Zusammenfassungen („▸ API-Design … 14 Antworten · vor 2 Std.“), während die neueste Unterhaltung vollständig geöffnet bleibt (#8505559fa).
Auch die Avatare bekommen einen neuen Look: Bot-Mode-Avatare verwenden standardmäßig Blob-Gesichter, die deterministisch aus dem Agentennamen abgeleitet werden (gleicher Name, gleiches Gesicht, jedes Mal), mit vier neuen Silhouetten aus blobatar 2.0.0 (#a77ee88ce, #cb0fd836a).
2. hermes worktree list/prune – sicheres Zurückgewinnen angesammelter Worktrees
Multi-Agent-Workflows (hermes -w / /worktree new) sammeln im Laufe der Zeit Dutzende Trees und Hunderte gemergter Branches unter .worktrees/ an. Der stille Pruner beim Start fasst nur Trees an, die sauber und vollständig gemergt sind; alles andere bleibt für immer liegen. Jetzt gibt es ein explizites Zurückgewinnen mit Dry-Run zuerst:
hermes worktree list # Audit: eine Zeile pro Tree – Alter, Größe, Urteil, Grund
hermes worktree prune --dry-run # Plan anzeigen, nichts ändern
hermes worktree prune # sichere Trees + gemergte Branches zurückgewinnen
Die Sicherheits-Invarianten sind identisch zum Start-Pruner: nachverfolgte Änderungen werden in keinem Alter gelöscht, eindeutige ungepushte Commits werden nie gelöscht (git cherry entscheidet per Patch-Äquivalenz, was „eindeutig“ ist), live gesperrte Trees bleiben unangetastet, ein Branch wird nur gelöscht, nachdem das Entfernen seines Worktrees erfolgreich war, und reiner Untracked-Scratch wird nach ~/.hermes/archive/worktree-prune/ archiviert, bevor sein Tree abgeräumt wird – Müll geht weg, lebendige Arbeit bleibt (#f309f92d3).
3. hermes update --plan + strukturierte Belege – nachvollziehbare Updates
Der Updater beweist sein Ergebnis jetzt, statt es anzunehmen (#0aecadc17, #1d74833d8):
hermes update --plan: nur lesend. Listet die Installationsart (git/docker/nix), jeden laufenden Hermes-Dienst über alle Profile hinweg mit seinem Supervisor und der laufenden Code-Version auf – und wie jeder neu gestartet wird. Sicher auf einem Live-Fleet auszuführen.- Strukturierte Belege: jedes
hermes updateschreibt einen maschinenlesbaren JSON-Eintrag – was entdeckt, getan, übersprungen wurde (und warum) – nach<HERMES_HOME>/logs/update_receipts/. Nach der Neustartphase liest es dasgateway_state.jsonjedes Profils, vergleicht diecode_shajedes laufenden Gateways mit dem frisch aktualisierten Checkout-HEAD und druckt eine Fleet-Versionsmatrix – Fleets mit gemischten Versionen (die #88654-Klasse) werden zu einem lauten, umsetzbaren Bericht statt zu einem latenten Zustand.
4. Cron-Jobs haben ein Gedächtnis – und einen Reasoning-Aufwand pro Job
Cron-Jobs wurden früher mit skip_memory=True und einer harten Verweigerung des Memory-Toolsets erstellt, sodass MEMORY.md/USER.md nie geladen wurden und das Memory-Tool selbst aus den enabled_toolsets des Jobs gestrichen war. Cron-Agenten laufen jetzt mit persistentem Speicher, aktiviert wie bei jedem anderen Agenten (#ef04d846e): Jobs können deinen persistenten Speicher lesen – und aktualisieren.
Jeder Job kann außerdem seinen eigenen Reasoning-Aufwand festlegen, unabhängig vom globalen agent.reasoning_effort und den reasoning_overrides pro Modell (#4e1dd1a74):
# schwere geplante Analyse bei high, günstiger wiederkehrender Job bei minimal – globale Standardeinstellung unberührt
hermes cron create "0 7 * * *" --reasoning-effort high --prompt "Deep weekly repo-trend analysis"
hermes cron create "every 5m" --reasoning-effort minimal --prompt "Health check and report"
Stufen: none/minimal/low/medium/high/xhigh/max/ultra. Stufen, die ein Modell nicht unterstützt, werden vom Provider zur Anfragezeit geklemmt (xhigh auf einem Modell festzulegen, das bei high endet, läuft bei high). Ein leerer String beim Bearbeiten entfernt die Festlegung.
5. opencode-free: ein wirklich schlüsselloses kostenloses Modell
opencode-free ist jetzt vollständig schlüssellos – keine Env-Variable, kein Konto, anonymer Draht (#ca06b8768) – und der Catalog-Drift-Sync zieht Live-OpenRouter-Free-Modelle in die Liste, während tote Slugs entfernt werden (#624723130). Schlüssellose Provider gelten überall als authentifiziert: opencode-free erscheint ohne jede Einrichtung in /model und in den Desktop-Auswahlmenüs (#2a2307e68).
hermes model # opencode-free wählen – kein Schlüssel nötig
6. Ausführungsdisziplin und Stall-Guards zur Laufzeit
Ein Bündel Härtung im Bereich „Ausführungsdisziplin“ aus den Erkenntnissen der Composio-Evals: Die Abbrüche der Hintergrund-Reviews sind mit korrekter Vordergrund-Priorität synchronisiert (#37da0d4d5, #b883756b7), der Ox-Alpha-Reasoning-Aufwand erreicht über zen- und free-Provider geklemmt den Draht (#d4d04098a), und die cache-control-Dekoration für Prompt-Caching ist idempotent (#0fc52b055). Nichts Aufregendes zum Vorführen – aber langlaufende Aufgaben stocken seltener und verbrauchen Tokens vorhersehbarer.
Verbesserungen
- Desktop-Performance: Paint-first-Hydration im Bot Mode, Compositor-Spinner, React Compiler in beiden Renderern – der Desktop fühlt sich schneller und reaktionsfreudiger an.
- Nachrichten-Bearbeitung in alten Sitzungen schlägt nicht mehr fehl (Profil-DB + fensterrelative Ordnungszahl, #02e270a47).
- Telegram-DM-Entwürfe behalten nach dem Streaming die reiche Formatierung (auch bei frischen persistenten Sends, #790c85014, #216c98aae).
- Der Docker-Stage2-
API_SERVER_KEY-Bootstrap hängt nicht mehr davon ab, dass.envexistiert (#7a17a1b8a). - Bot Mode: Turns von Gruppenchat-Mitgliedern gehen bei langlaufenden Sitzungen nicht mehr verloren (#88885-Follow-ups), maschinenübergreifendes Gruppen-Routing überlebt Verbindungswechsel (#88921), ein Bot kann gleichzeitig in mehreren Gruppenchats sitzen (#88980).
Fehlerbehebungen
- Native Kompaktierung erhält Komprimierungs-Zusammenfassungsnachrichten beim Pre-Checkpoint-Pruning (#fb27614ad).
- Geplante Cron-Jobs stopfen MEMORY.md nicht mehr in den Job-Prompt (finale Semantik: Jobs können den persistenten Speicher lesen/schreiben, aber die Scheduler-Seite injiziert nichts zusätzlich; #fc9cbc872).
- Catalog-Drift-Sync: tote Free-Slugs entfernt, Live-OpenRouter-Free-Modelle nachgezogen (#624723130).
- Gateway: Orphan-Reaper-Dienst-Ausnahme auf die gesamte launchd-Flotte erweitert; BSD-kompatible ps-Flags + launchd-Pid-Erkennung über alle Profile (#42bd567a8, #d8047c303).
- Der OpenAI-Adapter toleriert spärliche Response-Objekte; das Relay entpackt lazy abgeschlossene Streams und verwendet kanonische verwaltete Operationsnamen (#85581, #85579, #85582).
Update
hermes update
Nach dem Upgrade hermes doctor ausführen, um die Installation zu prüfen, und das Gateway neu starten (hermes gateway), damit Plattformänderungen wirksam werden. Um vor dem Ausführen zu sehen, was das nächste Update anfasst: hermes update --plan.