refactor(local-llm): generische Tool-Fehler-Eskalation statt per-Skill-Router-Code
Stefan-Punkt: der 'auf <Geraet>'-Router-Patch war ein per-Fall-Band-Aid, das
nicht skaliert (naechster Skill mit komplexer API → wieder patchen). Besser:
das LLM merkt es selbst.
- Router-Hardcoding zurueckgenommen (kein 'auf Geraet'→Claude mehr).
- GENERAL: im lokalen Tool-Loop → scheitert ein Tool-Call (Ergebnis beginnt mit
'FEHLER'), uebernimmt Claude. Gilt fuer JEDEN Skill, kein per-Fall-Wissen im
Router. Lokal probiert, bei Fehler eskaliert.
- skill_create-Anleitung: SEMANTISCH bauen — Skills bieten klare Operationen als
args (action/device_name), NICHT rohe {path,method,body}-Durchreichung. Das
args-Schema ist die 'Bedienungsanleitung', die das LLM sieht (die haben wir
also schon — sie muss nur semantisch sein). Was das LLM sonst raten muesste
(Endpunkte/IDs/Payload) gehoert INS Skill.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -67,11 +67,7 @@ _TOOL_HINTS = re.compile(
|
||||
r"skill|projekt|oauth|"
|
||||
r"licht|lampe|steckdose|rollade|heizung|"
|
||||
r"kalender|termin|"
|
||||
r"maild?|e-?mail|nachricht schreiben)\b|"
|
||||
# Geraete-gezieltes Spotify-Abspielen = komplexer Transfer-Flow (Geraete
|
||||
# abfragen -> Name->ID -> richtiger Endpoint). Das 8B fummelt das -> Claude.
|
||||
r"(abspiel|spielen|play|weiter|wechsel|übertrag|transfer).{0,15}\bauf\b|"
|
||||
r"\bauf\s+(android|handy|smartphone|desktop|duffy|firetv|tv|dem\s+\w+|mein)",
|
||||
r"maild?|e-?mail|nachricht schreiben)\b",
|
||||
re.IGNORECASE,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user