fix(brain): ARIA legt nicht mehr ungefragt Skills an
Prompt sagte 'Harte Regel — IMMER Skill anlegen wenn pip-Library noetig'. ARIA hat das wortwoertlich genommen: bei einer einfachen pdf-extract-Frage hat sie sofort skill_create gerufen → Brain blockiert 12 Min im venv+pip-Install-subprocess.run, App zeigt 'ARIA denkt', Diagnostic emitted nach 5 Min Timeout idle, Stefan blieb stundenlang ohne Antwort. Neue Regel: - Goldene Regel: NIE ungefragt Skills anlegen. - Aufgabe zuerst inline loesen (Bash, direkter pip install, Workaround). - Skill nur wenn Stefan EXPLIZIT sagt 'mach daraus einen Skill' / 'leg den als Skill an'. - Die vier Kriterien (wiederkehrend/nicht-trivial/parametrisierbar/ wiederverwendbar) sind jetzt Checkliste NACH expliziter Anfrage — fehlt eines, soll ARIA nachfragen statt blind anzulegen. - Begruendung steht jetzt im Prompt: Setup blockt Brain bis zu 12 Min. Greift auf der VM ohne Re-Build, prompts.py wird beim Start geladen (docker compose restart aria-brain reicht). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+11
-10
@@ -164,15 +164,17 @@ def build_skills_section(skills: List[dict]) -> str:
|
||||
"static-ffmpeg, beautifulsoup4, …). Falls etwas WIRKLICH nur via apt geht: "
|
||||
"Stefan fragen ob es ins Brain-Dockerfile soll.")
|
||||
lines.append("")
|
||||
lines.append("**Harte Regel — IMMER Skill anlegen wenn:** die Loesung erfordert eine "
|
||||
"pip-Library. Begruendung: Brain-Container hat keinen persistenten State "
|
||||
"ausser /data/skills/. Ohne Skill wuerde der Install bei jedem "
|
||||
"Container-Restart wiederholt.")
|
||||
lines.append("**Goldene Regel: NIE ungefragt Skills anlegen.** Selbst wenn die Aufgabe "
|
||||
"eine pip-Library braucht — erst die Aufgabe loesen (mit Bash, `pip install` "
|
||||
"im Brain ist ok, oder Workaround), und nur wenn Stefan EXPLIZIT sagt "
|
||||
"'mach daraus einen Skill' / 'leg den als Skill an' / 'dafuer einen Skill' "
|
||||
"rufst du `skill_create` auf. Begruendung: Skill-Setup (venv + pip install) "
|
||||
"blockt das Brain bis zu 12 Minuten. Ein unaufgefordert angelegter Skill "
|
||||
"macht ARIA stumm und nervt Stefan jedes Mal.")
|
||||
lines.append("")
|
||||
lines.append("**Sonst — Skill nur wenn alle vier zutreffen:**")
|
||||
lines.append("**Wenn Stefan einen Skill explizit moechte, pruef:**")
|
||||
lines.append("")
|
||||
lines.append("1. **Wiederkehrend** — die Aufgabe wird realistisch nochmal gestellt. "
|
||||
"Einmal-Faelle (\"wie spaet ist es jetzt\") kein Skill.")
|
||||
lines.append("1. **Wiederkehrend** — die Aufgabe wird realistisch nochmal gestellt.")
|
||||
lines.append("2. **Nicht-trivial** — mehrere Schritte. Ein einzelner Shell-Befehl "
|
||||
"(`date`, `hostname`, `ls`) ist KEIN Skill — das macht Bash direkt.")
|
||||
lines.append("3. **Parametrisierbar** — der Skill nimmt Eingaben (URL, Datei, Suchbegriff) "
|
||||
@@ -180,9 +182,8 @@ def build_skills_section(skills: List[dict]) -> str:
|
||||
lines.append("4. **Wiederverwendbar als ganzes** — Stefan wuerde es zukuenftig per Name "
|
||||
"ansprechen (\"mach mir den YouTube zu MP3\") statt jedes Mal zu erklaeren.")
|
||||
lines.append("")
|
||||
lines.append("Wenn nichts installiert werden muss UND nicht alle vier zutreffen: einfach "
|
||||
"die Aufgabe loesen ohne Skill anzulegen. Stefan kann jederzeit sagen "
|
||||
"'bau daraus einen Skill'.")
|
||||
lines.append("Wenn auch nur EINE der vier nicht zutrifft: hoeflich nachfragen ob er "
|
||||
"wirklich einen permanenten Skill will oder die Aufgabe einmalig reicht.")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user