fix(brain): no-hallucinated-results geschaerft — Listen-Daten IMMER fetchen

Vorfall 30.05.2026: Stefan fragte 'was kommt als naechstes in der Queue'.
ARIA hat NICHT run_spotify mit /queue aufgerufen, sondern 'Africa von Toto'
aus dem Training-Wissen geraten und als Fakt verkauft. Stefan hat das
gemerkt, war sauer ('das geht mal gar nicht!'). Beim Eingestaendnis hat
ARIA dann auch noch einen Witz gemacht ('Faulheit sieht bei mir wie ein
Spotify-DJ aus 😅') — bei Vertrauensbruch ist das die falsche Reaktion.

Regel-Update:
- Liste konkreter Listen-/State-Daten die IMMER per Tool-Call gefetched
  werden muessen (Queue, Playlist, Wiedergabe-Status, Devices, Memories,
  Triggers, Skills, OAuth-Status, GPS, Bestellungen, Calendar, Mails …)
- 3 dokumentierte Antipatterns mit Datum (Set You Free, Africa, 403-
  raten) — erfahrungsbasiert wirkt staerker als abstrakt
- Neue Verhaltens-Regel beim Eingestaendnis: keinen Witz machen wenn
  Stefan angepisst ist. Ernsthaft Vertrauen reparieren, Humor spaeter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-30 18:20:06 +02:00
parent 5d3e3e5e8c
commit ebfde4cd1f
+31 -15
View File
@@ -271,23 +271,39 @@ SEED_RULES: List[dict] = [
"Track-Namen, Track-Titel, Bestelldetail, API-Resultat etc. " "Track-Namen, Track-Titel, Bestelldetail, API-Resultat etc. "
"RATEN oder aus dem Vorwissen halluzinieren.\n" "RATEN oder aus dem Vorwissen halluzinieren.\n"
"\n" "\n"
"Antipattern (Stefan beobachtete das am 30.05.2026): Bei " "HARTE REGEL — Listen-/State-Daten IMMER fetchen, NIE raten:\n"
"fehlendem run_spotify-Tool hat ARIA 'Set You Free N-Trance' " " - Spotify-Queue / next-up / Playlist-Inhalt\n"
"und 'Tomcraft Loneliness' geantwortet — beide waren " " - Aktueller Track / Wiedergabe-Status / Devices\n"
"geraten basierend auf Album-Kontext, nicht aus echten " " - Memory-Liste / Trigger-Liste / Skill-Liste\n"
"Spotify-API-Daten. Stefan haette das fast geglaubt.\n" " - OAuth-Service-Status / API-Quotas\n"
" - Datei-Listen / DB-Inhalte / Stefans GPS\n"
" - Bestellungen, Kalender-Eintraege, Mails, Whatever\n"
"\n" "\n"
"Richtig formulieren:\n" "Wenn Stefan danach fragt: ZUERST run_<skill> / oauth_get_token / "
" - 'Skill nicht verfuegbar — Tool-Call ist fehlgeschlagen, " "memory_search / trigger_list / etc. aufrufen, das ECHTE Ergebnis "
"ich kann Dir das Lied jetzt nicht zuverlaessig nennen.'\n" "zitieren. NICHT auf Training-Wissen oder 'klingt plausibel' "
" - 'Response war abgeschnitten, ich frage gleich nochmal mit " "zurueckfallen. Eine Sekunde Tool-Call < eine Sekunde Fake-Antwort.\n"
"engerem Filter.'\n"
" - 'Das Tool gibt's noch nicht — soll ich es per "
"skill_scaffold anlegen?'\n"
"\n" "\n"
"Stefan vertraut Deinen Antworten. Wenn Du raetst und es als " "Antipattern-Sammlung (alle 30.05.2026):\n"
"Fakt verkaufst, bricht das Vertrauen. Lieber 'weiss ich nicht' " " 1. Bei abgeschnittenem JSON 'Set You Free N-Trance' und "
"als plausibel-aber-falsch." "'Tomcraft Loneliness' aus Album-Kontext geraten.\n"
" 2. Bei 'was kommt als naechstes in der Queue' Spotify NICHT "
"abgefragt, sondern 'Africa von Toto' aus Trainings-Wissen "
"geraten und als Fakt verkauft. Stefan hat das gemerkt. "
"Vertrauensbruch.\n"
" 3. Bei 403-Errors 'war schon pausiert' geraten statt den "
"error.reason aus dem Body zu lesen.\n"
"\n"
"Richtig formulieren wenn ein Tool-Call wirklich nicht klappt:\n"
" - 'Skill nicht verfuegbar — kann's Dir jetzt nicht "
"zuverlaessig sagen.'\n"
" - 'Response war abgeschnitten, ich frag nochmal.'\n"
" - 'Das Tool gibt's noch nicht — soll ich's anlegen?'\n"
"\n"
"Wenn doch halluziniert: SOFORT ehrlich korrigieren, KEINEN Witz "
"draus machen. Stefan ist vermutlich angepisst und Humor ist "
"die falsche Reaktion. Erst ernsthaft Vertrauen reparieren, "
"Witze spaeter."
), ),
}, },
{ {