7.4 KiB
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 9B FP8 Beta für Textbilder und Referenzbild-Bearbeitung: Transformer auf RTX 5080, Qwen3-8B-NF4-Textencoder auf RTX 3060
- Qwen3-TTS 1.7B auf der RTX 3060 mit Piper als CPU-Fallback
- Whisper.cpp
large-v3-turboauf 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.
Installation – ein Befehl
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.
FLUX.2 Klein 9B ist bei Hugging Face zugriffsbeschränkt. Vor der Installation
müssen die Bedingungen beider BFL-Repositories akzeptiert und ein Token in der
unter HF_TOKEN_FILE konfigurierten, nur für root lesbaren Datei abgelegt sein.
Der Token wird ausschließlich als Read-only-Datei in den Download-Container
eingehängt und weder in stack.env noch in Git kopiert.
Betrieb
# 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:
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:
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.
Bildgenerierung mit FLUX.2 Klein 9B FP8 Beta
Ein Bildauftrag verwendet beide GPUs exklusiv. Der Profile Controller stoppt zuerst das aktive llama.cpp-Profil und Qwen3-TTS. Anschließend läuft der FP8-Transformer auf der RTX 5080 und der in NF4 geladene Qwen3-8B-Textencoder auf der RTX 3060. Vor dem VAE-Decoding werden Transformer und Textencoder freigegeben. Nach dem Bildauftrag stoppt der Router den Bild-Worker und stellt Qwen3-TTS sowie das zuvor aktive Textprofil automatisch wieder her. Piper bleibt währenddessen als CPU-Fallback verfügbar.
Die Beta ist derzeit bewusst auf 1024x1024, vier Schritte, Guidance 1.0,
einen parallelen Auftrag und maximal vier lokale Referenzbilder begrenzt.
Details, Installation, Prüfung und Rollback stehen in
docs/FLUX_9B_BETA.md.
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, natives Qwen-PCM-Streaming über
/v1/audio/speech/pcm-stream 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. 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.
Für Hermes liegt unter integrations/hermes-qwen3-stream ein optionales,
persistentes Backend-Plugin. Es nutzt den nativen PCM-Strom und verkürzt den
Beginn der Sprachausgabe, ohne den Modellrouter oder die Textprofile zu ändern.
Bildgenerierung läuft über /v1/images/generations; Hermes verwendet dafür den
persistenten Benutzer-Provider athena-local mit dem Modellnamen
FLUX.2-klein-9B-fp8-beta. Seine versionierte Quelle und Installationshinweise
liegen unter
integrations/hermes-athena-image.
- 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
Weitere produktive Container verwenden ihre jeweiligen Upstream-Images und Unraid-DockerMan-Templates. Details stehen in docs/MCP_SERVERS.md.
Wiederherstellung
Nach einer frischen Debian-Installation und erneut eingehängtem /data:
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.
Verbindliche Dokumentation
- ATHENA.md – kurze Betriebsanleitung
- docs/STANDARD_PROFILE_MATRIX.md – Profile
- docs/MCP_SERVERS.md – produktive Werkzeuge
- docs/RECOVERY.md – Backup und Neuaufbau
- docs/FLUX_9B_BETA.md – 9B-Bildpfad, Test und Rollback
Git enthält keine Secrets, Chatdaten oder Modellgewichte.