Files
AI-Profile-Router/README.md
T

188 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Athena AI
Stand: **15. September 2026**, auf Athena geprüft. Produktiv läuft
**llama.cpp 0.4.1** (`b29c606`).
Der [geprüfte Live-Stand](docs/LIVE_STATE.md) beschreibt Profile, GPUs und die
Abweichung zwischen dem bereitgestellten Stack und dem Git-Checkout.
Der [Update- und Aufräumbericht vom 15. September](docs/UPDATE_AUDIT_20260915.md)
enthält Versionsvergleich, Tests und Rückfallstand.
Athena ist die lokale Inferenzmaschine. Der 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: Transformer/VAE auf RTX 5080, Textencoder auf RTX 3060
- Qwen3-TTS 1.7B auf der RTX 3060 hinter dem TTS-Gateway; kein Piper-Fallback
- Whisper.cpp `small` 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**. Die frühere 4B-Angabe war veraltet. 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 des Repository-Stands
Der produktive Quellstand ist mit diesem Repository abgeglichen. Ein frischer
Clone enthält den Athena-Kern, die Spezialprofile sowie die LTX-Erweiterungen.
Modelle, Laufzeitdaten und geheime Konfiguration bleiben außerhalb von Git und
werden über die dokumentierten Sicherungen wiederhergestellt.
```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.
OpenClaw wird über den Provider **llama.cpp → Existing llama-server** mit
`http://192.168.1.212:8081/v1` verbunden. Der Router beantwortet sowohl
`/models` als auch `/v1/models` mit allen fünf virtuellen Profilen. Dadurch
erkennt OpenClaw die vollständige Auswahl automatisch, während Laden,
Entladen und Umschalten weiterhin ausschließlich der Athena Profile Router
übernimmt.
- 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
Der Sicherungsumfang und die Grenzen eines Neuaufbaus aus dem Repository stehen
in [docs/RECOVERY.md](docs/RECOVERY.md). Der vor dem Update gesicherte Live-Quellstand dient als Rückfallstand.
## 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.
- Docker-Zugriff ist auf Verwaltungsdienste begrenzt; unter anderem benötigen
Profile Controller, Portainer und Backup Zugriff auf 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/LIVE_STATE.md](docs/LIVE_STATE.md) – tatsächlich bereitgestellte Profile und Versionen
- [docs/CONTAINER_INVENTORY.md](docs/CONTAINER_INVENTORY.md) – vorhandene Container
- [docs/STANDARD_PROFILE_MATRIX.md](docs/STANDARD_PROFILE_MATRIX.md) – Repository-Matrix, einschließlich nicht installiertem beta1
- [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.