Skip to content

Sitzung und Zustellung

源码版本v2026.7.20

Verantwortung

Zwei Dinge: (1) Sitzung (Session) – «woher die Nachricht kommt» (Plattform, Chat, Sender) wird auf einen stabilen Key abgebildet und der Dialog auf der Platte persistiert, sodass der Agent über Neustarts hinweg Kontext fortsetzt; (2) Delivery Ledger – für die finale Antwort des Agenten wird eine «Zustellverbindlichkeit» verbucht; nach einem Crash kann das Gateway unzustellbare Antworten erkennen und nachsenden, sodass der Nutzer sie letztlich erhält. Beide liegen im Gateway und sind vom Agenten entkoppelt.

Schlüsseldateien

Datenfluss

  1. Der Adapter empfängt ein Plattform-Event und extrahiert über MessageEvent:1759 die SessionSource.
  2. SessionSource:149 hasht eine stabile Chat-/Sender-ID (gateway/session.py:40).
  3. Konstruktion des SessionContext:299, ergibt den Session-Key (nach Pfad-Sicherheitsprüfung:109 als Platten-Pfad genutzt).
  4. Der Session-Key bestimmt, aus welcher Datei die Historie geladen und dem Agenten zum Kontextfortsetzen gefüttert wird.
  5. Sobald der Agent die finale Antwort erzeugt hat, verbucht das Gateway in record_obligation:155 → senden → mark_delivered.
  6. Wenn beim Senden ein Crash passiert, scannt beim nächsten Start sweep_recoverable (gateway/delivery_ledger.py:203) Verbindlichkeiten im Status attempting mit totem Besitzer-Prozess und sendet nach oder markiert als failed.

Zusammenfassung

Die Sitzungsschicht ist zuständig für «zu welchem andauernden Dialog gehört diese Nachricht» und bildet die externe Identität per Hash + Pfad-Prüfung sicher auf Plattendateien ab. Das Delivery-Ledger ist zuständig für «ob die finale Antwort des Agenten wirklich beim Nutzer ankam» und macht über einen SQLite-Zustandsautomaten Crash-Recovery. Beides ist best-effort, aber eine unverzichtbare Zuverlässigkeitsschicht.

Inoffizielle Community-Lernseite. Basiert auf dem MIT-lizenzierten NousResearch/hermes-agent-Quellcode.