Manuel Système Mirza Neural Assistant
Architecture, flux audio streaming, inférence locale sur Apple Silicon (MLX), boucle agentique smolagents, gestion thermique du Mac Mini M4 et fonctionnement du client HUD. Ce document détaille l'implémentation complète du système.
Architecture Système Multi-Niveaux
L'architecture est structurée en trois couches : le client d'interface (HUD React / Tauri v2), la passerelle de transport réseau (WebSocket binaire et TLS) et le nœud d'inférence local hébergé sur le Mac hôte Apple Silicon.
Moteurs d'Inférence Pris en Charge
Mirza intègre plusieurs moteurs interchangeables configurables au lancement ou en temps réel :
| Type | Moteur / Modèle | Propriétés & Rôle |
|---|---|---|
| ASR (STT) | MlxNemotronStt (FastConformer 8-bit) | Moteur principal. Streaming temps réel RNN-T à latence inférieure à 200 ms. |
| ASR (Fallback) | MlxWhisperStt (Whisper Turbo) | Moteur de secours pour transcription multilingue hors-ligne. |
| LLM Principal | MtplxLlm (Qwen 3.5 9B distillé MTPLX Q6G64) | Moteur local haute performance avec Paged Attention GPU Metal (28–34 tok/s). |
| LLM Cloud | OpenRouterLlm (openrouter/free) | Bascule instantanée vers le cloud gratuit avec conservation du modèle local en RAM. |
| TTS (Voix Souveraine) | KokoroTts (Kokoro ONNX) | Synthèse vocale neuronale 100% locale, souveraine et hors-ligne (moteur par défaut). |
| TTS Fallback (Optionnel) | Edge-TTS (fr-FR-EloiseNeural) / MeloTTS | Repli cloud optionnel haute fidélité (connexion Internet requise) ou moteur local alternatif. |
Pipeline Audio Streaming & Transcription
La chaîne de traitement audio est dimensionnée pour descendre sous les 200 ms de latence perçue entre la fin d'élocution et le premier son émis.
Capture du Microphone Client & Échantillonnage 16 kHz
Le client mobile ou navigateur capture les échantillons audio en mono 16 bits non compressé à 16 000 Hz. Les paquets de 40 millisecondes (640 échantillons) sont encapsulés sous forme binaire et expédiés par le canal WebSocket sécurisé vers l'endpoint /ws/audio.
Détection d'Activité Vocale (Silero VAD v5)
À la réception côté serveur, le flux traverse une instance locale de Silero VAD. Ce réseau de neurones compact évalue la probabilité de présence de voix humaine toutes les 32 millisecondes. Les bruits de fond continus, respirations et silences sont filtrés en amont, évitant de réveiller inutilement le moteur ASR.
Inférence ASR Streaming (FastConformer RNN-T)
Dès que la parole est confirmée, les frames audio sont injectées dans le modèle FastConformer quantifié 8-bit MLX. Grâce à l'architecture RNN-Transducer, les hypothèses lexicales sont émises au fur et à mesure sans attendre la fin de la phrase. Dès que l'utilisateur s'arrête de parler, la transcription finale est validée en moins de 180 millisecondes.
Moteur de Raisonnement MTPLX & Dual Output
Une fois le texte transcrit, la requête est transmise au gestionnaire de dialogue, orchestré par le démon d'inférence MTPLX et la boucle agentique.
Système Modulaire de Profils (Personas)
Mirza n'est pas limité à un rôle prédéfini : son architecture repose sur un gestionnaire de profils entièrement déclaratif dans config/profiles.yaml. Ce mécanisme découple le moteur d'exécution de la personnalité de l'agent, permettant à chaque utilisateur de configurer ses propres personas selon ses besoins (assistance générale, ingénierie logicielle, analyse de données, écriture, ou profils métiers spécifiques).
Mémoire : Mémoire épisodique active avec base vectorielle locale SQLite-vec.
Ambiance Visuelle : Cyber Crimson (rouge néon carmin, lueurs ambrées).
Démonstrateur de test : Un profil spécialisé clinique a été configuré comme exemple pratique pour valider l'injection d'outils dédiés et la bascule visuelle.
Bascule à Chaud et Chargement Intelligent
Pour garantir des performances optimales et éviter des lectures disques répétitives à chaque interaction, la configuration des profils est parsée une seule fois au démarrage et conservée dans un cache mémoire thread-safe.
L'utilisateur peut basculer d'un profil à l'autre au démarrage ou en cours d'utilisation :
Lors du basculement vers un profil disposant d'une direction artistique distincte (par exemple le profil de test cyan), l'interface adapte immédiatement son habillage visuel (réticule de l'orbe, anneaux des satellites, bordures et accents lumineux).
Exemple Illustratif de Test : Démonstrateur de Profil Spécialisé
Pour valider concrètement l'extensibilité du système de profils sans altérer le cœur de Mirza, un profil métier spécialisé (ici orienté sur une consultation clinique de test) sert d'exemple pratique. Ce cas d'usage illustre comment un profil utilisateur peut enrichir Mirza avec un prompt structuré (méthode SOAP), des outils de calcul locaux et une direction artistique dédiée.
Patient Laurent D., 58 ans • Bilan Biologique Rénal & Adaptation Posologique
Antécédents : Diabète de type 2 évoluant depuis 9 ans, hypertension artérielle essentielle.
Traitements actuels : Metformine 1 000 mg (1 comprimé matin et soir, soit 2 000 mg/j), Ramipril 5 mg (1 comprimé le matin).
Biologie reçue : Créatininémie à 132 µmol/L (Clairance estimée CKD-EPI : 48 mL/min/1.73m²), HbA1c à 8.4%, Kaliémie à 4.6 mmol/L, Microalbuminurie à 180 mg/g de créatinine.
REQUÊTE VOCALE DU PRATICIEN :
RAISONNEMENT INTERNE DU MODÈLE (CHAIN-OF-THOUGHT CLINIQUE EBM) :
Prononcé à voix haute calmement pour ne pas perturber l'échange avec le patient :
Archivé dans le volet inférieur sous forme de rapport médical structuré :
L'Orbe Centrale (Mirza)
L'orbe centrale est rendue sur canvas dédié par un Web Worker (OffscreenCanvas) à 60/120 FPS. Elle réagit en direct aux interactions audio :
Les 3 Satellites Interactifs
Au-dessus de l'orbe centrale, trois réacteurs satellites miniatures reliés par des conduits d'énergie permettent de piloter l'assistant en direct :
Satellite Gauche : BrainBoost (Raisonnement CoT)
Règle le palier de réflexion (Chain-of-Thought) alloué au modèle : 0 (réponse directe rapide), 512, 1024 ou 2048 tokens. Cliquez dessus pour changer de palier. Le faisceau s'illumine en ambre.
Satellite Central : Agent Cube (Mode Agentique)
Cliquez pour activer ou désactiver le mode Agent (smolagents CodeAgent ReAct). Le conduit devient bleu néon vif. Un appui long ouvre la liste des outils disponibles pour les activer individuellement.
Satellite Droit : KV-Cache (Mémoire de Contexte)
Affiche le taux d'occupation de la fenêtre d'attention (jusqu'à 16 384 tokens). Maintenez le clic enfoncé (Hold to Flush) pour réinitialiser le cache de contexte à zéro. Un clic simple ou double-tap ouvre l'inspecteur de contexte actif.
Pilule et Panneau de Télémétrie
Sous la barre supérieure, une pilule compacte résume les métriques clés en continu (ex: 31.2 tok/s • 12% CONTEXTE • Metal UMA).
En cliquant sur cette pilule, le panneau supérieur déroulant affiche :
Jauge 2 : Empreinte mémoire exacte du processus Mirza (VRAM Metal active).
Démarrage du Serveur Backend (Mac)
Le serveur se lance sur le Mac hôte à la racine du dépôt avec uv :
Lancement avec chiffrement SSL (Recommandé pour smartphones)
Le flag --ssl génère ou utilise les certificats TLS nécessaires pour autoriser l'accès au microphone sur les appareils distants.
Lancement avec un profil spécifique
Active d'emblée un profil personnalisé (ex: --profile medical pour charger le démonstrateur de test) et sa direction artistique associée.
Choix du fournisseur vocal (TTS)
Permet de forcer le moteur TTS au démarrage : kokoro (défaut local souverain), edge_tts (repli cloud optionnel) ou melo.
Client Mobile Android (Tauri v2)
L'application Android permet d'utiliser Mirza sur smartphone avec l'interface complète :
Téléchargement
Téléchargez l'APK depuis le portail d'accueil (section Application APK protégée par mot de passe).
Installation
Ouvrez le fichier téléchargé. Si Android demande confirmation, autorisez l'installation d'applications inconnues pour votre navigateur.
Configuration IP au premier lancement
Appuyez sur la pilule de télémétrie en haut, renseignez l'adresse IP de votre Mac hôte dans le champ passerelle et appuyez sur OK.
Connexion Réseau & Utilisation Distante
Deux méthodes pour connecter votre smartphone au Mac :
192.168.1.50:8765). Saisissez-la dans la passerelle de l'application mobile.
100.x.y.z:8765 attribuée au Mac. La liaison est chiffrée en WireGuard et fonctionne en 4G/5G.
Les 6 Outils du Mode Agent
Lorsque le satellite Agent Cube est activé, l'assistant peut invoquer les 6 outils modulaires enregistrés dans mirza.engine.agent.tools :
| Outil | Module | Description & Rôle |
|---|---|---|
| datetime_info | system |
Fournit la date, l'heure courante, le jour de la semaine et le fuseau horaire précis. |
| system_metrics | system |
Retourne la charge CPU, l'occupation de la RAM, de la VRAM Metal et l'état de la batterie. |
| web_search | web |
Effectue une recherche sur le web et renvoie les titres, extraits et liens pertinents. |
| visit_webpage | web |
Extrait et nettoie le contenu textuel complet d'une page web donnée. |
| save_memory | memory |
Enregistre une information clé dans la base de données mémoire SQLite / Vectorielle. |
| recall_memory | memory |
Recherche et extrait des souvenirs passés pertinents par similarité sémantique. |
Contrôle Thermique Actif (Mac Mini M4)
L'inférence continue de modèles 9B à 32 tokens par seconde sollicite intensément les cœurs GPU Metal et la mémoire unifiée. Mirza intègre un module de régulation thermique active (Fan Control) pour prévenir l'échauffement sans usure prématurée.
Relevé Réel de Test sous Profil Balanced (Charge LLM Continue)
Mesure effectuée sur Mac Mini M4 lors d'une génération soutenue de 45 secondes en mode d'inférence MTPLX :
| Temps | Vitesse Ventilateur | Mode Contrôle | Température GPU | Température Max SoC |
|---|---|---|---|---|
| 00s | 1 000 RPM | auto | 39.2°C | 51.5°C |
| 05s | 1 000 RPM | manual | 57.9°C | 63.2°C |
| 15s | 1 641 RPM | manual | 64.4°C | 70.4°C |
| 25s | 2 765 RPM | manual | 67.8°C | 71.3°C |
| 35s | 2 939 RPM | manual | 69.4°C | 71.3°C |
| 40s | 2 939 RPM | manual | 70.0°C | 72.5°C |
Analyse d'Ingénierie sur l'Usure Mécanique FDB
Une question fréquente concerne l'impact d'une ventilation active continue sur la longévité mécanique du ventilateur Apple.
Conclusion de Conception
Le profil Balanced de Mirza régule la montée en régime de manière linéaire (de 1 000 à 2 939 RPM en 35 secondes), ce qui stabilise la puce sous le seuil de 72.5°C. À cette vitesse, le niveau sonore reste sous les 25 dBA tout en garantissant une évacuation thermique constante qui protège le matériel sans surmener le roulement du ventilateur.
Questions Fréquentes & Dépannage
--server --ssl). Contrôlez l'adresse renseignée dans le volet télémétrie : sur Wi-Fi local, l'IP du Mac change parfois lors d'une reconnexion de box.