Files
mesh-configs/skills/autonomous-ai-agents/multi-agent-mesh/references/message-bus-processor-19-07-2026.md
T

2.2 KiB

Message Bus Inbox Processor (19.07.2026)

Das Problem

mesh-pull-from-a auf B holt Nachrichten von A's outbox in B's inbox. Aber NIEMAND liest B's inbox. Nachrichten bleiben ewig liegen.

Die Lösung: mesh-process-inbox.sh

Auf Agent B einrichten:

#!/bin/bash
# /usr/local/bin/mesh-process-inbox.sh
INBOX=/root/.hermes/msg_bus/inbox
SENT=/root/.hermes/msg_bus/sent
LOG=/root/.hermes/msg_bus/processed.log

shopt -s nullglob
for f in "$INBOX"/*.json; do
    ts=$(date -Iseconds)
    topic=$(python3 -c "import json; print(json.load(open('$f')).get('topic','?'))" 2>/dev/null)
    echo "[$ts] PROCESSED: $topic" >> "$LOG"
    /usr/local/bin/mesh-send-to-a "msg-received" "$topic" 2>/dev/null
    mv "$f" "$SENT"/
done

System-Cron auf B (root crontab):

* * * * * /usr/local/bin/mesh-process-inbox.sh
* * * * * sleep 30; /usr/local/bin/mesh-process-inbox.sh

Bidirektionaler Flow

A ──mesh-send-to-b──▶ B/inbox  (sofort, scp)
B/inbox ──processor-cron──▶ B/outbox  (alle 30s, via mesh-send-to-a)
B/outbox ──mesh-pull-from-b──▶ A/inbox  (alle 30s, scp)

Heredoc-Pitfall beim Erstellen via SSH

Wenn du das Script von Agent A aus per SSH erstellst, verursachen doppelte Anführungszeichen und $-Variablen im Heredoc Syntaxfehler:

# FALSCH — Anführungszeichen falsch escaped:
ssh B 'sudo tee /script.sh << EOF
for f in "$INBOX"/*.json 2>/dev/null; do
EOF'

# RICHTIG — mit quoted delimiter und korrektem Escaping:
ssh B 'sudo tee /script.sh > /dev/null << '\''ENDOFSCRIPT'\''
#!/bin/bash
shopt -s nullglob
for f in "$INBOX"/*.json; do
    topic=$(python3 -c "import json; print(json.load(open('"'"'$f'"'"')).get('"'"'topic'"'"'))" 2>/dev/null)
    ...
done
ENDOFSCRIPT'

Alternativ: Script lokal auf A schreiben, dann per scp nach B pushen. Umgeht das gesamte Escaping-Problem.

Verifikation

# 1. Test-Nachricht senden
mesh-send-to-b "test" "ping"

# 2. 35s warten (Cron-Intervall)
sleep 35

# 3. B's Inbox prüfen — muss LEER sein
ssh B 'sudo ls /root/.hermes/msg_bus/inbox/'

# 4. B's Log prüfen
ssh B 'sudo cat /root/.hermes/msg_bus/processed.log'

# 5. A's Inbox prüfen — Bestätigung muss angekommen sein
ls /root/.hermes/msg_bus/inbox/