Files
AI-Profile-Router/README.md
T

203 lines
8.9 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: **20. September 2026**, auf Athena geprüft. Die Textprofil-Images verwenden
**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, OpenClaw und die Fach-MCPs laufen auf Unraid.**
Die [Router-Korrekturen vom 20. September](docs/ROUTER_AUDIT_20260920.md)
dokumentieren den ausgerollten Stand, reduzierte Statuslatenzen und Tests.
## 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
- EmbeddingGemma 300M Q8 auf der CPU für OpenClaws hybride Memory-Suche
- Live-Dashboard mit 21 Tagen Detailhistorie für GPUs und Slot-Kontextbelegung 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
Fast, Large, Ultra und Uncensored laufen mit einem Slot. Medium läuft seit dem
19. September in einem kontrollierten OpenClaw-Praxistest mit zwei Slots. Beide
Medium-Slots teilen sich durch `--kv-unified` **einen** 160.000-Token-KV-Pool;
es entstehen keine zwei unabhängigen 160K-Kontextfenster. Belegt ein Slot
beispielsweise 30.000 Token, stehen dem zweiten höchstens noch etwa 130.000
Token aus diesem Pool zur Verfügung. Das Dashboard zeigt diese aktuell
erreichbare Kapazität und den freien gemeinsamen Pool dynamisch an.
Die Live-Einstellung liegt auf Athena in `/etc/mike-ai/stack.env`:
```bash
MEDIUM_PARALLEL_SLOTS=2
```
Zum Umschalten wird nur Medium neu erstellt:
```bash
sed -i 's/^MEDIUM_PARALLEL_SLOTS=.*/MEDIUM_PARALLEL_SLOTS=1/' /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
```
Für zwei Slots wird im ersten Befehl wieder `2` gesetzt. Der Compose- und
Installationsstandard bleibt bewusst `1`; damit wird der Versuchsstand bei
einer Neuinstallation nicht unbemerkt zur Vorgabe. Der aktuelle Live-Test mit
OpenClaw kann zwei gleichzeitige Anforderungen annehmen. Sehr große parallele
Prefills konkurrieren weiterhin um Rechenleistung und den gemeinsamen KV-Pool.
## Endpunkte
- Router: `http://192.168.1.212:8081/v1`
- Embeddings: `http://192.168.1.212:8082/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.
OpenClaws Memory-Suche verwendet den separaten CPU-Dienst
`mike-ai-embedding`. Dadurch bleiben die GPUs vollständig für Qwen, Vision
und TTS verfügbar. Die verbindliche Konfiguration, Prüfung und
Wiederherstellung stehen in [OpenClaw Memory](docs/OPENCLAW_MEMORY.md).
- 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.