fix(app+brain): leere Bubble bei Tool-Loop/Fehler beheben + Limit hoch
Symptom: ARIA laeuft ins Tool-Loop-Limit (host_agent-Exploration), postet die Meldung, aber die App zeigt eine LEERE Bubble. Ursache: stripSystemHints (App) entfernt fuehrende [..]-Bloecke (fuer Hinweise wie '[Kontext:..] Hallo'). Die Tool-Loop-/Fehler-Meldung ist KOMPLETT ein [..]-Block -> restlos gestrippt -> leer. Fixes: - App (ChatScreen): stripSystemHints zeigt das Original, wenn nach dem Strippen nichts uebrig bleibt -> Fehler-/Meta-Meldungen (auch '[Fehler: ...]') sind wieder sichtbar statt leer. - Brain: MAX_TOOL_ITERATIONS 8 -> 20 (env-tunebar) — 8 war zu knapp fuer echte agentische Arbeit (Host-Exploration); ARIA brach mittendrin ab. - Brain: Loop-Limit-Meldung ARIA-stimmig + handlungsleitend statt technischer Marker (liest sich natuerlich in der Bubble). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -185,7 +185,10 @@ function stripSystemHints(text: string): string {
|
||||
if (!m) break;
|
||||
out = out.slice(m[0].length);
|
||||
}
|
||||
return out;
|
||||
// Bestand die Nachricht NUR aus Klammer-Bloecken (z.B. "[Tool-Loop-Limit ...]"
|
||||
// oder "[Fehler: ...]"), waere sie jetzt leer → dann das ORIGINAL zeigen. Sonst
|
||||
// haette der User eine leere Bubble. Fehler-/Meta-Meldungen sollen sichtbar sein.
|
||||
return out.trim() ? out : text;
|
||||
}
|
||||
/** Sekunden → "M:SS" fuer die Sprachnachricht-Dauer. */
|
||||
function formatDur(sec: number): string {
|
||||
|
||||
+8
-2
@@ -2044,7 +2044,10 @@ class Agent:
|
||||
|
||||
# ── Hauptpfad: ein User-Turn → Tool-Loop → finaler Reply ──
|
||||
|
||||
MAX_TOOL_ITERATIONS = 8 # Schutz vor Endlos-Loops
|
||||
# Schutz vor Endlos-Loops, aber hoch genug fuer echte agentische Arbeit
|
||||
# (Host-Agent-Exploration, Multi-Datei-Tasks brauchen viele Tool-Runden).
|
||||
# 8 war zu knapp — ARIA brach mitten in laufender Arbeit ab. Env-tunebar.
|
||||
MAX_TOOL_ITERATIONS = int(os.getenv("MAX_TOOL_ITERATIONS", "20"))
|
||||
|
||||
def chat(self, user_message: str, source: str = "",
|
||||
project_id: Optional[str] = None,
|
||||
@@ -2343,7 +2346,10 @@ class Agent:
|
||||
break
|
||||
else:
|
||||
# Loop-Limit erreicht
|
||||
final_reply = "[Tool-Loop-Limit erreicht — ARIA hat zu viele Tool-Calls gemacht ohne fertig zu werden]"
|
||||
final_reply = (
|
||||
f"Ich hab die Aufgabe nach {self.MAX_TOOL_ITERATIONS} Arbeitsschritten "
|
||||
f"gestoppt, damit ich nicht endlos weiterlaufe — war aber noch mittendrin. "
|
||||
f"Sag mir, ob ich weitermachen oder es anders angehen soll.")
|
||||
logger.warning("Tool-Loop hit MAX_TOOL_ITERATIONS=%d", self.MAX_TOOL_ITERATIONS)
|
||||
|
||||
if not final_reply:
|
||||
|
||||
Reference in New Issue
Block a user