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:
2026-09-19 11:35:35 +02:00
co-authored by Claude Opus 4.8
parent 042fd63d33
commit f1c042c60a
2 changed files with 26 additions and 7 deletions
+11 -6
View File
@@ -1184,9 +1184,11 @@ META_TOOLS = [
"description": (
"Zeigt welche ARIA-Satelliten (Aussenposten-Container in FREMDEN Netzen, "
"z.B. 'Buero') gerade ONLINE sind und was sie koennen (discover / "
"dial.launch / wol / http). Nutze das ZUERST, wenn Stefan etwas 'im "
"Buero' / 'im Netz X' / 'auf dem <Geraet> dort' machen will — so weisst "
"Du welche Netze erreichbar sind."
"dial.launch / wol / http). Nutze das ZUERST, wenn es um ein Geraet/einen "
"Host in einem Netz geht, auf dem Du nicht direkt sitzt (Zuhause, Buero, "
"jede private IP wie 192.168.x) — z.B. Drucker-Fuellstand, NAS, Smart-TV. "
"Rufe es IMMER auf, BEVOR Du sagst ein Geraet sei nicht erreichbar — ein "
"Satellit im Zielnetz ist der Weg hinein."
),
"parameters": {"type": "object", "properties": {}},
},
@@ -1718,9 +1720,12 @@ class Agent:
return False
# Kuratierte Tool-Auswahl fuers lokale Tier (B1b): web_search (local-only,
# SearXNG) + memory_search/trigger_timer (aus META_TOOLS) + Spotify-Skill.
# Bewusst klein (Speed + Sicherheit); alles andere → Claude.
_LOCAL_TOOL_NAMES = {"memory_search", "trigger_timer"}
# SearXNG) + memory_search/trigger_timer (aus META_TOOLS) + Spotify-Skill +
# die Satelliten-Tools (Augen/Haende in fremden Netzen — auch das lokale Tier
# muss ein Geraet im Heim-/Buero-Netz erreichen koennen, statt zu fabulieren).
# Sonst bewusst klein (Speed + Sicherheit); alles andere → Claude.
_LOCAL_TOOL_NAMES = {"memory_search", "trigger_timer",
"satellite_list", "satellite_devices", "satellite_command"}
def _build_local_tools(self) -> list:
tools = [WEB_SEARCH_TOOL]