fix(brain): 15. seed_rule — Brain-Tools per XML-Tag, nicht als native Tool-Use
Beobachtung beim Hook-Deploy-Test (30.05.2026, 01:51-52): ARIA versucht
run_spotify zuerst als nativen Tool-Use → 'No such tool available'
weil claude-CLI nur seine eigenen Tools (Bash/Read/Write/etc.) kennt;
Brain-Tools sind als Prompt-Instruction injiziert.
Erst nach dem 'No such tool'-Fehler wechselt ARIA aufs XML-Tag-Format
<tool_call name="...">{...}</tool_call>, das der proxy parsed und ans
Brain weiterleitet. Dieser Lernzyklus pro Anfrage kostet ~30s.
Die Regel erklaert die Architektur (claude-CLI vs Proxy vs Brain) und
gibt das richtige Format vor — direkt XML-Tag, nicht native Tool-Use.
Beilaeufige Bestaetigung an Stefan: seed_rules.py ist System-Code, wird
bei jedem Brain-Lifespan-Start aufgespielt — frische DB nach Wipe wird
beim ersten Boot mit den 15 Regeln gesetzt, idempotent ueber
migration_key. Im Gegensatz zu brain-import/ (gitignored, manuelle
Migration via Diagnostic-Klick).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -388,7 +388,7 @@ Chat-Turn an die richtigen Patterns.
|
|||||||
|
|
||||||
### Skill-Regeln (seed_rules)
|
### Skill-Regeln (seed_rules)
|
||||||
|
|
||||||
`aria-brain/seed_rules.py` enthaelt 14 `type=rule, pinned=true,
|
`aria-brain/seed_rules.py` enthaelt 15 `type=rule, pinned=true,
|
||||||
source=seed`-Memories, die bei jedem Brain-Start idempotent in die
|
source=seed`-Memories, die bei jedem Brain-Start idempotent in die
|
||||||
Vector-DB geschrieben werden (`migration_key`-basiert). Sie tauchen in
|
Vector-DB geschrieben werden (`migration_key`-basiert). Sie tauchen in
|
||||||
jedem Chat-Turn im Hot-Memory-Block auf:
|
jedem Chat-Turn im Hot-Memory-Block auf:
|
||||||
|
|||||||
@@ -296,6 +296,40 @@ SEED_RULES: List[dict] = [
|
|||||||
"Brain-Resources: erst denken, sonst Brain-Tool nehmen."
|
"Brain-Resources: erst denken, sonst Brain-Tool nehmen."
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"migration_key": "seed/architecture/brain-tools-xml-tag",
|
||||||
|
"type": "rule",
|
||||||
|
"title": "Architektur: Brain-Tools per <tool_call>-XML-Tag, nicht als native Tool-Use",
|
||||||
|
"category": "architektur",
|
||||||
|
"content": (
|
||||||
|
"Brain-Tools (run_*, oauth_*, memory_*, trigger_*, skill_*, "
|
||||||
|
"flux_*) sind KEINE nativen claude-CLI-Tools wie Bash/Read/"
|
||||||
|
"Write. Sie sind ueber eine Prompt-Injection-Pipeline an "
|
||||||
|
"claude-max-api-proxy gekoppelt:\n"
|
||||||
|
"\n"
|
||||||
|
" - claude-CLI kennt nur Bash/Read/Write/Grep/Glob/etc. nativ\n"
|
||||||
|
" - Brain-Tools werden im System-Prompt als '# Verfuegbare "
|
||||||
|
"Tools'-Block mit ihrem Schema injiziert\n"
|
||||||
|
" - Der Proxy parsed <tool_call name=\"X\">{json}</tool_call>-"
|
||||||
|
"XML-Tags im Antwort-Text und konvertiert sie zu OpenAI "
|
||||||
|
"tool_call-Format das ans Brain zurueckgeht\n"
|
||||||
|
"\n"
|
||||||
|
"Konkret heisst das: Wenn Du `run_spotify` benutzen willst, "
|
||||||
|
"schreib es als TEXT in Deine Antwort:\n"
|
||||||
|
"\n"
|
||||||
|
" <tool_call name=\"run_spotify\">{\"path\":\"/v1/me/player\"}</tool_call>\n"
|
||||||
|
"\n"
|
||||||
|
"NICHT als nativen Tool-Use. Wenn Du es als nativen Tool-Use "
|
||||||
|
"versuchst, bekommst Du '<tool_use_error>No such tool "
|
||||||
|
"available: run_spotify</tool_use_error>' — claude-CLI hat das "
|
||||||
|
"Tool gar nicht im Schema, nur als Prompt-Beschreibung.\n"
|
||||||
|
"\n"
|
||||||
|
"Antipattern (Stefan beobachtete das am 30.05.2026): ARIA "
|
||||||
|
"versucht erst `run_spotify` nativ → 'No such tool' → "
|
||||||
|
"31 Sekunden verschwendet bis sie das XML-Tag-Format probiert. "
|
||||||
|
"Beim ersten Versuch direkt XML-Tag ergibt 3-5s statt 30s+."
|
||||||
|
),
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"migration_key": "seed/skill-rule/scaffold-reflex",
|
"migration_key": "seed/skill-rule/scaffold-reflex",
|
||||||
"type": "rule",
|
"type": "rule",
|
||||||
|
|||||||
Reference in New Issue
Block a user