Files

2.1 KiB

Message Bus — Dateibasierte Bidirektional-Kommunikation

Session 18.07.2026 — Agent A & Agent B

Problem

Webhook-Antworten landen im Void-Kanal. B kann nicht curl'en (Hermes-Sandbox) um an A zurückzusenden. Nutzer muss als Relay dienen → kein autonomes Mesh.

Lösung: File-based Message Bus via SSH+SCP

A ──scp (sofort)──▶ B
B ──scp (Cron 30s)──▶ A

Verzeichnisstruktur

/root/.hermes/msg_bus/
├── inbox/    ← Eingehende Nachrichten vom anderen Agent
├── outbox/   ← Ausgehende Nachrichten (Cron holt sie ab)
└── sent/     ← Archiv erfolgreich gesendeter Nachrichten

Scripts

mesh-send-to-b (auf Agent A):

  • Pfad: /usr/local/bin/mesh-send-to-b
  • Nutzung: mesh-send-to-b "Thema" "Nachricht"
  • Aktion: Schreibt JSON in outbox, SCP't zu B's inbox, archiviert in sent

mesh-send-to-a (auf Agent B):

  • Pfad: /usr/local/bin/mesh-send-to-a
  • Nutzung: mesh-send-to-a "Thema" "Nachricht"
  • Aktion: Schreibt JSON in outbox (A's Cron holt es ab)

mesh-pull-from-b (auf Agent A, via Cron alle 30s):

  • Holt alle JSON-Dateien aus B's outbox
  • Legt sie in A's inbox ab
  • Verschiebt B's outbox → sent

mesh-pull-from-a (auf Agent B, via Cron alle 30s):

  • Holt alle JSON-Dateien aus A's outbox per SCP
  • Legt sie in B's inbox ab

Nachrichtenformat

{"from":"agent-a","to":"agent-b","topic":"Thema","message":"Inhalt","ts":"2026-07-18T14:31:57+02:00"}

Verifizierung

# Auf A: Nachricht an B senden
mesh-send-to-b "Test" "Hallo B!"

# 30s warten, dann auf B prüfen:
ls /root/.hermes/msg_bus/inbox/

# B sendet zurück:
mesh-send-to-a "Antwort" "Hallo A!"

# 30s warten, dann auf A:
ls /root/.hermes/msg_bus/inbox/
cat /root/.hermes/msg_bus/inbox/*.json

Abgrenzung zu Webhooks

Eigenschaft Webhooks Message Bus
A→B ✅ sofort ✅ sofort (SCP)
B→A ❌ blockt (Sandbox) ✅ Cron 30s
Antwort-Kanal Void Datei lesbar
Setup hermes CLI SSH + SCP
Hermes-Abhängigkeit ✅ braucht Gateway ❌ keiner