From 2c95f1c5bc7b2c8cc11774614e4cf7701921ca9d Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Thu, 2 Jul 2026 20:19:41 +0200 Subject: [PATCH] Autonomie E4: Evolution-Radar (Hermes-cron monatlich, Fan-out-Subagents) - deploy/radar-prompt.md: versionierter Auftrag (delegate_task-Fan-out mit Muell-Filter, Verdikt-Liste inline, kurzes deutsches Telegram-Report-Format) - deploy/radar-feed.sh: speist Auftrag + Live-Inventar (Updates/Modelle/Versionen/Pins) in den Cron-Agenten; deploy.sh kopiert ihn nach ~/.hermes/scripts/ - Cron registriert: evolution-radar, 0 9 1 * * (monatlich), --deliver telegram Co-Authored-By: Claude Fable 5 --- deploy/deploy.sh | 4 ++++ deploy/radar-feed.sh | 25 +++++++++++++++++++++++++ deploy/radar-prompt.md | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 deploy/radar-feed.sh create mode 100644 deploy/radar-prompt.md diff --git a/deploy/deploy.sh b/deploy/deploy.sh index c0e4ccc..e28943d 100644 --- a/deploy/deploy.sh +++ b/deploy/deploy.sh @@ -62,6 +62,10 @@ cp "$SRC/deploy/mc2-backup.timer" "$HOME/.config/systemd/user/mc2-backup.timer" # Wöchentliches Auto-Update (Router/Engine/Hermes, Rollback+Pin+Telegram) — Autonomie E2. cp "$SRC/deploy/mc2-autoupdate.service" "$HOME/.config/systemd/user/mc2-autoupdate.service" cp "$SRC/deploy/mc2-autoupdate.timer" "$HOME/.config/systemd/user/mc2-autoupdate.timer" +# Evolution-Radar-Feed (Autonomie E4): Hermes-cron speist ihn als Prompt ein. +# Cron-Job selbst wird EINMALIG registriert (hermes cron create, siehe docs/RUNBOOK.md). +mkdir -p "$HOME/.hermes/scripts" +cp "$SRC/deploy/radar-feed.sh" "$HOME/.hermes/scripts/radar-feed.sh" systemctl --user daemon-reload systemctl --user enable mission-control-2 >/dev/null 2>&1 || true systemctl --user enable hermes-terminal >/dev/null 2>&1 || true diff --git a/deploy/radar-feed.sh b/deploy/radar-feed.sh new file mode 100644 index 0000000..ae43ca8 --- /dev/null +++ b/deploy/radar-feed.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# Feed für den Evolution-Radar-Cron (Autonomie E4). Liegt in ~/.hermes/scripts/ (deploy.sh +# kopiert ihn); sein stdout wird dem Cron-Agenten als Prompt eingespeist: +# versionierter Auftrag (deploy/radar-prompt.md im MC2-Repo) + Live-Inventar der Box. +set -uo pipefail + +cat "$HOME/mission-control-v2/deploy/radar-prompt.md" + +echo +echo "## LIVE-INVENTAR (automatisch erhoben am $(date '+%d.%m.%Y'))" +echo +echo "### Update-Status (MC2 /api/maintenance/updates):" +curl -sf --max-time 30 http://127.0.0.1:9001/api/maintenance/updates \ + | jq -c '{os_pakete: .os, engine_update: .engine, router_update: .swap, komponenten: .components}' \ + 2>/dev/null || echo "(MC2-API nicht erreichbar)" +echo +echo "### Installierte Modelle (llama-swap):" +curl -sf --max-time 20 http://127.0.0.1:8080/v1/models | jq -r '.data[].id' 2>/dev/null \ + || echo "(llama-swap nicht erreichbar)" +echo +# llama-server braucht LD_LIBRARY_PATH auf das Vulkan-Verzeichnis für --version. +echo "### Versionen: llama.cpp $( LD_LIBRARY_PATH=/opt/llamacpp-vulkan /usr/local/bin/llama-server --version 2>&1 | grep -o 'version: [0-9]*' || true ) · llama-swap $( /usr/local/bin/llama-swap --version 2>/dev/null | head -1 || true )" +echo +echo "### Pin-Register (gepinnte Ebenen NICHT zum Update vorschlagen, aber Sprünge melden):" +cat /srv/models/mc2-pins.json 2>/dev/null || echo "{}" diff --git a/deploy/radar-prompt.md b/deploy/radar-prompt.md new file mode 100644 index 0000000..abea84c --- /dev/null +++ b/deploy/radar-prompt.md @@ -0,0 +1,39 @@ +# Evolution-Radar (monatlicher Auftrag) + +Du bist das Evolution-Radar der AI-Box (AMD Strix Halo, 128 GB, 100 % lokal, Vulkan/RADV). +Dein Job: EINMAL im Monat prüfen, ob sich bei unseren Kern-Komponenten oder in deren +Kategorien ein echter Sprung ergeben hat — und das als kurzen deutschen Report melden. +Unten ist das Live-Inventar der Box eingespeist (Update-Status, installierte Modelle, Pins). + +## Arbeitsweise: Fan-out mit Subagents (WICHTIG) + +Nutze `delegate_task` mit einem `tasks`-Array (role: leaf), um die Recherche in ISOLIERTE +Subagents aufzuteilen — pro Task eine Komponenten-Gruppe. Jeder Subagent recherchiert per +Web-Suche, FILTERT Marketing-Geschwätz aus und liefert dir nur eine Substanz-Zusammenfassung +(max. 5 Zeilen pro Komponente). Du konsolidierst am Ende. Erwähne im Endbericht nur, was +Substanz hat — „nichts Nennenswertes" ist ein gültiges und gutes Ergebnis je Gruppe. + +Task-Aufteilung (4 Subagents): +1. **Engine/Router:** llama.cpp (Vulkan, gfx1151/Strix Halo relevant!), llama-swap (mostlygeek) +2. **Agent/Runtime:** hermes-agent (NousResearch), Electron (Major-Sprünge), three-vrm/@pixiv +3. **Voice:** pocket-tts (kyutai), onnx-asr/Parakeet, Silero-VAD, smart-turn — nur Deutsch-taugliches +4. **Modell-Kategorien** für 128-GB-Strix-Halo: bessere lokale Coder-Modelle (vs. Qwen3-Coder-Next), + Chat/Reasoning-MoE (vs. Qwen3.6-35B/Qwen3.5-122B), Vision (vs. Qwen3-VL), deutsche TTS/STT. + Nur GGUF-/llama.cpp-lauffähig, Substanz = Benchmarks/Community-Erfahrung, kein Ankündigungs-Hype. + +## Bereits ENTSCHIEDEN — nicht wieder vorschlagen (Verdikte der Box) + +- Vulkan/RADV statt ROCm (gemessen schneller auf gfx1151) · llama.cpp+llama-swap gesetzt +- Hirn = Qwen3.6-35B-A3B mit MTP-Spec-Draft, immer warm · Mem0 als Memory · Electron-App für Lucy +- Pocket-TTS für Lucys Stimme (deutsch, CPU) · KEIN Kyutai-Streaming-STT (kann kein Deutsch) +- VERWORFEN: LobeChat/WebUI-Ersatz, Unmute-Vollstack, AnythingLLM, gemma als Hirn +- Latenz ist heilig: nichts vorschlagen, was Lucys ~2-s-Sprech-Latenz gefährdet + +## Report-Format (Endantwort = geht direkt als Telegram-Nachricht raus) + +- Deutsch, maximal ~20 Zeilen, Du-Form, kein Markdown-Overkill +- Struktur: „🛰️ Evolution-Radar " → je Fund 1–3 Zeilen: WAS, WARUM relevant für UNS, + Einstufung **[lohnt vermutlich]** / **[beobachten]** / ggf. Quelle kurz +- Wenn ein Fund ein GEPINNTES Level betrifft (siehe Pins im Inventar): explizit erwähnen +- Nichts gefunden? Dann genau das in 2 Zeilen sagen. Keine Pflicht-Funde erfinden. +- KEINE Konfig-Änderungen vornehmen, KEINE Downloads starten — nur melden.