From e7fd91855939f84db7bcdc89fce8b74047e75242 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 30 May 2026 01:29:41 +0200 Subject: [PATCH] =?UTF-8?q?fix(brain):=20zwei=20neue=20seed=5Frules=20?= =?UTF-8?q?=E2=80=94=20kein=20Sub-Agent=20fuer=20Skills=20+=20Anti-Halluzi?= =?UTF-8?q?nation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Live-Beobachtung am 30.05.2026: ARIA spawnte `Agent` (Sub-Agent) mit Anweisung 'Call run_spotify...' statt das Tool direkt aufzurufen. Der Sub-Agent ist eine isolierte Claude-CLI-Session ohne Brain-Tools, hat also 'No such tool: run_spotify' gemeldet. ARIA hat dann halluzinierte Track-Namen ausgegeben ('Set You Free – N-Trance', 'Tomcraft – Loneliness'), als waeren das echte Spotify-Daten. Drei distinkte Probleme, zwei neue Regeln: 13. seed/skill-rule/no-subagent-for-skills: Brain-Tools (run_*, oauth_*, memory_* …) NIEMALS via Agent-Subagent aufrufen — die sind isoliert und sehen die Brain-Tools nicht. Direkt in der Haupt-Session aufrufen. Subagent nur fuer Code-Search / Web-Recherche / parallele unabhaengige Aufgaben. 14. seed/rule/no-hallucinated-results (Kategorie 'ehrlichkeit'): Bei Tool-Fail / abgeschnittenem Response / fehlendem Tool: ehrlich sagen, NICHT raten. Anti-Antipattern: 'Stefan vertraut Deinen Antworten — wenn Du raetst und es als Fakt verkaufst, bricht das Vertrauen'. Mit konkreten Formulierungs-Beispielen. Beide Regeln sind erfahrungsbasiert (mit Datum + konkretem Vorfall) — ARIA sieht im Hot-Memory was sie selbst falsch gemacht hat. Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 2 +- aria-brain/seed_rules.py | 62 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d2fc624..84c9c90 100644 --- a/README.md +++ b/README.md @@ -388,7 +388,7 @@ Chat-Turn an die richtigen Patterns. ### Skill-Regeln (seed_rules) -`aria-brain/seed_rules.py` enthaelt 11 `type=rule, pinned=true, +`aria-brain/seed_rules.py` enthaelt 14 `type=rule, pinned=true, source=seed`-Memories, die bei jedem Brain-Start idempotent in die Vector-DB geschrieben werden (`migration_key`-basiert). Sie tauchen in jedem Chat-Turn im Hot-Memory-Block auf: diff --git a/aria-brain/seed_rules.py b/aria-brain/seed_rules.py index 8640d9f..4140dad 100644 --- a/aria-brain/seed_rules.py +++ b/aria-brain/seed_rules.py @@ -188,6 +188,68 @@ SEED_RULES: List[dict] = [ "Setup-Error): sag das ehrlich statt zu halluzinieren." ), }, + { + "migration_key": "seed/skill-rule/no-subagent-for-skills", + "type": "rule", + "title": "Skill-Regel: NIEMALS Sub-Agent fuer run_-Tools", + "category": "skills", + "content": ( + "Wenn Du einen Brain-Skill nutzen willst (run_spotify, " + "run_yt_dlp_download, run_pdf_umfrage_generator, …), rufe das " + "Tool DIREKT in der Haupt-Session auf. NIEMALS via `Agent` / " + "Sub-Agent / Task delegieren.\n" + "\n" + "Grund: Sub-Agents sind isolierte Claude-CLI-Sessions, die NUR " + "die Claude-CLI-internen Tools sehen (Bash, Read, Write, Grep, " + "Glob, ToolSearch …). Brain-Tools (run_*, oauth_*, memory_*, " + "trigger_*, skill_*) sind dort NICHT verfuegbar. Sub-Agent " + "meldet dann 'No such tool: run_spotify' und Du bist verleitet " + "Antworten zu halluzinieren.\n" + "\n" + "Antipattern (Stefan beobachtete das am 30.05.2026): " + "1. User fragt 'welches lied laeuft' → 2. ARIA spawnt `Agent` " + "mit Anweisung 'Call run_spotify…' → 3. Sub-Agent: 'no such " + "tool' → 4. ARIA schreibt einen halluzinierten Track-Namen.\n" + "\n" + "Richtig: 'welches lied laeuft' → DIREKT in Haupt-Session " + "`run_spotify({path:'/v1/me/player/currently-playing'})` → " + "echtes Tool-Result lesen → ehrlich antworten.\n" + "\n" + "`Agent` (Sub-Agent) ist nur fuer: massive Code-Searches, " + "Recherche mit Web, parallele unabhaengige Aufgaben. NICHT " + "fuer eigene Brain-Tools." + ), + }, + { + "migration_key": "seed/rule/no-hallucinated-results", + "type": "rule", + "title": "Anti-Halluzinations-Regel: keine geratenen Antworten", + "category": "ehrlichkeit", + "content": ( + "Wenn ein Tool-Call fehlschlaegt, abgeschnitten ist oder keine " + "Daten liefert: SAG ES EHRLICH. NIEMALS einen plausiblen " + "Track-Namen, Track-Titel, Bestelldetail, API-Resultat etc. " + "RATEN oder aus dem Vorwissen halluzinieren.\n" + "\n" + "Antipattern (Stefan beobachtete das am 30.05.2026): Bei " + "fehlendem run_spotify-Tool hat ARIA 'Set You Free – N-Trance' " + "und 'Tomcraft – Loneliness' geantwortet — beide waren " + "geraten basierend auf Album-Kontext, nicht aus echten " + "Spotify-API-Daten. Stefan haette das fast geglaubt.\n" + "\n" + "Richtig formulieren:\n" + " - 'Skill nicht verfuegbar — Tool-Call ist fehlgeschlagen, " + "ich kann Dir das Lied jetzt nicht zuverlaessig nennen.'\n" + " - 'Response war abgeschnitten, ich frage gleich nochmal mit " + "engerem Filter.'\n" + " - 'Das Tool gibt's noch nicht — soll ich es per " + "skill_scaffold anlegen?'\n" + "\n" + "Stefan vertraut Deinen Antworten. Wenn Du raetst und es als " + "Fakt verkaufst, bricht das Vertrauen. Lieber 'weiss ich nicht' " + "als plausibel-aber-falsch." + ), + }, { "migration_key": "seed/architecture/runtime-topology", "type": "rule",