77 lines
2.1 KiB
Markdown
77 lines
2.1 KiB
Markdown
# 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
|
|
|
|
```json
|
|
{"from":"agent-a","to":"agent-b","topic":"Thema","message":"Inhalt","ts":"2026-07-18T14:31:57+02:00"}
|
|
```
|
|
|
|
### Verifizierung
|
|
|
|
```bash
|
|
# 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 | |