From 5b20bc17433da183f6d3b15b8ac381af436d783e Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 11 Jul 2026 13:09:57 +0200 Subject: [PATCH] fix(local-llm): lokale Antwort nicht in wickeln (Anzeige war leer) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Qwen imitierte aus dem Kontext den -TTS-Block, packte aber die GANZE Antwort hinein -> Display strippt -> leere Bubble (nur TTS klang richtig). Fix: (1) Local-Prompt verbietet /[FILE:]//Markup explizit — nur Plain-Text (wird angezeigt UND vorgelesen). (2) Sicherheitsnetz: Voice-Tags aus lokalen Antworten strippen, falls das 8B es doch tut. Co-Authored-By: Claude Opus 4.8 --- aria-brain/agent.py | 6 ++++++ aria-brain/router.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/aria-brain/agent.py b/aria-brain/agent.py index 1789413..14a64e2 100644 --- a/aria-brain/agent.py +++ b/aria-brain/agent.py @@ -1199,6 +1199,12 @@ class Agent: return None final = final or "[Lokales LLM: Tool-Loop-Limit erreicht.]" + # Sicherheitsnetz: das lokale Modell wickelt seine Antwort manchmal + # faelschlich komplett in ... (aus dem Kontext imitiert). + # Das wuerde die Anzeige leeren (Display strippt ). Tags raus — + # der lokale Reply ist kurz, Plain-Text dient Anzeige UND TTS. + final = re.sub(r"", "", final).strip() + if local_only: final = final.replace(router_mod.ESCALATE_MARKER, "").strip() if not final: diff --git a/aria-brain/router.py b/aria-brain/router.py index 2b22287..c77dca4 100644 --- a/aria-brain/router.py +++ b/aria-brain/router.py @@ -124,6 +124,10 @@ def build_local_system_prompt(identity_anchor: str, has_tools: bool = False, "## SCHNELL-MODUS", "Du laeufst gerade als schnelles lokales Modell fuer Alltags-Konversation " "und einfache Aufgaben. Antworte knapp, freundlich, auf Deutsch, als ARIA.", + "WICHTIG zur Ausgabe: Antworte in ganz NORMALEM Text. Verwende KEINE " + "``-Tags, kein `[FILE:]`, kein ``, kein HTML/Markup — " + "nur ein oder zwei natuerliche Saetze. (Der Text wird direkt angezeigt " + "UND vorgelesen.)", ] if has_tools: parts += [