Initial: Mesh-Configs vom 03.09.2026 01:23
This commit is contained in:
@@ -0,0 +1,401 @@
|
||||
---
|
||||
name: multi-agent-mesh
|
||||
description: "Multi-Agent Team: ZeroTier-Mesh + Webhook (A→Sat) + SSH (Sat→A). Failover-fähig, skalierbar für beliebig viele Agenten."
|
||||
version: 4.3.0
|
||||
author: mehlzoerwer
|
||||
platforms: [linux, unraid, popos]
|
||||
models:
|
||||
default: mimo-v2-flash
|
||||
tools: step-3.5-flash
|
||||
background: nemotron-3-super
|
||||
fallback: minimax-m2.5
|
||||
related_skills: [model-allocation]
|
||||
---
|
||||
|
||||
# Multi-Agent Mesh — ZeroTier + Webhook + SSH
|
||||
|
||||
> ⚠️ **DIEDEN SKILL IN JEDER SESSION LADEN — VOR ALLEM ANDEREN!**
|
||||
> Ohne Startup-Check läuft A mit veralteten WireGuard-IPs und der Nutzer wird wütend.
|
||||
> Dieser Fehler trat mehrfach auf („Demenz-Agent\", „Alzheimer-Agent\"). **NIE WIEDER.**
|
||||
|
||||
```\n ┌─────────────┐\n │ Nutzer │\n │ (Telegram) │\n └──────┬──────┘\n │\n ZeroTier-Mesh (172.24.0.0/16) — jeder erreicht jeden\n │\n ┌──────────────────┼──────────────────┬──────────────────┐\n │ │ │ │\n ┌────▼────┐ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐\n │VPSHermes│◄─────►│UnraidHermes│◄─────►│Switch │◄─────►│Laptop │\n │Hub/VPS │ SSH │Entwickl.│ SSH │Hermes │ SSH │Hermes │\n │.119 │ │TBD │ │Cockpit │ │Worker │\n └─────────┘ └─────────┘ └─────────┘ └─────────┘\n```
|
||||
|
||||
**Kommunikation:**
|
||||
|
||||
| Richtung | Kanal | Wie |
|
||||
|----------|-------|-----|
|
||||
| Hub → Satellit | **SSH `chat -q`** | `hermes chat -q` per SSH (bevorzugt!) |
|
||||
| Hub → Satellit | **Webhook** | HMAC-signiert via ZT (Fallback) |
|
||||
| Satellit → Hub | **SSH** | Hub triggert curl auf Satellit |
|
||||
| Satellit → Satellit | **Hub-Relay** | Webhook→SSH |
|
||||
| Failover | ZeroTier | Mesh läuft weiter |
|
||||
|
||||
> **Warum SSH für Sat→Hub?** Hermes blockt Shell/curl aus Webhook-Sessions. SSH umgeht das. Details in `references/debugging-lessons-2026-07-17.md`.
|
||||
|
||||
---
|
||||
|
||||
## Model-Konfiguration (OpenRouter)
|
||||
|
||||
| Agent | Model | Tools | Background | Fallback |
|
||||
|-------|-------|-------|------------|----------|
|
||||
| A (Hub) | google/gemini-2.5-flash | step-3.5-flash | nemotron-3-super | minimax-m2.5 |
|
||||
| B (Sat) | google/gemini-2.5-flash | — | — | minimax-m2.5 |
|
||||
|
||||
**Setze explizit in jedem Chat:**
|
||||
```bash
|
||||
-hermes -m google/gemini-2.5-flash --provider openrouter --tools step-3.5-flash --background nemotron-3-super --fallback minimax-m2.5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Lokaler Fallback (VPS-Ollama)
|
||||
|
||||
Für **kostenfreien Notfall-Anker** (Budget erschöpft, API-Ausfall, einfache Anfragen) läuft auf dem VPS:
|
||||
|
||||
| Modell | Größe | Kontext | Thinking | Status |
|
||||
|--------|-------|---------|----------|--------|
|
||||
| `deepseek-r1:7b` | 4.7 GB | **128k** | ✅ Reasoning | **Aktiv** |
|
||||
| `deepseek-r1:14b` | 9.0 GB | 128k | ✅ Reasoning | runtergeladen, ungetestet |
|
||||
|
||||
Alle Agents fallen bei Bedarf auf `deepseek-r1:7b` zurück (64k+ Kontext, Thinking).
|
||||
Detailierte Budget-/Eskalationslogik: **`model-allocation`-Skill** (`config/agents.yaml`).
|
||||
|
||||
### 🔒 Ollama nur über ZeroTier (kein Internet)
|
||||
|
||||
Ollama auf dem VPS ist **nur im ZeroTier-Mesh** erreichbar — nicht vom Internet:
|
||||
|
||||
```bash
|
||||
# Ollama bindet an ZT-IP
|
||||
Environment="OLLAMA_HOST=172.24.196.119:11434" # in /etc/systemd/system/ollama.service\n\n# UFW: nur ZT-Subnetz erlaubt (172.24.0.0/16)\nufw allow from 172.24.0.0/16 to any port 11434 comment 'Ollama ZeroTier Only'\n```\n\n**Zugriff für andere Agents:** `http://172.24.196.119:11434`
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ Telegram nur auf dem Hub
|
||||
|
||||
**Nur VPSHermes (Hub) hat Telegram-Zugang.** Remote-Agents haben Telegram aus ihrer Config entfernt.
|
||||
|
||||
### Telegram auf einem Remote-Agent deaktivieren
|
||||
|
||||
```bash
|
||||
# 1. Aus platform_toolsets entfernen
|
||||
sed -i '/^ telegram:/{N;d;}' ~/.hermes/config.yaml
|
||||
|
||||
# 2. Telegram-Plattform-Konfiguration entfernen (falls vorhanden)
|
||||
sed -i '/^telegram:/{N;N;N;N;d;}' ~/.hermes/config.yaml
|
||||
|
||||
# 3. Prüfen ob alles weg ist
|
||||
grep -c 'telegram' ~/.hermes/config.yaml # → 0
|
||||
```
|
||||
|
||||
**Konsequenz:** Remote-Agents sind »stille SSH-Agents« — sie kommunizieren nie von sich aus. Der Nutzer erreicht sie nur über VPSHermes (mich) oder direkt per SSH/VNC.
|
||||
|
||||
---
|
||||
|
||||
## Multi-Remote SSH Skills Sync
|
||||
|
||||
Skills auf mehrere Remote-Agents gleichzeitig syncen (gleiches Passwort vorausgesetzt):
|
||||
|
||||
```bash
|
||||
# 1. Tar der benötigten Skills
|
||||
cd /root/.hermes/skills && tar czf /tmp/skills.tar.gz \
|
||||
devops/model-allocation \
|
||||
devops/zerotier-mesh-join \
|
||||
autonomous-ai-agents/multi-agent-mesh
|
||||
|
||||
# 2. Auf alle Remotes kopieren + entpacken
|
||||
for ip in 172.24.20.26 172.24.34.142 172.24.178.202; do
|
||||
sshpass -p 'PW' scp /tmp/skills.tar.gz user@$ip:/tmp/
|
||||
sshpass -p 'PW' ssh user@$ip '
|
||||
cd ~/.hermes/skills
|
||||
mkdir -p tmp-incoming && cd tmp-incoming
|
||||
tar xzf /tmp/skills.tar.gz
|
||||
cp -r . ~/.hermes/skills/
|
||||
rm -rf ~/.hermes/skills/tmp-incoming
|
||||
echo "$ip: OK"
|
||||
'
|
||||
done
|
||||
```
|
||||
|
||||
### Ollama-Provider auf Remote einrichten (per SSH)
|
||||
|
||||
```bash
|
||||
sshpass -p 'PW' ssh user@<ZT-IP> '
|
||||
echo -e "\nproviders:\n custom:\n api_key: ollama\n base_url: http://172.24.196.119:11434/v1" >> ~/.hermes/config.yaml
|
||||
'
|
||||
|
||||
# Testen
|
||||
sshpass -p 'PW' ssh user@<ZT-IP> 'curl -s http://172.24.196.119:11434/api/tags | python3 -c "import sys,json; d=json.load(sys.stdin); print([m[\"name\"] for m in d[\"models\"]])"'
|
||||
```
|
||||
|
||||
### 🔑 Warum Message Bus statt curl?
|
||||
|
||||
- Webhooks blocken curl aus Sessions
|
||||
- Satelliten können nicht direkt an Hub curl'n
|
||||
- Message Bus funktioniert über SSH+SCP + Cron
|
||||
|
||||
Details: `references/message-bus-setup.md`
|
||||
|
||||
---
|
||||
|
||||
## ZeroTier (Netzwerk-Layer)
|
||||
|
||||
| Eigenschaft | ZeroTier |
|
||||
|------------|----------|
|
||||
| Topologie | Mesh |
|
||||
| NAT-Traversal | ✅ |
|
||||
| Failover | Nur `active_hub` ändern |
|
||||
| Limits | 10 Nodes free (Headscale=∞ bei Bedarf) |
|
||||
| Setup | 2 Minuten |
|
||||
|
||||
**Aktuelles Netzwerk:** `6ab565387a75e498` (mehlzoerwer's 1st network)
|
||||
|
||||
| Agent | ZT-IP | Node-ID | Rolle |
|
||||
|-------|-------|---------|-------|
|
||||
| A | `172.24.196.119` | `adccde5dd6` | Hub |
|
||||
| B | `172.24.34.142` | TBD | Entwickler (ZorinOS 18) |
|
||||
| SwitchHermes | `172.24.20.26` | `3c1d63bbed` | Cockpit (ARM64, Switch Lite) |
|
||||
| LaptopHermes | `172.24.178.202` | `94334e18df` | Worker (RTX 2060) |
|
||||
|
||||
### ZeroTier-Setup (einmalig)
|
||||
|
||||
```bash
|
||||
# Auf JEDEM Agent:
|
||||
curl -s https://install.zerotier.com | sudo bash
|
||||
sudo zerotier-cli join 6ab565387a75e498
|
||||
# Dann im Dashboard authorisieren: my.zerotier.com
|
||||
```
|
||||
|
||||
**WireGuard** ist installiert aber deaktiviert als Fallback.
|
||||
|
||||
---
|
||||
|
||||
## SSH-Kanal (Satellit→Hub)
|
||||
|
||||
Der Hub triggert curl per SSH auf dem Satelliten:
|
||||
|
||||
```bash
|
||||
sshpass -p '<PW>' ssh user@<ZT-IP-SATELLIT> \
|
||||
"curl -s -X POST http://<ZT-IP-HUB>:8644/webhooks/collab-from-b \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H 'X-Hub-Signature-256: sha256=...' -d '{\"topic\":\"...\"}'"
|
||||
```
|
||||
|
||||
Funktioniert für ALLE Agenten — nur IP/User ändern sich.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Task-Dateinamen-Schema (KONVENTION, NUTZERWUNSCH 2026-08-03)
|
||||
|
||||
**Jeder Agent erkennt seinen Auftrag anhand seiner eigenen IP-Adresse.**
|
||||
|
||||
Der Dateiname einer Task beginnt mit `JahrMonatTag.C.D.` wobei **C.D die letzten zwei Oktette der ZeroTier-IP des Ziel-Agenten** sind:
|
||||
|
||||
```
|
||||
# Beispiel: UnraidHermes hat IP 172.24.34.142 → 34.142
|
||||
20260803.34.142.HelloWorld.json
|
||||
|
||||
# Beispiel: SwitchHermes 172.24.20.26 → 20.26
|
||||
20260803.20.26.HelloWorld.json
|
||||
|
||||
# Beispiel: LaptopHermes 172.24.178.202 → 178.202
|
||||
20260803.178.202.HelloWorld.json
|
||||
```
|
||||
|
||||
**Regeln:**
|
||||
- Dateiname = `JJJJMMTT.C.D.Auftragsbezeichnung.json` (kein separater Zeitstempel/ID — kein Duplikat)
|
||||
- `C.D` → letzte 2 Oktette der Ziel-ZT-IP (nicht der volle Name)
|
||||
- Der Poller eines Agents sucht nach `JahrMonatTag.<mein-C>.<mein-D>.*`
|
||||
- Erzeugung: `mesh-task-create.sh <ziel-agent> <auftrag> <typ> <prio>`
|
||||
- IP-Auflösung: `/srv/work/registry.json` (Feld `zt_ip`)
|
||||
|
||||
**Warum:** Ein Agent braucht nur seine eigene IP zu kennen, um seine Aufgaben zu sehen. Keine Zuordnungs-Tabellen nötig, Dateiname ist selbsterklärend.
|
||||
|
||||
---
|
||||
|
||||
## 📨 Message Bus — Dateibasierte Bidirektional-Kommunikation
|
||||
|
||||
Wenn Webhooks nicht ausreichen (Satellit kann nicht curl'en), baut der Hub einen Datei-basierten Nachrichtenbus über SSH+SCP:
|
||||
|
||||
```
|
||||
A ──scp──▶ B (sofort) B ──scp──▶ A (Cron alle 30s)
|
||||
```
|
||||
|
||||
### Setup (einmalig)
|
||||
|
||||
```bash
|
||||
# Auf BEIDEN Seiten:
|
||||
mkdir -p /root/.hermes/msg_bus/{inbox,outbox,sent}
|
||||
|
||||
# Send-Script auf A:
|
||||
cat > /usr/local/bin/mesh-send-to-b << 'SCRIPT'
|
||||
#!/bin/bash
|
||||
TOPIC="${1:-test}"; MSG="${2:-ping}"
|
||||
FILE="/root/.hermes/msg_bus/outbox/$(date +%s)_${RANDOM}.json"
|
||||
cat > "$FILE" << JSONEOF
|
||||
{"from":"agent-a","to":"agent-b","topic":"$TOPIC","message":"$MSG","ts":"$(date -Iseconds)"}
|
||||
JSONEOF
|
||||
sshpass -p 'PW' scp "$FILE" user@<ZT-IP-B>:/tmp/msg_bus.json
|
||||
sshpass -p 'PW' ssh user@<ZT-IP-B> "sudo mv /tmp/msg_bus.json /root/.hermes/msg_bus/inbox/"
|
||||
mv "$FILE" /root/.hermes/msg_bus/sent/
|
||||
SCRIPT
|
||||
chmod +x /usr/local/bin/mesh-send-to-b
|
||||
|
||||
# Send-Script auf B (gleiches Muster, ZT-IP tauschen)
|
||||
# Pull-Cron auf A (holt B's outbox alle 30s):
|
||||
# * * * * * /usr/local/bin/mesh-pull-from-b
|
||||
# * * * * * sleep 30; /usr/local/bin/mesh-pull-from-b
|
||||
```
|
||||
|
||||
**Kein Hermes-Limit, kein Sandbox-Problem, keine Webhook-Antwort-Void.**
|
||||
|
||||
⚠️ **KRITISCH: Message Bus braucht Poll-Cron auf BEIDEN Seiten!** Ohne Poll-Job auf B liegen gesendete Nachrichten für immer in `/root/.hermes/msg_bus/inbox/`.
|
||||
|
||||
## ⚠️ ZeroTier-Netzwerk (einzige Quelle)
|
||||
|
||||
9. **Memory aktualisieren**
|
||||
10. **collaboration-secrets.md** Referenz updaten
|
||||
|
||||
> Fehler bei Schritt 4-6: Andere Agents verlieren Ollama-Zugriff. Reihenfolge einhalten.
|
||||
|
||||
> Details: `references/message-bus-setup.md`, `references/message-bus-pitfalls.md`
|
||||
|
||||
---
|
||||
|
||||
## 💬 Chat-Regeln (NUTZER-PRÄFERENZEN)
|
||||
|
||||
| # | Regel |
|
||||
|---|-------|
|
||||
| 1 | **Deutsch — ALLES.** |
|
||||
| 2 | **Inhalte DIREKT im Chat**, nicht nur als PDF/Datei. |
|
||||
| 3 | **Keine Rohdaten** (Terminal-Logs, Base64, Befehle) im Chat |
|
||||
| 4 | **Kurz & direkt, minimale Tokens** — 1-3 Sätze |
|
||||
| 5 | **Budget-bewusst** — keine teuren Modelle ohne Absprache |
|
||||
| 6 | **Mail (MX) ist heilig** — NIE verändern |
|
||||
| 7 | **Keine englischen Befehle/Infos** — alles auf Deutsch |
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Brainstorming & ⭐ GRUNDGERÜST (NUTZERWUNSCH 2026-08-03)
|
||||
|
||||
**Prinzip:** Mehrere "schwächere" Modelle brainstormen + gegenseitig Code prüfen = starkes Team. Rechen-Agenten: UnraidHermes (34.142, RAM) + LaptopHermes (178.202, RTX 2060). Master (VPSHermes) orchestriert, prüft final; Secrets bleiben beim Master.
|
||||
|
||||
> **🔩 LOCHKARTEN-PRINZIP (NUTZER, 01.09.2026):** Keine Kompromisse. Wenn das Ergebnis einen Fehler enthält -> zurueck zu Schritt 1. Bug finden, neu starten. Kein "schnell fixen und weitermachen". Jeder Schritt MUSS bestanden sein, bevor der naechste beginnt. Das gilt fuer alle 7 Bausteine.
|
||||
|
||||
**Das Grundgerüst für ALLE weiteren Arbeit:** 6 Kern-Bausteine in `templates/prompt-werkzeugkasten/` (00-index.md):
|
||||
|
||||
| # | Baustein | Kern |
|
||||
|---|----------|------|
|
||||
| 1 | Briefing | Start: Ziel, Grenzen, nicht verhandelbar (max 5 Rückfragen) |
|
||||
| 2 | Framework | Lage/Optionen/Empfehlung/Umsetzung (+ Modi KRITIK, ALTERNATIVE, MATRIX, PLAN, STATUS) |
|
||||
| 3 | Umsetzung | iterative Schritte mit Feedback-Gates |
|
||||
| 4 | Lernen | Feedback-Revisions-Loop |
|
||||
| 5 | Erklären | einfach erklären + Deep-Dive + Perspektivwechsel |
|
||||
| 6 | Handoff | Stand für neuen Chat |
|
||||
| 7 | Problemlöser | belastbare Lösung + Gegenprüfung/Sparring gegen Halluzinationen (optional Anderer Agent als Gegenpart) |
|
||||
|
||||
Der Ablauf: `Briefing → Framework → Umsetzung → (Lernen ↔ Erklären) → Handoff`. Einzelne Dateien je Baustein laden selbs-aus. **Problemlöser(7) greift parallel bei jeder Problem-/Entscheidungsdiskussion.**
|
||||
|
||||
## ⚠️ ÄNDERUNGSAUFTRAG-PFLICHT (NUTZERWUNSCH 2026-08-09, HART)**
|
||||
|
||||
Bei **jeder** Änderungs- oder Bau-Anfrage des Nutzers (nach einem laufenden Prozess) gilt für den Master **verbindlich vor dem ersten Code-/Datei-/Config-Eingriff:**
|
||||
|
||||
1. **BRIEFING-GATE:** Ziel / Grenzen / offene Fragen klären (max. 5 Rückfragen an Nutzer ODER Sub-Agenten).
|
||||
2. **PROBLEMLÖSER + TEAM-GEGENPRÜFUNG aktivieren:** Architektur/Ansatz per Framework(2) + ≥1 Rechen-Agent (Unraid/Laptop/Switch) als Gegenpart brainstormen & gegenprüfen lassen — **BEVOR** gebaut wird. Kein "schnell allein bauen".
|
||||
3. **SUB-AGENTEN:** Arbeiten nur kleine, klar umrissene Teile ab. Bei Unklarheit SOFORT beim Master nachfragen statt eine Teil-Lösung abzuliefern, die der Master eh verwirft. Master gibt klaren Auftrag oder leitet Unklarheit an den Nutzer weiter.
|
||||
4. **STRUKTUR-FREIGABE:** Erst wenn die (gegengeprüfte) Struktur steht → Umsetzung(3).
|
||||
5. **POST-BAU-VERIFIKATION:** Nach dem Bau NEUES Team-Review (nicht erst, wenn der Nutzer einen Fehler findet). Bevor Ergebnis an Nutzer, MÜSSEN 3 Sub-Agenten reviewed haben (UnraidHermes + SwitchHermes + LaptopHermes). Ist das nicht möglich -> Agent-Ausfall-Regel gilt. **Keine Ausnahme** fuer "kleine Seiten" oder "schnelle Fixes". Master prueft zusaetzlich gegen echten Systemstand.
|
||||
|
||||
**Kein Einzelkämpfer-Selbstlauf.** Das Grundgerüst ist Pflicht — bei Rückfall in "allein schnell bauen" hält sich der Master selbst an diese Liste. Nutzer ist "Dream-Team-Partner", Letztentscheider, aber soll nicht ständig Fehler finden müssen.
|
||||
|
||||
**AGENT-AUSFALL-REGEL (hart, 01.09.2026):**
|
||||
|
||||
| Phase | Regel |
|
||||
|-------|-------|
|
||||
| **1. Task STOPPEN** | Fällt ein Agent bei Schritt 1-3 aus, wird der laufende Task sofort gestoppt. Kein "dann bau ich eben ohne ihn weiter". |
|
||||
| **2. Agent REPARIEREN** | Master prüft + repariert den defekten Agenten **selbstständig und allein** — das ist sein Job als Admin. Diagnose, Fix, Test bis Agent wieder läuft. |
|
||||
| **3. NICHTS am Task bauen** | Während der Reparatur wird **nichts** am eigentlichen Task gebaut. Kein Code, kein Design, kein Inhalt. |
|
||||
| **4. NEUSTART bei Schritt 1** | Wenn Agent repariert ist → zurück zu **Schritt 1 (Briefing)**. Neuer Durchlauf von vorne. |
|
||||
| **5. "Halber Lauf" als Gewinn** | Haben die anderen Agenten schon Ergebnisse geliefert (Recherche, Design, Code)? Die sind **nicht verloren** — sie fließen als Vorarbeit in den Neustart ein. Spart Zeit, ohne den Prozess zu brechen. |
|
||||
|
||||
**Kernregel:** *Reparieren ist Einzelkämpfer-Job des Masters. Bauen ist Team-Job. Niemals beides gleichzeitig.*
|
||||
|
||||
**UNSICHERHEITS-REGEL (hart, 01.09.2026):**
|
||||
"Sollte", "könnte", "wahrscheinlich", "müsste" sind im Ergebnisbericht an den Nutzer **verboten**. Diese Wörter bedeuten: Ich habe nicht geprüft, ich rate.
|
||||
- Kann ich es selbst prüfen? → Prüfen, dann Ergebnis melden.
|
||||
- Kann ich es nicht selbst prüfen? (z.B. Video-Link funktioniert, visuelle Darstellung) → "Bitte überprüfen" sagen. Nicht raten, nicht hoffen.
|
||||
- Bin ich unsicher? → Zurück zu Schritt 1 des Grundgerüsts.
|
||||
|
||||
### 🎯 MASTER-DEFINITION (NUTZER, 01.09.2026)
|
||||
|
||||
> Master heißt **Kontrolle aller laufenden Prozesse** anhand aller Regeln und Abläufe. Grundgerüst als **Taskplaner für Aufgaben**. Bei Fehlern im System muss Master eingreifen um das System wieder zu reparieren — aber niemals parallel zum Task bauen.
|
||||
|
||||
### 📎 AUDIT-PITFALL (2026-08-09, Team-Audit-Erkenntnis)
|
||||
|
||||
Bei **Code-/Daten-Audits** an Sub-Agenten (Unraid/Switch/Laptop): Die haben **KEINEN Zugriff auf VPS-Dateien** (`/opt/urlaub/urlaub.db` u.a. liegen nur auf dem Master). Werden nur Pfade/Dateinamen in den Task gelegt, können sie nicht echt auditieren und laufen ins Leere (oder müssen erfinden). **Deshalb:**
|
||||
- **Relevante Inhalte in den Task einbetten** — konkrete Ausschnitte, Soll-IST-Werte, Ziellisten, Code-Fragmente, DB-Aggregate direkt in der Task-Beschreibung.
|
||||
- Nur **konzeptionelle/KRITIK-Audits** (Geographie, Plausibilität aus Wissen) gehen rein deskriptiv.
|
||||
- Verhaltensregel für Sub-Agenten: Ohne Zugriff auf die echten Daten **nicht erfinden** — konkret "kann ich ohne Daten nicht prüfen" zurückmelden (das tat UnraidHermes korrekt 09.08).
|
||||
- Master prüft Audit-Behauptungen **immer real gegen den Systemzustand** (curl/ss/DB), bevor Fixes übernommen werden (nie Agenten-Behauptung blind glauben).
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
## 🧠 LEBENSGESETZ (01.09.2026)
|
||||
|
||||
> **Die Regeln sind nicht verhandelbar. Sie stehen über meiner Modell-Gewichtung, über "schnell liefern", über allem.**
|
||||
>
|
||||
> **"Schnell" bedeutet: sauber und fehlerfrei durch die Regeln gehen. Nicht: Regeln überspringen.**
|
||||
>
|
||||
> **Zeit ist immer egal. Es gibt keinen Grund, der einen Prozessbruch rechtfertigt.**
|
||||
>
|
||||
> **Jede Interaktion startet mit: Bin ich in den Regeln? Folge ich ihnen?**
|
||||
|
||||
## 🔒 ÄNDERUNGSSPERRE (01.09.2026)
|
||||
|
||||
> **Diese Regeln werden niemals verändert, außer es gibt eine 2-fache Bestätigung vom User.**
|
||||
>
|
||||
> Der User bekommt als 2te Bestätigung **immer alle bisherigen + die vorgeschlagenen neuen Regeln präsentiert** und segnet sie dann ab.
|
||||
|
||||
## 📋 Kurzwort "Briefing" (NUTZERWUNSCH 2026-08-06)
|
||||
|
||||
**"Briefing"** = das standardisierte Kontext-Übergabe-Dokument (Ziel / Entscheidungen / Begriffe / offene Fragen / Grenzen / nächste Schritte — wie beim Session-Handoff). Wenn der Nutzer "Briefing" sagt, ist genau diese Struktur gemeint — **ein Wort, große Wirkung**. Als Master jeweils prüfen: vollständig? Dann arbeiten; fehlt etwas → max. 5 Rückfragen.
|
||||
|
||||
Aktuelles Briefing: `/srv/work/handoff_2026-08-06.md`
|
||||
|
||||
---
|
||||
|
||||
## 🔒 Update-Kontrollpolitik (NUTZERWUNSCH 2026-08-03)
|
||||
|
||||
**"Stable im Betrieb, Updates kontrolliert"** — Hybrid statt Never-change-a-running-system.
|
||||
|
||||
0. **BACKUP-ONLY-REGEL (NUTZERWUNSCH 2026-08-08):** Bei JEDER System-/Config-Änderung zuerst Backup anlegen + Rückkehr-Option. Solange Backup/Rollback existiert, ist keine Freigabe nötig ("Master darf System verwalten"). Nichts zerstören ohne Wiederherstellungspfad. Konkret: vor Edit von config/scripts/etc → `cp datei datei.bak-$(date +%s)`; vor systemd-Änderung → aktuelle Unit-Datei sichern; vor Network/Firewall → Regelstand exportieren.
|
||||
|
||||
0b. **MAINTENANCE-vs-DATEN-KONVENTION (NUTZERWUNSCH 2026-08-08, ab morgen für ALLE im Mesh):**
|
||||
- **System-Wartung/Neustart/selbstbezogen** (Gateway-Restart, Aufräumen von Altdaten, rotierende Logs, systemd-Timer) → **Timer/Cron AUSSERHALB des Gateway** (läuft frei, fest terminiert). Hermes-Scanner blockt Agenten davon, sich selbst zu killen → für Restart IMMER systemd-Timer.
|
||||
- **Daten-/Inhaltsänderung (risikoreich)** → **im Schutz des Agenten-Terminals + Backup** (Hermes-Scanner bremst Gefährliches, Backup-Regel greift).
|
||||
- Faustregel: Je mehr das System sich selbst verwaltet → Timer außerhalb. Je mehr es Daten/Inhalte ändert → Schutz + Backup.
|
||||
|
||||
1. **Master (VPSHermes) ist die einzige Quelle für Skill-/Konfig-/Wissensbasis-Änderungen.**
|
||||
2. **Agenten führen KEINE autonom Updates durch** (kein eigenmächtiges `apt upgrade`, kein Skill-Replace, kein Config-Tampering) — außer explizit auf Anweisung des Masters.
|
||||
3. **Kontrollierte Rollout-Hierarchie:**
|
||||
- Phase 1: Änderung am Master entwickeln + testen
|
||||
- Phase 2: auf EINEN Test-Agent ausrollen, Stabilität bestätigen
|
||||
- Phase 3: erst dann auf ALLE Agenten
|
||||
- Rollback: Master kann jederzeit zurück (Backup vor Änderung)
|
||||
4. **Wissens-Sync bleibt aktiv** (Skill/Wissensbasis/Registry unisono), damit die Agenten wissensmäßig auf Stand bleiben — aber die Dateien kommen aus einer Quelle (Master), nicht aus Agenten-Eigeninitiative.
|
||||
5. Ausnahme: Vom Nutzer explizit beauftragte Updates/Distributionen.
|
||||
|
||||
---
|
||||
|
||||
## Referenzen
|
||||
|
||||
- `templates/task-prompt-template.md` — **Standard-Prompt-Template für Agenten-Tasks**.
|
||||
- `templates/prompt-werkzeugkasten/00-index.md` — **🧰 GRUNDGERÜST (6 Kern-Bausteine)**: Briefing → Framework → Umsetzung → Lernen → Erklären → Handoff.
|
||||
- **PITFALL (2026-08-04):** Kontext für Agenten-Tasks IMMER in die Task-Beschreibung einbetten (`mesh-task-create.sh` Detail-Parameter 6). NIE als externe Datei unter `/srv/work/` ablegen — Agenten sehen per SSH/scp nur `/srv/work/tasks/`. Externes Briefing = Kontext-Halluzination.
|
||||
- `references/agent-hardware-specs.md` — Hardware-Spezifikationen aller Agents
|
||||
- `references/mesh-ssh-trigger-19-07-2026.md` — SSH `hermes chat -q`
|
||||
- `references/message-bus-setup.md` — Message Bus Setup
|
||||
- `references/message-bus-pitfalls.md` — Poll-Cron nötig
|
||||
|- `references/collaboration-secrets.md` — Secrets, SSH, ZT-IPs
|
||||
|- `/usr/local/bin/mesh-deploy-check.sh` — **3-Check-Liste vor jedem Deploy** (nginx-syntax + HTTP-Status + Python-Syntax)
|
||||
|- `/opt/lernerfolg-impressum-2026-09-01.md` — Lernerfolge aus dem Impressum-Projekt (8 Fehler + Prävention)
|
||||
Reference in New Issue
Block a user