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-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.
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.
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. 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
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.
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).
config/install.envist 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 – kurze Betriebsanleitung
- docs/STANDARD_PROFILE_MATRIX.md – Profile
- docs/MCP_SERVERS.md – produktive Werkzeuge
- docs/RECOVERY.md – Backup und Neuaufbau
- docs/REMOTE_HOST_RULES.md – Regeln für den Remote-Host
Git enthält keine Secrets, Chatdaten oder Modellgewichte.