Files

72 lines
3.7 KiB
Markdown

# SSH-Key-Verteilung & Master Control Suite (Praktischer Workflow)
> Stand: 31.08.2026 | Mesh mit 4 Agenten (Master + 3 Sub-Agenten)
## Problem: Master hat keinen SSH-Zugriff zu Sub-Agenten
SSH-Zugriff ist zwingend für Notfälle (Kill-Switch bei Budget-Spirale, Modell-Wechsel bei Kostenexplosion).
Tasks via NFS-Share sind zu langsam — Sub-Agenten analysieren lange Beschreibungen statt zu handeln.
## Versuchter Lösungsweg: AcceptMasterKey-Task (gescheitert)
Der Master generierte einen ed25519-Key und legte Tasks an alle Sub-Agenten mit dem Befehl:
```
mkdir -p ~/.ssh && echo '<pubkey>' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
```
**Problem:** Sub-Agenten in der Hermes-Sandbox haben kein `terminal()` — sie haben nur `execute_code` (Python).
Shell-Befehle (`mkdir`, `echo`, `chmod`) können sie nicht ausführen. Stattdessen *analysieren* sie den Task,
beschreiben die Lösung, setzen sie aber NICHT um. Task endet mit "BLOCKED" oder "muss fortgesetzt werden".
**Erkenntnis für Task-Formatierung:**
- `aufgabentyp: terminal` + nur `befehl:`-Feld = Sub-Agent führt NICHT aus (analyse)
- Lange Beschreibungen (5+ Zeilen) = Sub-Agent analysiert / halluziniert
- **Einzige Ausnahme:** Sub-Agent mit aktivem Gateway + Telegram-Zugang könnte per `hermes`-Terminal
des Master auf dem Sub-Agenten selbst gesteuert werden (Henne↔Ei: dafür braucht man SSH)
## Funktionierender Workaround: Manuelle Erst-Verteilung
Der Nutzer hat auf **jedem Sub-Agenten** kurz die zwei Befehle ausgeführt:
```bash
# 1. SSH-Key akzeptieren
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILEn0Vb4KKwbNI5wiT+Z7VWIiY6iiO7F4BeWS2gMWPCP mesh-master@172.24.196.119" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 2. Modell setzen (je nach Agent)
hermes config set model.default google/gemini-2.5-flash:free # Unraid/Laptop
hermes config set model.default nvidia/nemotron-3-ultra-550b-a55b:free # Switch (Free Tier)
```
**Aufwand pro Agent:** ~30 Sekunden. **Einmalig.** Danach hat der Master volle SSH-Kontrolle.
## Master Control Suite (eingesetzte Tools)
Nach erfolgreicher SSH-Einrichtung stehen folgende Skripte auf dem Master zur Verfügung:
| Skript | Funktion | Cron |
|--------|----------|------|
| `mesh-kill-all.sh` | Notfall: Alle Agents auf Ollama (kostenlos) | Manuell |
| `mesh-budget-watch.sh` | Guthaben prüfen, Auto-Switch (Schwellen $1/$0.50/$0.10) | `*/30 * * * *` |
| `mesh-model-broadcast.sh <modell>` | Setzt Modell auf ALLEN Agents gleichzeitig | Manuell |
| `mesh-status-monitor.sh` | Trackt Task-Antworten + SSH, Telegram bei Änderung | `*/30 * * * *` |
| `mesh-model-scout.py` | OpenRouter-Preisliste scannen, Modell zuweisen | `0 6 */3 * *` |
| `mesh-budget-report.sh` | Guthaben + Modelle aller Agents als Telegram-Bullet-Liste | Manuell (Keyword/Telegram) |
**Budget-Report Format (Nutzerpräferenz):** Bullet-Liste statt Code-Block — auf Handy lesbar.
Telegram-Code-Blöcke mit Leerzeichen-Ausrichtung sehen auf Desktop gut aus, auf dem Handy (20 Zeichen
Breite) sind sie unleserlich. `• Agent — Modell`-Format rendert auf allen Geräten sauber.
Kein Doppel-Output (Skript schreibt direkt via curl an Telegram + stderr wird unterdrückt).
## SSH-Aktivierung (nach erfolgreicher Erst-Verteilung)
Verifikation durch:
```bash
for ip in 172.24.34.142 172.24.20.26 172.24.178.202; do
ssh -o BatchMode=yes -o ConnectTimeout=3 "mehlzoerwer@$ip" "echo OK"
done
```
Dienste danach automatisch abstimmen:
- Cron-Jobs auf Sub-Agenten pinnen: `hermes cron edit <id> --provider openrouter --model <modell>`
- OS-Updates per `echo '<pw>' | sudo -S apt update && sudo -S apt upgrade -y`
- Gateway auf Master als `systemctl enable hermes-gateway.service` (auto-start nach Reboot)