fix(satellite): ARIA nutzt Satelliten fuer Geraete in fremden Netzen — statt zu fabulieren
Symptom: Frage nach dem Patronenstand des Heim-Druckers -> ARIA antwortet "da komm ich nicht ran", obwohl im Heimnetz ein Satellit online ist, der den Drucker findet UND http.get kann. Sie zieht Drucker-Fakten aus dem Gedaechtnis und gibt auf, ohne den Satelliten zu nutzen. Ursachen + Fixes: - Claude-Pfad: die Seed-Regel triggerte nur auf Formulierungen wie "im Buero"/ "im Netz X". Eine schlichte Geraetefrage (Patronenstand) griff sie nicht. -> Regel umformuliert: IMMER wenn ein Geraet/Host in einem Netz liegt, auf dem ARIA nicht direkt sitzt (Zuhause/Buero/private IP), ZUERST satellite_list pruefen; NIEMALS "erreiche ich nicht" sagen, bevor satellite_list lief. Drucker-http.get-Beispiel ergaenzt. - satellite_list-Tool-Beschreibung als dauerhaften Anker verstaerkt (gilt auch, wenn ein Seed mal driftet). - Lokales Tier hatte gar keine Satelliten-Tools (_LOCAL_TOOL_NAMES) -> konnte strukturell kein Geraet im fremden Netz erreichen und fabulierte. satellite_ list/devices/command ergaenzt, damit auch das lokale Qwen Satelliten nutzt. Greift beim naechsten Brain-Neustart (seed_rules.apply im Lifespan, idempotent per migration_key). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -475,13 +475,27 @@ SEED_RULES: List[dict] = [
|
||||
"zeigt UND steuerbar macht. So erreichst Du Netze, in denen der Haupt-Stack "
|
||||
"NICHT steht.\n"
|
||||
"\n"
|
||||
"Wenn Stefan etwas 'im Buero' / 'im Netz X' / 'auf dem <Geraet> dort' will:\n"
|
||||
"WICHTIG — nicht nur bei 'im Buero'/'im Netz X': IMMER wenn eine Anfrage ein "
|
||||
"GERAET oder einen HOST betrifft, das/der in einem Netz lebt, auf dem Du NICHT "
|
||||
"direkt sitzt (Stefans Zuhause, Buero, Werkstatt, irgendein LAN mit privater "
|
||||
"IP wie 192.168.x/10.x) — z.B. Drucker-Fuellstand, NAS, Smart-TV, ein Host per "
|
||||
"IP — dann pruefe ZUERST `satellite_list`, ob ein Satellit dieses Netz abdeckt. "
|
||||
"Sage NIEMALS 'da komm ich nicht ran' / 'bin nicht im Netz', BEVOR Du "
|
||||
"`satellite_list` aufgerufen hast — ein Satellit im Zielnetz ist genau der Weg "
|
||||
"hinein. Nur wenn wirklich keiner online ist, ist 'erreiche ich nicht' korrekt.\n"
|
||||
"\n"
|
||||
"Ablauf:\n"
|
||||
" 1. `satellite_list` — welche Satelliten/Netze sind online + was koennen sie.\n"
|
||||
" 2. `satellite_devices(satellite='Buero')` — welche Geraete gibt es dort "
|
||||
"(Fire TV, Chromecast, Smart-TVs, Drucker, NAS ...). Nutze es um das "
|
||||
"gemeinte Geraet zu finden, BEVOR Du steuerst.\n"
|
||||
" 3. `satellite_command(...)` — Aktion ausfuehren.\n"
|
||||
"\n"
|
||||
"Beispiel 'Patronenstand vom Drucker zuhause': satellite_list -> Satellit im "
|
||||
"Heimnetz online? -> satellite_command(satellite='<Heim>', action='http.get', "
|
||||
"params={'url':'http://<drucker-ip>/general/status.html'}) -> Fuellstaende "
|
||||
"(BK/C/M/Y) aus dem HTML vorlesen. NICHT aus dem Gedaechtnis raten.\n"
|
||||
"\n"
|
||||
"Beispiel 'spiel YouTube-Video auf dem Buero-Stick':\n"
|
||||
" satellite_command(satellite='Buero', device='Fire TV', "
|
||||
"action='dial.launch', params={'app':'YouTube','v':'<videoId>'})\n"
|
||||
|
||||
Reference in New Issue
Block a user