Langzeit-Sessions holen endlich auf: Compaction baut den System-Prompt jetzt immer neu

Deine „Forever-Session“ läuft seit Monaten: ein persistenter Bot-Mode-Chat, ein Gateway-Arbeitskanal, der jeden Tag seinen Job macht. Aber hier ist die Sache, die du vielleicht nicht bemerkt hast – der System-Prompt in ihrem Kopf stammt noch vom Tag ihrer Geburt. Tools werden bei jeder Compaction aus dem Live-Registry aktualisiert, aber der System-Prompt wurde byte-for-byte aus dem Session-Snapshot restauriert: die verschlankten Leitlinien, die die Maintainer ausgeliefert haben, neue Prompt-Blöcke (wie die Zwei-Zeilen-Uhr, die die aktuelle Zeit anzeigt), umbenannte Tool-Beschreibungen – nichts davon kennt sie. Eine am 30. August gemergte Änderung (PR #98426) behebt das endlich: Der Compaction-Commit baut den System-Prompt jetzt immer mit dem Live-Builder neu. Die Änderung liegt auf main, noch in keinem Release.
Warum Prompts bei der Geburt eingefroren blieben
Hermes behandelt zu lange Kontexte per Compaction: Geschichte wird zu einer Zusammenfassung verdichtet, um Platz für die Fortsetzung zu schaffen. Bisher wurden Tools aus dem Live-Registry neu aufgebaut, aber der System-Prompt wurde byte-for-byte aus dem Session-Snapshot restauriert – zwei verschiedene Codepfade. So wurde der Prompt-Inhalt stale: Leitlinien von vor Monaten, keine neuen Feature-Blöcke, Tool-Beschreibungen mit alten Namen. In den Worten des Maintainers: „Ein Forever-Chat würde seinen Geburtsprompt monatelang mit sich herumtragen, während sein Tools-Array längst weitergezogen ist.“
Der Fix: kein Update-Detektor – der Rebuild IST der Detektor
Die Maintainer haben einen „Update-Detektor“ explizit abgelehnt. Der Ansatz ist gründlicher: Jeder Compaction-Commit führt den Live-Builder aus und vergleicht dann die Bytes:
- Byte-gleiche Ausgabe zum gespeicherten Prompt → das ORIGINAL-String-Objekt bleibt erhalten (die Objektidentität bleibt gewahrt, sodass darauf aufbauende KV-/Präfix-Caches gültig bleiben; der Normalfall kostet einen String-Vergleich);
- Abweichende Ausgabe → der neu gebaute Prompt gewinnt, und ein Drift-Log hält es fest (Format:
Compaction rebuilt a drifted system prompt (session=..., N -> M chars)).
Der Rebuild ist praktisch kostenlos, weil der Präfix-Cache bei einem Compaction-Commit ohnehin schon tot ist – genau das ist die Antwort des Maintainers auf „Warum sollten wir den System-Prompt nicht bei der Compaction aktualisieren?“ Plugin-Abschnitte folgen demselben Pfad: Invalidation löscht den eingefrorenen Snapshot, der Rebuild rendert über denselben Pfad wie beim Session-Start neu; falls das Rendering eines Plugins eine Exception wirft, fällt es auf seinen letzten guten Abschnitt zurück (fail-open, kein Einfrieren).
Was sich für dich ändert
- Langzeit-Sessions gleichen sich bei ihrer nächsten Compaction an den aktuellen Prompt an: Erinnerungen, die mitten in der Session gespeichert wurden, tauchen endlich im Prompt auf, verschlankte Leitlinien ersetzen stale Texte, und künftige Umbenennungen präsentieren keine Altnamen-Leitlinien mehr neben neu benannten Tools.
- Die „Conversation started“-Uhr ist schlauer geworden: komprimierte/rotierte Sessions lösen ihre Startzeit über die Session-Lineage-Wurzel auf – ein Bot-Mode-Forever-Chat weiß, wann er ursprünglich geboren wurde.
- Keine Cache-Brüche mitten in der Konversation: Der einzige Rebuild-Punkt ist die ohnehin sanktionierte Compaction-Grenze, nie ein beliebiger Punkt mitten in einer Runde.
Mehr darüber, wie Compression funktioniert, findest du in unserem Lean-Tail-Compression-Standard-Guide und dem Kontextnutzungs-Anker-Guide; praktische Tipps für lange Sessions stehen im Session-Resume-Guide.
Wann du es nutzen kannst
PR #98426 wurde am 30. August gemergt und ist nicht in v0.20.6 (getaggt am 27. August). Um es in Aktion zu sehen: Ziehe das aktuelle main, halte eine lange Session offen und führe dann einmal /compress aus – die Session übernimmt danach den neuesten Prompt. Für das vollständige Bild der Compression-Konfiguration (Trigger-Schwellen, Tail-Strategie) sieh dir unseren Kontext-Token-Optimierungs-Guide an.
Fazit: Langzeit-Sessions können endlich mit der Zeit gehen. Statt monatelang einen Geburtsprompt mitzuschleppen, ist jede Compaction jetzt ein leises Self-Update – praktisch ohne Performance-Kosten.