# Athena AI Athena ist die lokale Inferenzmaschine. Der reproduzierbare Docker-Stack stellt Qwen über eine kleine OpenAI-kompatible Router-API bereit und übernimmt lokale Bild- und Sprachausgabe. **Hermes und die Fach-MCPs laufen auf Unraid.** ## Aktueller Aufbau ### Athena - genau ein aktives llama.cpp-Profil: Fast, Medium, Large, Ultra oder Uncensored - Profile Router auf Port 8081 - FLUX.2-klein-4B für Textbilder und Referenzbild-Bearbeitung auf der RTX 5080 - Qwen3-TTS 1.7B auf der RTX 3060 mit Piper als CPU-Fallback - Whisper.cpp `large-v3-turbo` auf der CPU für lokale deutsche Spracherkennung - Live-Dashboard mit 21 Tagen Detailhistorie auf Port 8099 - Portainer CE als optionale Container-Ansicht auf Port 9443 - WireGuard-Gateway, Datenbackup und Athena-Operator - keine produktive Hermes-, OpenWebUI- oder portable Fach-MCP-Instanz ### Unraid - offizieller Hermes-Agent mit persistentem Appdata - je ein eigener Container für ARR, Deemix, Navidrome, STRATO und Nginx Proxy Manager - MUA/Unraid-MCP als Unraid-Plugin - Media-Tools als nachrüstbare Werkzeugkiste - Sicherung durch das vorhandene Unraid-Appdata-Backup Hermes nutzt Athenas Router unter `http://192.168.1.212:8081/v1`. Ein MCPHub ist nicht mehr Bestandteil der produktiven Architektur. ## Verifizierte Bildauflösung auf dem Live-System Der am 12. September geprüfte Live-Worker verwendet **FLUX.2 Klein 9B FP8 Beta** und weicht damit vom oben beschriebenen 4B-Stand ab. Im Auflösungstest war **1024 × 1024 erfolgreich**, während **1280 × 1280 einen CUDA-OOM** auf der RTX 5080 auslöste. Höhere Auflösungen sind damit nicht freigegeben; Zwischenwerte wurden nicht getestet. Die produktive 1024-Begrenzung bleibt bestehen. Messwerte, Testbedingungen und die Korrektur früherer optimistischer Schätzungen stehen in [Auflösungstest vom 12. September](docs/FLUX_RESOLUTION_TEST_20260912.md). ## Installation – ein Befehl ```bash cp config/install.env.example /root/mike-ai-install.env # Werte in /root/mike-ai-install.env eintragen und chmod 600 setzen sudo ./install.sh --config /root/mike-ai-install.env ``` Das Installationsskript baut llama.cpp und die lokalen Images, lädt die versionierten Modellartefakte und startet ausschließlich den Athena-Kern. ## Betrieb ```bash # Konfiguration prüfen ./manage.sh validate # Gesamten Athena-Kern gezielt aktualisieren ./manage.sh deploy core # Nur einen Dienst ausrollen ./manage.sh deploy router # Eindeutige Altcontainer entfernen ./manage.sh purge-legacy # Read-only Ende-zu-Ende-Test sudo ./smoke-test.sh ``` ### Reasoning-Stufen Der Router übersetzt die Auswahl eines OpenAI-kompatiblen Clients in echte, pro Anfrage geltende llama.cpp-Denkbudgets. `Off` deaktiviert Thinking; die aktiven Stufen sind auf 256 (Minimal), 768 (Low), 2048 (Medium), 4096 (High) und 8192 Tokens (XHigh/Max/Ultra) begrenzt. Die Modellserver dürfen deshalb kein festes `--reasoning-budget` setzen, da dieses die dynamischen Budgets von llama.cpp übersteuern würde. Clients, die direkt `thinking_budget_tokens` senden, behalten ihren expliziten Wert. ### Ein oder zwei Modell-Slots Produktiv laufen alle Profile mit einem Slot. Damit erhält ein einzelner Chat den vollständigen Profilkontext und die bewährte Ausgabegeschwindigkeit. Die Einstellung liegt auf Athena in `/etc/mike-ai/stack.env`: ```bash MEDIUM_PARALLEL_SLOTS=1 ``` Für einen späteren erneuten Paralleltest genügt es, den Wert auf `2` zu setzen und ausschließlich das aktuell betroffene Profil neu zu erstellen: ```bash sed -i 's/^MEDIUM_PARALLEL_SLOTS=.*/MEDIUM_PARALLEL_SLOTS=2/' /etc/mike-ai/stack.env cd /opt/mike-ai/stack docker compose --env-file /etc/mike-ai/stack.env up -d --no-deps --force-recreate llama-medium ``` Zurück zum stabilen Ein-Slot-Betrieb geht es mit denselben zwei Befehlen und `MEDIUM_PARALLEL_SLOTS=1`. `--kv-unified` ist bereits im Compose-Stack gesetzt. Zwei Slots wurden direkt am Router erfolgreich getestet; Hermes verwaltete zwei gleichzeitig aktive Chats jedoch nicht zuverlässig. Deshalb bleibt ein Slot der Standard, bis Hermes' Sitzungsfehler behoben ist. ## Endpunkte - Router: `http://192.168.1.212:8081/v1` - Athena-Dashboard: `http://192.168.1.212:8099` Der Router stellt Sprache OpenAI-kompatibel bereit: Sprachausgabe über `/v1/audio/speech` und Spracherkennung über `/v1/audio/transcriptions`. Das Whisper-Modell liegt persistent im Docker-Volume `whisper-data`; Audiodaten werden lokal auf Athena verarbeitet. Für OpenClaw Talk liegt der lokale Realtime-Provider unter [`integrations/openclaw-athena-talk`](integrations/openclaw-athena-talk). Er verbindet Mikrofon → Athena Whisper → normalen OpenClaw-Agenten → aktives Athena-TTS, sodass Modell, Werkzeuge und Memory auch im Sprachmodus erhalten bleiben. Die Installation landet in OpenClaws persistentem Datenverzeichnis und bleibt deshalb bei normalen Container-Updates bestehen. - Portainer: `https://192.168.1.212:9443` - Hermes-Dashboard auf Unraid: `http://192.168.1.2:9119` Die Adressen sind nur über die vorgesehenen privaten Netze erreichbar. ## Ausgegliederte MCPs - [ARR-MCP](https://git.casaderoll.de/michael/arr-mcp) - [Deemix-MCP](https://git.casaderoll.de/michael/Deemix-MCP) - [Strato-MCP](https://git.casaderoll.de/michael/Strato-MCP) Weitere produktive Container verwenden ihre jeweiligen Upstream-Images und Unraid-DockerMan-Templates. Details stehen in [docs/MCP_SERVERS.md](docs/MCP_SERVERS.md). ## Wiederherstellung Nach einer frischen Debian-Installation und erneut eingehängtem `/data`: ```bash sudo ./install.sh --config /root/mike-ai-install.env sudo ./restore.sh --check /data/docker-backups/athena-latest.tar.gz sudo ./restore.sh /data/docker-backups/athena-latest.tar.gz sudo ./smoke-test.sh ``` Der genaue Sicherungsumfang steht in [docs/RECOVERY.md](docs/RECOVERY.md). ## Sicherheitsregeln - **Wichtigste Regel:** Der Host steht physisch in einer anderen Stadt. Er wird niemals heruntergefahren oder neu gestartet, und es wird keine Aktion ausgeführt, die seine Erreichbarkeit gefährdet (Details: [docs/REMOTE_HOST_RULES.md](docs/REMOTE_HOST_RULES.md)). - `config/install.env` ist lokal, Modus 0600, und wird ignoriert. - API-, Controller-, WebUI- und WireGuard-Schlüssel entstehen erst am Host. - Nur der kleine Profile Controller sieht den Docker-Socket. - llama.cpp veröffentlicht weder Port noch WebUI. - Ein Blackhole-Fallback verhindert Traffic-Leaks bei WireGuard-Ausfall. - Das Uni-Netz und das Heimnetz dürfen diesen Host nicht als Transit benutzen. ## Verbindliche Dokumentation - [ATHENA.md](ATHENA.md) – kurze Betriebsanleitung - [docs/STANDARD_PROFILE_MATRIX.md](docs/STANDARD_PROFILE_MATRIX.md) – Profile - [docs/MCP_SERVERS.md](docs/MCP_SERVERS.md) – produktive Werkzeuge - [docs/RECOVERY.md](docs/RECOVERY.md) – Backup und Neuaufbau - [docs/REMOTE_HOST_RULES.md](docs/REMOTE_HOST_RULES.md) – Regeln für den Remote-Host Git enthält keine Secrets, Chatdaten oder Modellgewichte.