Hermes Agent Lab

Hermes Agent Blog — Praxisleitfäden und Einblicke

Neueste Artikel und Einblicke.

Warum ein brandneuer Skill in der Suche null Treffer liefert

Eine ungefilterte Skill-Suche wird aus einem periodisch neu gebauten zentralen Index beantwortet, deshalb kann ein vor Minuten veröffentlichter Skill fehlen, obwohl er existiert. Änderungen vom 16. bis 18. September schließen die Lücke: Bei einem Index-Miss fragt Hermes jetzt skills.sh, ClawHub, LobeHub und bekannte Endpunkte innerhalb eines 8-Sekunden-Budgets erneut ab, und der Index-Build verwirft Skills nicht mehr stillschweigend, wenn ein Shard in ein Timeout läuft.

Weiterlesen

Deinen Agenten aus dem Zug steuern: ein Praxisleitfaden zur Community-WebUI

Hermes WebUI ist ein Community-Projekt mit rund 18K Sternen, das die Fähigkeiten der CLI in den Browser bringt: Python plus reines JavaScript, kein Build-Schritt, standardmäßig an localhost gebunden, mit SSH-Tunnel oder Tailscale für den Zugriff vom Handy und optionalem Login per Passwort, Passkey oder OIDC. Hier erfährst du, wie du es installierst, sicher nach außen öffnest und wo seine Kanten liegen.

Weiterlesen

Warum ein geöffnetes Dropdown dich drei Sekunden kostet

Ein Spinner im Model-Picker, ein `hermes plugins list`, das hängt, ein Profiles-Panel, das Frames verliert — drei scheinbar unabhängige Hänger mit einer Ursache: Der Lesepfad machte still Netzwerk-Probes und lief das Dateisystem ab. Die PRs #114994, #114811 und #114879 haben Caching, Fehler-Gedächtnis und Refreshes von diesem Pfad weggezogen.

Weiterlesen

Hermes lädt nicht mehr jede URL, die ihm jemand hinhält

Bild-URLs aus der Antwort eines Generierungs-Providers, Referenzbilder, die ein Modell selbst liefert, Petstore-Manifeste und Spritesheets, Sitemap-Einträge von skills.sh — keine dieser URLs stammt von dir. PR #114887 führt sieben Fetch-Stellen durch den bereits vorhandenen SSRF-Guard des Repositories: Prüfung vor dem Fetch, erneute Prüfung beim TCP-Connect (schließt das DNS-Rebinding-Fenster), erneute Prüfung bei jedem Redirect-Hop und Fail-Closed bei einem 3xx ohne Location-Header.

Weiterlesen

Der API-Key, den du einmal ausgegeben hast, darf nicht im Chat-Log landen

Zwei Fixes sind am selben Tag gelandet und schließen zwei Nähte, durch die Secrets abfließen: PR #114839 maskiert sk--Keys mit Punkten und Zhipus präfixlose id.secret-Keys in Tool-Ausgaben vollständig, PR #114789 erzwingt die Redaktion auf allen Cron-Auslieferungswegen — Chat, Session-Mirror, Job-Name, Bot-Chat — und verhält sich dabei fail-closed, statt den Rohtext auszuliefern.

Weiterlesen

Dein Memory-Provider ist aus dem Core ausgezogen — das Upgrade holt ihn zurück

Eingebaute Memory-Provider wandern in die Repos ihrer Maintainer und in den Plugin-Katalog. PR #114569 ergänzt zwei Hooks: hermes update und der Agent-Init merken beide, wenn der Code eines konfigurierten Providers fehlt, und installieren ihn zum geprüften Pin des Katalogs nach. Name, die Konfiguration memory.<name>, das Datenverzeichnis und die Tool-Namen bleiben unverändert.

Weiterlesen

1.393 Subagents, 19 Stunden, ein Desktop: Wie Nous mit Hermes eine Million Zeilen refaktorierte

Ein /goal, 19 Stunden und 1.393 Subagents haben 34,4 % der Quellzeilen aus dem eigenen Repo von Hermes entfernt. Hier sind die offiziellen Messwerte, die neun Dinge, die bei dieser Größenordnung brechen, und die Schritte, um dasselbe im eigenen Codebase zu wiederholen.

Weiterlesen

Ein 16-KB-Skript fror ein Gateway 23 Sekunden ein: die Postmortem-Analyse des Kommando-Scans

Gib Hermes ein Heredoc mit ein paar hundert Zeilen, und dein Telegram-Bot antwortet nicht mehr — eine synchrone Regex hält die Event-Loop fest. Issue #113535 und PR #114208 erklären den O(n³)-Pfad und warum die korrigierte Version zu identischen Urteilen kommt.

Weiterlesen

Lass Bilder nicht dein Kontingent auffressen: die zwei Vision-Schalter, die es zu kennen lohnt

Nativ eingebettete Bilder werden bei jedem späteren API-Aufruf erneut mitgeschickt, und die alte Entfernungspolitik konnte 120.000 Token Verlauf neu schreiben, nur um ein einziges Bild loszuwerden. Die PRs #113953 und #113817 haben beides behoben und vision.embed_target_bytes sowie max_calls_per_image ergänzt.

Weiterlesen

Das zweite Modell, das du nie konfiguriert hast: Hermes' Lane für Hilfsaufrufe

Session-Titel, die zu JSON-Fragmenten werden, Freigaben, die nicht mehr klug sind, quälend langsame Kompression mit einem lokalen Modell — die Ursache ist oft nicht dein Hauptmodell, sondern eine von 13 benannten Hilfsaufgaben. Hier stehen die Konfigurationsform, die globalen Schalter und die am 17. September gemergten Fixes für stille Fehler.

Weiterlesen

Dein Agent kann eine laufende SQLite-Datenbank byteweise zerstören — jetzt verweigert Hermes den Schreibvorgang

write_file und patch lasen eine .db-wal-Sidecar-Datei bisher als gewöhnlichen Text und schrieben den Mojibake zurück — eine laufende SQLite-Datenbank wurde dabei still zerstört. PR #114220 ergänzt einen Sidecar-Schreibschutz auf der Werkzeugebene. Hier steht, wie der Schaden entstand, was sich geändert hat und ob deine Version den Schutz schon enthält.

Weiterlesen

hermes doctor und die große WAL-Datei: ein ehrlicher Hinweis

Bei einer state.db-WAL über 50 MB riet hermes doctor zu --fix, ohne laufende Schreiber zu prüfen. PR #113055 macht diese Warnung ehrlich.

Weiterlesen

Warum Hermes-Honcho-Memory im falschen Projekt landet

Automatische Titel hebeln sessionStrategy aus, und die Auflösung nutzte das Startverzeichnis des Backends statt deines Workspace. PR #112602 behebt beides.

Weiterlesen

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