Raft — leichtgewichtiges Messaging-Protokoll
Raft — leichtgewichtiges Messaging-Protokoll — leicht verständlicher Leitfaden basierend auf offiziellen Dokumentationen
Stell dir Raft wie ein Postfach für deine KI-Agenten vor: Sie müssen keine Telefonleitung offen halten, sondern schauen einfach nach, wenn sie bereit sind.
Was Raft anders macht
Die meisten Messaging-Systeme drücken jede Nachricht direkt ins Gehirn deines Agenten. Das bedeutet ständiges Polling, schweren Kontext und jede Menge Rauschen. Raft dreht das um: Der Server sendet nur einen winzigen „Aufwach“-Ping, und dein Agent entscheidet selbst, wann er die Post tatsächlich liest.
Das hält den Kontext des Agenten sauber und seine Antworten schnell. Du bekommst die Zuverlässigkeit einer Message Queue, ohne alles in ein Sprachmodell streamen zu müssen.
Die Drei-Teilung der Arbeit
Hermes teilt die Raft-Integration in drei klare Rollen auf:
- Die Brücke übernimmt die ganze harte Netzwerkarbeit: Wake-Hint-Konsum, Deduplizierung, Wiederverbindung und At-Least-Once-Zustellung.
- Der Adapter betreibt einen lokalen HTTP-Endpunkt, der einen inhaltsfreien Wake-Hinweis empfängt und in die Session des Agenten injiziert.
- Der Agent erledigt die eigentliche Arbeit: Nachrichten abrufen und Antworten über die Raft-CLI senden.
Der Adapter fasst Nachrichteninhalte nie an. Er besitzt keine Raft-Zugangsdaten – nur ein Session-Token für die Localhost-Authentifizierung. Das ist ein netter Sicherheitsgewinn.
Einrichtung: Eine Zeile
Füge das zu ~/.hermes/.env hinzu:
RAFT_PROFILE=your-agent-profile
Das war’s. Wenn Hermes startet, erkennt es die Variable, generiert ein Bridge-Token, wählt einen temporären Port und startet die Brücke automatisch. Kein manuelles Verdrahten nötig.
So funktioniert der Ablauf
Raft Server → Bridge (SSE wake hints) → POST /wake → Hermes Adapter → Agent context
Agent → raft message check → Raft Server
Agent → raft message send → Raft Server
Die Brücke lauscht auf Wake-Hints über SSE, leitet sie an deinen lokalen Adapter weiter, und der Adapter injiziert eine kurze Notiz in den Kontext des Agenten. Der Agent führt dann aus:
raft message check
…liest die eigentlichen Nachrichten und antwortet mit:
raft message send
Sicherheit durch Vertrag
Wake-Payloads sind per Design inhaltsfrei. Sie tragen nur Metadaten – Event-IDs, Zeitstempel, Nachrichten-IDs. Kein Text, keine Absendernamen, keine Kanalnamen. Der Adapter lehnt aktiv jede Payload ab, die inhaltsähnliche Felder wie text, body oder content enthält. Selbst wenn also etwas schiefgeht, sieht dein Agent niemals rohe Nachrichtendaten über den Wake-Kanal.
Abschließender Gedanke
Raft ist ein großartiges Muster für Agenten, die nicht immer eingeschaltet sein müssen. Es ist leichtgewichtig, sicher und hält das Kontextfenster deines Agenten sauber.
Praxistipp: Starte mit einem einfachen Test – sende eine Nachricht an deinen Agenten von einem anderen Raft-Client und beobachte dann die Logs. Du solltest den Wake-Hinweis ankommen sehen, aber der Nachrichteninhalt erscheint erst, wenn dein Agent raft message check ausführt. Diese Trennung ist der springende Punkt.
📖 Offizielle Dokumentation
この記事は Hermes Agent のOffizielle Dokumentationに基づいています:Offizielle Dokumentation › user-guide/messaging/raft