Hermes Agent (NousResearch/hermes-agent) liefert das dedizierte Utility trajectory_compressor.py, um lange Agent-Läufe im Kontextfenster des Modells zu halten, ohne alles wegzuwerfen, was der Operator gerade erledigt hat. Auf einem dauerhaft online bleibenden Mac mini M4 für Gateways, Cron-Jobs und mehrstündige Research-Schleifen zeigt sich Token-Druck als abgeschnittene Tool-Ausgaben, fehlgeschlagene Folgeturns und überraschende Abrechnung durch erneutes Senden ganzer Transkripte. Dieser Type-C-Erklärer behandelt Upstream-Defaults, das Modell geschützter Kopf / zusammengefasste Mitte / geschütztes Ende, den Unterschied zwischen dem interaktiven Slash-Befehl /compress und der Batch-CLI sowie ein sechsstufiges Runbook für macOS, bevor Sie Kompressionseinstellungen in Produktion heben.
Wenn Sie noch einen Harness wählen, lesen Sie zuerst Hermes Agent vs OpenClaw auf macOS und Mac mini M4 — Kompression zählt, nachdem klar ist, wo Sessions leben. Upstream-Referenzen: trajectory_compressor.py auf main, das Hermes-Agent-README und Apple Mac mini Specs für RAM- und Unified-Memory-Planung.
Hinweis: MacHTML bietet optionale Cloud-Miete eines Mac mini für Always-on-Agent-Staging, das unten kurz erwähnt wird.
Warum Token-Limits auf dem Mac mini schmerzen
Agent-Harnesses speichern Gespräche nicht wie Chat-UIs — sie spielen bei jedem Modellaufruf strukturierte Nachrichtenlisten ab. Ein langer Tag über Telegram plus lokale Tool-Schleifen kann Zehntausende Tokens aus System-Prompts, Human-Anweisungen, Assistant-Antworten und Tool-JSON ansammeln. Wenn der Provider hart stoppt oder still truncates, gibt der Operator dem Modell die Schuld; oft hat das Transkript einfach das Budget überschritten.
Ein dedizierter Mac mini M4 hilft, weil Gateways 24/7 laufen können ohne Laptop-Sleep, aber Hardware vergrößert den Kontext nicht magisch — Kompression ist operative Steuerung, kein Chip-Feature. Hermes adressiert das mit trajectory_compressor.py, das einen Trajektorien-Ordner in eine kürzere äquivalente Form umschreibt und Semantik behält: ursprünglicher System-Vertrag, anfängliche Human-Absicht, frühes Tool-Grounding, faithful middle summary und die jüngsten Turns, in denen Fehler teuer sind.
Das Default-Budget zielt auf target_max_tokens=15250 für das komprimierte Transkript, etwa summary_target_tokens=750 für die Mittel-Zusammenfassung selbst, und die letzten protect_last_n_turns=4 Turns wörtlich. Die Zahlen sind tunable, kodieren aber eine praktische Regel: in der Mitte aggressiv komprimieren, das Gespräch, das Sie gerade steuern, nie amputieren.
Token-Optimierung kreuzt auch Kosten. Selbst über OpenRouter verbrennt das erneute Senden einer 40k-Token-Trace für eine kleine Folgefrage Geld und Latenz. Kompression ist günstiger als bei jedem Turn auf ein größeres Kontextmodell zu wechseln, besonders auf Staging-Mac-minis mit stündlicher Prompt-Iteration. Lesen Sie den Vergleichsartikel mit, damit Sie Transkripte nicht auf einem Gateway optimieren, das Sie nächste Woche ersetzen.
Speicher auf Apple Silicon ist unified: Ein Mac mini mit 16 GB kann Hermes-Gateways plus leichte Tools hosten, aber parallele Subagenten, lokale Ollama-Sidecars und riesige unkomprimierte Logs konkurrieren im selben Pool. Kompression reduziert auch RAM-Druck durch gigantische In-Memory-Nachrichtenarrays beim Gateway-Fan-out, obwohl der Hauptgewinn das Modellkontextfenster bleibt. Prüfen Sie Apples Mac-mini-Spezifikationen, bevor Sie annehmen, dass ein Basismodell unkomprimiertes Archiv und lokale Modelle gleichzeitig trägt.
In der Praxis verlieren Teams Stunden mit Modell-Debugging, wenn sie Kompression ignorieren, bis der Provider hard-stoppt. Ein interner Schwellenwert — etwa /compress nach N aufeinanderfolgenden Tool-Calls — verhindert diese Fehlspuren.
Kern-Kompressionsmodell
Upstream trajectory_compressor.py implementiert eine Drei-Zonen-Politik, die sich nachträglich leicht auditieren lässt:
- Geschützter Kopf: erste system, human, gpt und tool Messages behalten, damit Persona, Safety und initiales Tool-Schema überleben.
- Zusammengefasste Mitte: alles zwischen Kopf und Ende wird via Summarization (standardmäßig OpenRouter) auf etwa summary_target_tokens=750 Narrativ plus Schlüsselfakten kollabiert.
- Geschütztes Ende: die letzten protect_last_n_turns=4 Turns wörtlich, damit jüngste Operator-Korrekturen und Tool-Fehler ohne Rekonstruktion aus einer Summary ansprechbar bleiben.
Das Default target_max_tokens=15250 ist die Obergrenze für das post-komprimierte Transkript. Richten Sie target_max_tokens am nutzbaren Fenster Ihres Produktionsmodells minus Headroom für Tools und Completion-Tokens aus — nicht an der Marketing-Kontextlänge auf einer Preisseite.
Summarization defaultet zu google/gemini-3-flash-preview über OpenRouter, sofern Sie Provider-Settings nicht überschreiben. Für compliance-sensitive Workloads zeigen Sie auf ein freigegebenes Modell und loggen Sie, welche Trajektorien-Ordner komprimiert wurden — Summaries sind absichtlich lossy: Entscheidungen und Blocker, nicht jede Stacktrace-Zeile.
Kompression ersetzt weder kuratierte Hermes-Memory-Dateien noch FTS5-Session-Suche; sie ist eine Notbremse pro Trajektorie, wenn ein einzelner Thread das Fenster sprengt. Memory für wochenlange Fakten; Trajektorien-Kompression, wenn der Incident-Thread heute Nacht schon 30k Tokens tief ist.
Zwei Oberflächen: /compress vs Batch-CLI
Hermes exponiert Kompression absichtlich in zwei Ergonomien:
| Oberfläche | Wann nutzen | Was passiert |
|---|---|---|
Slash-Befehl /compress | In aktiver Hermes-TUI oder gateway-gebundener Session, wenn der Kontext mid-flight enger wird. | Interaktive, session-aware Kompression an die live Trajektorie gebunden — ideal für „wir ertrinken gerade“. |
python trajectory_compressor.py | Offline-Housekeeping auf gespeicherten Runs unter data/, CI-Fixtures oder Pre-Migration-Archiven. | Batch-Utility mit expliziten Flags für Sample-Prozent, Token-Ceilings und Input-Dirs — ideal für reproduzierbare Ops-Playbooks. |
Nicht verwechseln: Slash ist Operator-Control-Surface; der Python-Entrypoint retrofitet historische Ordner nach Gateway-Upgrade oder vor dem Anhängen einer riesigen Trace an ein Ticket. CLI auf live Dateien während das Gateway noch appended kann racen — Session ruhigstellen oder Trajektorie zuerst kopieren.
Batch-Modus unterstützt Sampling — z. B. --sample_percent=15 beim Profiling der Kompressionsqualität über hunderte Runs ohne jede Ordner-Summarization während eines Experiments. Vor Produktions-Defaults auf 100 % erhöhen.
Beispiele und Default-Tabelle
| Parameter | Default | Hinweise |
|---|---|---|
target_max_tokens | 15250 | Post-Kompressions-Ceiling; vorsichtig erhöhen, wenn Modellfenster erlaubt. |
summary_target_tokens | 750 | Budget für das mittlere Summary-Segment. |
protect_last_n_turns | 4 | Jüngste Turns wörtlich am Ende. |
| OpenRouter Summarizer | google/gemini-3-flash-preview | Override via Env/Provider-Config für Policy-Compliance. |
python trajectory_compressor.py --input=data/my_run
python trajectory_compressor.py --input=data/my_run --sample_percent=15
python trajectory_compressor.py --input=data/my_run --target_max_tokens=16000
In live Sessions rufen Operatoren /compress auf, wenn Tool-Ketten wachsen, die Aufgabe aber nicht fertig ist — besonders vor einem weiteren Subagenten oder einem Retry eines fehlgeschlagenen Tools mit frischem Modellcall. Team-Norm dokumentieren: nach Meilensteinen komprimieren, nicht nach jedem einzelnen Tool-Erfolg.
Sechs-Schritte-Runbook
- Hermes Agent klonen oder updaten auf dem Mac mini und prüfen, dass
trajectory_compressor.pyim Repo-Root liegt (Quelle). - OpenRouter- (oder gewählte) API-Keys exportieren in derselben Shell wie Batch-Kompression; Summarization scheitert ohne Keys sofort.
- Staging-Trajektorie unter
data/wählen mit bekanntem Token-Bloat — Kopie für Before/After-Diff von JSON oder Message-Listen. - Trockenen Batch mit Defaults:
python trajectory_compressor.py --input=data/my_runund prüfen, dass Kopf/Ende intakt bleiben. - Ceilings tunen, wenn das Produktionsmodell Marge braucht — z. B.
--target_max_tokens=16000— und mit--sample_percent=100erneut laufen, bevor Settings promoted werden. - Live-Verhalten validieren: Hermes-Session auf dem Mac mini starten, Kontext absichtlich wachsen lassen, dann
/compressund prüfen, dass der Agent geschützte End-Turns noch kennt.
Gewählte Defaults im internen Runbook neben Gateway-Ports und LaunchAgent-Labels festhalten, damit der nächste Operator sie nicht via Produktions-Ausfall neu entdeckt.
Fehlerbehebung
Summarization schlägt fehl oder liefert leere Mitte
OpenRouter-Credentials, Model-Allowlisting und Rate Limits prüfen. Mit kleinerem Input-Ordner retryen, ob der Trajektorien-Parser an malformed Tool-Payloads scheitert. Wenn Compliance google/gemini-3-flash-preview blockiert, auf freigegebenen Summarizer wechseln und Doku updaten — Kompression nicht still abschalten.
Agent „vergisst“ jüngste Fixes nach Kompression
protect_last_n_turns temporär erhöhen oder Aggressivität von summary_target_tokens senken. Sicherstellen, dass niemand Batch-Kompression auf live Ordner während append laufen lässt. Auf Kopie erneut laufen und End-Messages gegen Quelle diffen.
Für dauerhaftes Telegram ohne wachen Mac: Hermes Agent Docker auf günstigem VPS + Telegram-Bot.
Scoped Repo-Lesen, npm test und abgesicherte Auto-Fixes? Lesen Sie Hermes Agent MCP für Claude Opus 4.8: lokale Code-Sandbox 2026.
FAQ
Ersetzt Trajektorien-Kompression Hermes-Memory-Dateien?
Nein. Kompression kürzt einen einzelnen Trajektorien-Thread; kuratiertes Memory und Skills bleiben Langzeit-Speicher. Beides nutzen: Memory für Wochen, Kompression für die heutige Ausreißer-Session.
Sollten OpenClaw-Operatoren dieses Skript nutzen?
Das Utility shippt mit Hermes Agent. OpenClaw-Transkripte haben andere Form — vor Batch migrieren oder exportieren und Gateways laut Hermes-vs-OpenClaw-Guide trennen.
Was kostet Summarization?
Batch-Kosten skalieren mit Middle-Turn-Count und OpenRouter-Tarif. Bei Experimenten 15 % sampeln; in Produktion 100 %, sobald Defaults vertrauenswürdig sind.
Welche Mac-mini-RAM für Kompression plus Gateway?
16 GB reicht oft für reine Batch-Kompression; 24 GB ist sicherer, wenn derselbe Mac mini auch Gateways, lokale Modelle und parallele Subagenten fährt laut Apple Specs.
Hermes-Kompression auf Cloud-Mac mini testen
Mieten Sie einen dauerhaft laufenden Mac mini M4, um lange Trajektorien batchweise zu komprimieren, /compress zu prüfen und Gateway-Sessions vor Produktion unter Token-Budget zu halten.