From 71b3fc5d313213ae494aeb40844ce0a78e2c911b Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 11 Jul 2026 12:00:35 +0200 Subject: [PATCH] perf(router): lokales Fenster auf letzte 8 Turns cappen (Speed bei langer History) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gemessen: lokaler Call mit 12-Turn-Fenster ~2,6s statt ~0,8s. Im Hauptchat (bis 50 Turns) wuerde volles Fenster das Prefill aufblaehen und den Speed-Vorteil auffressen. Lokales Tier ist fuer kurze Plauder-Turns — letzte 8 Turns reichen. B1a end-to-end verifiziert: plaudern→lokal (~0,8s warm), Tool/hart→Claude, localOnly erzwingt lokal; Config live gelesen, Default aus. Co-Authored-By: Claude Opus 4.8 --- aria-brain/agent.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/aria-brain/agent.py b/aria-brain/agent.py index 7d7dc13..57fb58c 100644 --- a/aria-brain/agent.py +++ b/aria-brain/agent.py @@ -1062,6 +1062,8 @@ class Agent: # /shared/config/local_llm.json (Default aus → alles Claude wie bisher). # Rueckgabe: fertige Antwort (str) wenn lokal erledigt, sonst None → Claude. + _LOCAL_WINDOW_TURNS = 8 # nur die letzten N Turns ans lokale Modell (Speed) + def _try_local_fast_lane(self, user_message: str, active_project_id: str) -> Optional[str]: cfg = router_mod.load_config() @@ -1069,7 +1071,10 @@ class Agent: return None sys_prompt = router_mod.build_local_system_prompt(IDENTITY_ANCHOR) - window = self.conversation.window(project_id=active_project_id) + # Nur die letzten paar Turns ans lokale Modell — es ist fuer kurze + # Plauder-Turns da. Volles Fenster (bis 50) wuerde das Prefill aufblaehen + # und den Speed-Vorteil auffressen (gemessen: 12 Turns → ~2,6s statt ~0,8s). + window = self.conversation.window(project_id=active_project_id)[-self._LOCAL_WINDOW_TURNS:] messages = [{"role": "system", "content": sys_prompt}] messages += [{"role": t.role, "content": t.content} for t in window]