homelab-brain/homelab-ai-bot/STATE.md
2026-03-21 01:45:09 +01:00

78 lines
3.2 KiB
Markdown

# Hausmeister Bot - STATE
**Stand:** 21.03.2026
**Status:** laeuft, aber in inkonsistentem Umbauzustand
## Kurzfassung
Der Bot ist aktuell nicht in einem sauberen Zielzustand.
Er wurde von `local-only` auf ein teilweises Hybrid-Routing umgebaut, ohne die Gesamtarchitektur sauber abzuschliessen.
Dadurch funktioniert ein Teil der Anfragen besser, aber der Systemzustand ist inkonsistent und nicht final.
## Aktueller Live-Zustand
- `hausmeister-bot.service` ist aktiv.
- `llm.py` hat uncommittete Live-Aenderungen.
- Standardmodell in `llm.py`: `qwen3-vl:32b`
- Online-Textmodell in `llm.py`: `openai/gpt-4o-mini`
- Auf dem Ollama-Server ist aktuell kein Modell vorgeladen (`/api/ps` leer).
## Was aktuell geroutet wird
### Lokal
- normale Textaufgaben ohne Preis-/Recherche-Trigger
- normale Bildaufgaben
- Tool-Nutzung allgemein ueber `tool_loader`
### Online (`openai/gpt-4o-mini`)
- Preisfragen
- Web-/Recherchefragen anhand einfacher Keyword-Heuristik in `llm.py`
- Bildanfragen mit Preisbezug
## Was daran kaputt / unsauber ist
1. Das System ist nicht mehr rein `local-first`.
Standardziel war: Standardaufgaben lokal, online nur als klarer Sonderfall.
Aktuell entscheidet eine einfache Triggerliste in `llm.py` ueber Online-Routing.
2. `deep_research` ist faktisch deaktiviert.
In `tools/deep_research.py` steht `TOOLS = []`.
Der Handler existiert noch, aber das LLM sieht das Tool nicht und kann es nicht normal aufrufen.
3. Es gibt gewachsene Sonderlogik in `llm.py`.
Darin stecken u.a. Preis-/Einheitenregeln, Routing-Heuristiken und Bild-Sonderfaelle.
Das ist funktional entstanden, aber architektonisch nicht sauber getrennt.
4. Der aktuelle Zustand ist nicht sauber versioniert.
`homelab-ai-bot/llm.py` ist lokal geaendert, aber nicht committed.
Der laufende Zustand und der Git-Stand sind also aktuell nicht identisch.
5. Das Vision-Standardmodell ist derzeit `qwen3-vl:32b`.
Dieses Modell war auf der 3090 fuer Bot-Nutzung spuerbar zu langsam.
Das Routing kompensiert das aktuell durch Online-Ausnahmen, loest aber nicht die Grundarchitektur.
## Was weiterhin funktioniert
- Tool-Loader und Handler-System funktionieren grundsaetzlich.
- Die meisten Tools sind modellunabhaengige Python-Handler und bleiben nutzbar:
- `web_search`
- `memory_*`
- `get_feed_stats`
- Proxmox / Loki / Grafana / Prometheus / Mail / SaveTV / Seafile / Tailscale / PBS / WordPress
- Goldpreis-Test ueber `web_search` + `gpt-4o-mini` lieferte plausibles Ergebnis statt Gramm/Unze-Verwechslung.
## Was aktuell nicht als stabil gelten darf
- `deep_research`
- sauberes `local-first` Routing
- Preis-/Recherche-Routing als finale Architektur
- Bot-Verhalten bei weiteren Sonderfaellen ausserhalb des bisher getesteten Bereichs
## Eigentliches Zielbild
- Standardaufgaben lokal
- Bild-/OCR-/Scraper-Aufgaben lokal
- Online nur fuer klar definierte Ausnahmen:
- Preisfragen
- Web-Recherche
- Deep Research
- Routing zentral und explizit im Code, nicht ueber gewachsene Prompt-Sonderregeln
## Naechster sinnvoller Schritt
Kein weiterer Quick-Fix.
Stattdessen sauberer Umbau von `llm.py` in eine klare Routing-Architektur mit drei expliziten Pfaden:
1. lokaler Standardpfad
2. lokaler Vision-Pfad
3. Online-Recherchepfad