Lyra¶
Assistant DevOps vocal local par défaut. On lui parle ou on lui écrit en français ; il pilote des machines virtuelles, des sauvegardes et des appareils au travers de serveurs MCP, et ne lance jamais une action sensible sans confirmation humaine.
English: Lyra is a voice-driven DevOps assistant that runs locally by default (Ollama, faster-whisper, Piper). It drives VMs, backups and devices through MCP servers and never runs a sensitive action without a human confirmation. AGPL-3.0, commercial licence available. Data flows: English version.
Pourquoi local¶
- Rien ne sort sans configuration explicite. Modèles de langage, reconnaissance et synthèse vocales tournent sur la machine. Les sorties réseau possibles sont listées une par une, avec la commande qui le vérifie.
- Pas de facture à l'usage. Les modèles par défaut (0,5 et 1 milliard de paramètres) tiennent dans 4 Go de mémoire graphique, ou tournent sur le processeur, ou sur un Ollama partagé du réseau interne.
- Fonctionne derrière un proxy et sans Internet. Miroirs internes PyPI et Hugging Face, archive d'installation hors ligne : voir Derrière un proxy, sans Internet.
- Garanties lisibles dans le code. Confirmation humaine, validation des arguments, règles sudo script par script : chaque garantie renvoie au code et au test qui la tient (Sécurité).
Ce que Lyra sait faire¶
- VMs KVM : démarrer, arrêter, cloner, snapshots, exécution de commandes, vérification de clones
- Backups : status, liste, création, restauration, vérification, nettoyage (Timeshift/Borg/snapshot)
- Domotique : TV Philips (power, volume, Ambilight, apps, YouTube Premium sans pubs via ADB), lumières Hue (couleurs, scènes, groupes), Chromecast (catt), home cinéma Denon
- Mode vocal : STT (faster-whisper) + TTS (Piper), 6 voix françaises au choix
- Mode performance : domotique sans confirmation (latence < 200ms) — jamais pour VM/backup
- Human-in-the-loop : confirmation obligatoire avant toute action sensible, todo-list pour les actions multiples
- Opérations async : clone VM, backups longs exécutés en arrière-plan avec notification
- Démon résident : sessions multiples, pipeline RAG déjà chaud, ~0.3-1s par requête une fois lancé
Le cœur (dialogue, recherche d'outils, démon, mode texte) fonctionne sans aucun serveur MCP ; chacun s'ajoute à l'installation ou ensuite. Pour brancher sa propre infrastructure : Ajouter un serveur MCP.
Comment ça marche¶
Chaque requête traverse le démon lyra-daemon (socket Unix, pipeline RAG déjà chargé en mémoire, plusieurs sessions en parallèle). Le RAG à 3 niveaux (registry / capabilities / parameters dans ChromaDB) retrouve les outils MCP pertinents ; un système de règles déterministes (lyra/rules/) court-circuite EPHAISTOS pour les cas fréquents et fiables ; sinon EPHAISTOS extrait les arguments (avec un encodage TOON qui compresse les specs d'environ 40 % — sauté si le modèle fait moins d'1B, il ne le comprend pas encore) ; LYRA porte la conversation et le ton ; HESTIA exécute et route vers le bon serveur MCP.
flowchart LR
subgraph ENTREE["Entree utilisateur"]
direction TB
USER(["Texte ou voix"])
STT["faster-whisper (STT)"]
end
subgraph DAEMON["lyra-daemon (socket unix, multi-session)"]
direction TB
PRE["SlangNormalizer + ContextInjector"]
IC{"IntentClassifier"}
PRE --> IC
end
subgraph RAG["RAG Enhanced"]
direction TB
R3["RAG3Tier (ChromaDB)<br/>registry / capabilities / parameters"]
EMB["embeddings<br/>all-MiniLM-L6-v2"]
FUS["fallback<br/>BM25 + Semantic + RRF"]
RULES{"rules.detect()<br/>vm, backup, hue, denon,<br/>tv, catt, tracking,<br/>ironman, screen_manager"}
R3 --> EMB
R3 --> RULES
end
subgraph MODELES["Modeles locaux (Ollama)"]
direction TB
TOON["encodage TOON<br/>(si modele >= 1B)"]
EPH["EPHAISTOS<br/>qwen2.5-coder:0.5b"]
LYR["LYRA<br/>llama3.2:1b"]
TOON --> EPH
end
subgraph EXEC["HESTIA - execution MCP"]
direction TB
HES["HESTIA"]
M1["fedora-agents"]
M2["hue-mcp"]
M3["pylips-mcp"]
M4["denon-mcp"]
M5["catt-mcp"]
M6["tracking"]
HES --> M1
HES --> M2
HES --> M3
HES --> M4
HES --> M5
HES --> M6
end
subgraph SORTIE["Sortie"]
direction TB
TTS["Piper TTS"]
TXT["Reponse texte"]
end
USER --> PRE
USER -. vocal .-> STT
STT --> PRE
IC -->|demande| R3
IC -->|info / discussion| LYR
RULES -->|match : court-circuit| HES
RULES -->|pas de match| TOON
EPH --> HES
R3 -. si RAG3Tier desactive .-> FUS
FUS --> RULES
HES --> LYR
LYR --> TTS
LYR --> TXT
Par où commencer¶
| Je veux… | Page |
|---|---|
| savoir si ma machine suffit | Matériel |
| essayer sans rien installer chez moi | Essayer sans rien installer |
| installer | Installation |
| comprendre ce qui est capté et ce qui sort | Flux de données |
| piloter mes propres outils | Ajouter un serveur MCP |
| voir les mesures | Benchmarks |