feat(fast-paths): Universeller Fast-Path-Layer -- Steuerbefehle ohne LLM-Roundtrip

Motivation: selbst mit allen bisherigen Proxy-Fixes braucht jede Nachricht
mindestens einen vollen LLM-Turn (mehrere Sekunden). Fuer "pause" oder
"naechstes Lied" unnoetig langsam -- Alexa & Co. loesen sowas ohne
generatives Modell per Intent-Klassifikation in Millisekunden.

Neues Hermes-Plugin fast-paths/, haengt am pre_gateway_dispatch-Hook
(feuert bei JEDER eingehenden Nachricht auf JEDER Plattform, noch VOR
Auth/Pairing und Agent-Dispatch -- gefunden im echten Hermes-Sourcecode,
hermes_cli/plugins.py + gateway/run.py). Matcht der normalisierte Text
gegen eine Regex, wird der Handler direkt ausgefuehrt und das LLM komplett
uebersprungen. Ein File pro Skill unter patterns/ (analog zu ARIAs eigenen
fast_patterns), erster Skill: patterns/spotify.py (pause/next/previous/
volume/current, plus "spiel Playlist X auf Geraet Y ab" per Fuzzy-Match
ohne LLM fuer den Freitext-Namen).

Sicherheit: pre_gateway_dispatch feuert VOR Hermes' eigener Autorisierung
-- der Loader prueft deshalb explizit gateway._is_user_authorized() vor
jedem Pattern-Treffer, sonst koennte ein nicht autorisierter Absender per
Fast-Path an Hermes vorbei Aktionen ausloesen. Handler koennen sich zudem
bewusst per Rueckgabe None zurueckziehen (z.B. mehrdeutiger Playlist-Name)
und faellen dann normal ans LLM zurueck statt zu raten.

Lokal verifiziert (Testharness auf aria-wohnung, Hermes' eigenen
_load_directory_module-Lademechanismus nachgebaut, gemockter SpotifyClient):
Matching, Sicherheits-Check bei nicht autorisiertem Sender, Fuzzy-Match
fuer Playlist+Geraet, und mehrere Regression-Faelle gegen False-Positives
bei laengeren/anderen Saetzen -- alle Faelle bestehen.

docker-compose.yml: neuer verschachtelter Read-Only-Mount
./fast-paths -> /opt/data/plugins/fast-paths (User-Plugin-Pfad unter
$HERMES_HOME). Muss zusaetzlich einmalig in config.yaml unter
plugins.enabled aktiviert werden (Hermes-Plugins sind Opt-in) -- siehe
README.md und fast-paths/README.md.
This commit is contained in:
ARIA
2026-07-20 16:17:29 +00:00
parent 128c11b49d
commit 9ea72886dd
8 changed files with 735 additions and 0 deletions
+26
View File
@@ -320,6 +320,32 @@ oben), nicht an Spotify selbst — dann `docker logs hermes-proxy` waehrend
der Reproduktion pruefen. Gleiches Nutzungsmuster wie
`scripts/spotify_manual_auth.py` (Login-Skript weiter oben).
## Fast-Paths (Steuerbefehle ohne LLM-Roundtrip)
Selbst mit allen Fixes oben braucht jede Nachricht mindestens einen vollen
LLM-Turn (mehrere Sekunden) — fuer "pause" oder "naechstes Lied" unnoetig
langsam. `fast-paths/` ist ein eigenes, universelles Plugin (ein File pro
Skill, siehe `fast-paths/README.md`), das einfache Steuerbefehle per Regex
VOR dem LLM-Aufruf abfaengt und direkt ausfuehrt — analog zu ARIAs eigenen
`fast_patterns`. Aktuell drin: `patterns/spotify.py`
(pause/weiter/next/previous/lauter/leiser/Lautstaerke/aktueller Titel, plus
"spiel Playlist X auf Geraet Y ab" per Fuzzy-Match ohne LLM).
Einmalig aktivieren (Plugins sind bei Hermes Opt-in) — in
`hermes-data/agent-home/config.yaml`:
```yaml
plugins:
enabled:
- fast-paths
```
Dann:
```bash
git pull
docker-compose up -d --build hermes-agent
```
Volle Details, Sicherheitsmodell (Autorisierungspruefung VOR jedem
Fast-Path-Treffer!) und Anleitung fuer neue Skills: `fast-paths/README.md`.
## Mobiler Client (Android)?
Zwei GRUNDVERSCHIEDENE Richtungen, nicht verwechseln: