Live-test showed Grok 4.1 Fast inventing 'mcp_mychatarchive_search_brain'
when asked about Telegram chat history. Fix:
- Tool descriptions explicitly say 'TELEGRAM' and 'NICHT ChatGPT/Memory/RAG'
- SYSTEM_PROMPT_EXTRA lists all 4 exact tool names and forbids inventing
alternatives like 'mychatarchive' or 'search_brain'
- Forbids using rag_search/openmemory_search/web_search for Telegram-
related queries
- Demands honest 'no data' over hallucination
Grok 4.1 Fast was eskaliereing 'Stand zur G2010B-Vermietung?' to
perplexity/sonar instead of using chatlog_*. Strengthened
SYSTEM_PROMPT_EXTRA with explicit triggers (G2010B, D1603, ARAKAWA,
Concierge, Bnb, Kaution, Mieter) and a 'NO web search for this' rule.
Phase 2 of the chatlogger feature.
Multi-tenant:
- chatlogger-bot.service -> chatlogger-bot@.service (systemd template)
- /opt/chatlogger/<instance>.env per bot, all share /opt/chatlogger/chats.db
- existing bot migrated: chatlogger-bot@arakawa.service
- adding a second group bot is now: cp arakawa.env <name>.env, edit token+chats,
systemctl enable --now chatlogger-bot@<name>
Jarvis (hausmeister-bot) tool:
- homelab-ai-bot/tools/chatlog.py (autodiscovered by tool_loader.py)
- 4 tools: chatlog_list_chats, chatlog_recent, chatlog_search, chatlog_since
- Reads SQLite directly via sys.path += /opt/homelab-brain/chatlogger
- SYSTEM_PROMPT_EXTRA tells the LLM when to use these (Concierge, Airbnb,
Listing, 'aktueller Stand', 'wer hat zugesagt', 'muss ich reagieren').
Tested live: hausmeister-bot loads 48 tools (44 + 4 new), all chatlog
handlers callable, returns real messages from the @arakawa_concierge_bot
recording of -1003924901022.
Neue zentrale Moeglichkeit, ganze Proxmox-Hosts temporaer aus allen
Hausmeister-Alerts herauszunehmen, gesteuert ueber homelab.conf.
- homelab.conf: ALERT_SUPPRESS_HOSTS Variable (Komma-Liste)
initial gesetzt auf pve-ka-1,pve-ka-2,pve-ka-3 (Kambodscha
ohne Internet seit 2026-04-04)
- core/config.py: Helper get_suppressed_hosts + get_suppressed_container_names
(letztere mappt Host -> Container-Namen fuer Loki/Silence-Filter)
- tools/predict.py: Filter in _gather_prometheus, _gather_loki, _gather_proxmox
+ sichtbarer Hinweis 'Unterdrueckt: ...' im taeglichen Forecast-Report
- monitor.py: Filter in check_all + format_report (Container, panic,
error_rate, silence, service_restarts)
Beim naechsten Mal Kambodscha-Internet-Comeback: einfach die drei Eintraege
in ALERT_SUPPRESS_HOSTS entfernen und hausmeister-bot neu starten.
Query wird vor ES-Suche durch gpt-4o-mini in 4 DE/EN-Varianten umformuliert
(Synonyme, Fachbegriffe, Zahl-/Kosten-/Summenbegriffe). Dann Multi-Query-Merge
durch _merge_hits_from_queries. Fallback auf Single-Query bei API-Fehler oder
fehlendem Key. 1h-Cache, 8s-Timeout.
Loest ua. Kosten-/Preis-Fragen, die zuvor am Standardpfad gescheitert sind
(Beispiel: "was haben die wohnungen in kambodscha gekostet" findet jetzt
G2010B und D1603 in einem Rutsch).
ES-Index: neues Feld docnm_search (custom analyzer mit path_splitter,
__ und _ werden zu Leerzeichen). docnm_kwd bleibt als Keyword.
Hybrid-Suche nutzt jetzt docnm_search mit Boost 5.0 —
Arakawa/Wohnung/Kambodscha etc. finden direkt ueber den Dateinamen
ohne handverdrahtete Subqueries.
Closes#52
- _is_wide_recall_query: erkennt jetzt Wohnung+welche/alle, Kambodscha+Wohnung
- _WIDE_SUBQUERIES_IMMOBILIEN: Arakawa-Wohnungen, Mietvertraege, Kaufvertrag, Hard Title etc.
- handle_rag_search waehlt Subquery-Pool je nach Thema (Immo vs. Versicherung)
- wide_recall: bis 16 ES-Runden mit Sparten-/Gesellschafts-Queries, Merge
nach Dedup-Key, bis 25 distinct Treffer, groessere Snippets.
- Normale Suche: top_k bis 15, ES bis 150.
- Forciertes RAG: top_k 25, Tool-Payload 32k Zeichen.
- Hinweis: 100% Vollstaendigkeit haengt von Index/OCR ab.
- Forced rag_search used top_k=10 and tool content up to 12k chars (was 3k, cut off most hits).
- System instruction: enumerate each Sparte/doc type for same insurer, not only first hit.
- rag.py SYSTEM_PROMPT_EXTRA: same rule for multi-hit answers.
Bei Preisfragen validiert deep_research jetzt die Antwort auf:
- konkrete Preise mit Waehrung
- Delta in Prozent
- Preisvergleich damals/heute
- mindestens 3 konkrete Quellen-Links
Wenn die Qualitaet zu schwach ist:
1) automatischer Retry mit strikter Anfrage
2) falls weiter unzureichend: klare Fehlermeldung "keine belastbaren Preisdaten gefunden"
Open Deep Research (CT 121) als neues LLM-Tool.
- LangGraph API auf 10.10.10.121:2024
- SearXNG + OpenRouter als Backend
- Polling-basiert (2-10 Min pro Recherche)
- Report wird fuer Telegram gekuerzt