Leon : un assistant personnel open source centré sur les intentions, utilisable hors ligne, dont le noyau est réécrit en TypeScript
Leon est un assistant personnel open source sous licence MIT, hébergé sur votre propre serveur. Il gère la voix et le texte, et peut fonctionner entièrement hors ligne pour protéger la vie privée. Sa compréhension du langage est centrée sur les intentions, avec un modèle entraîné en interne plutôt qu'un grand modèle de langage, et ses fonctions sont organisées en compétences. Le serveur, l'application web, le nœud de mot d'activation, le serveur TCP et le pont Python coopèrent. La version 1.0.0-beta.8 apporte des binaires et réécrit le noyau en TypeScript. L'auteur prévoit d'utiliser des LLM en repli. Les contributions externes sont suspendues et le README ne publie aucun benchmark.
Positionnement : un assistant personnel open source qui vit sur votre propre serveur
Leon est un assistant personnel open source sous licence MIT. Sa devise : « Votre assistant personnel open source ». Ce n'est pas un énième chatbot dans le cloud. C'est un programme résident que vous hébergez sur votre serveur. Vous pouvez lui parler et il peut vous répondre. Vous pouvez lui écrire et il peut vous écrire. Surtout, il peut fonctionner entièrement hors ligne pour protéger votre vie privée. Au cœur de l'engouement pour les grands modèles de langage, cette position va à contre-courant. C'est précisément pourquoi elle mérite une lecture attentive.
L'auteur donne cinq raisons d'être au projet. Premièrement, les développeurs veulent créer beaucoup de petits outils utiles au quotidien. Plutôt qu'un projet dédié par idée, Leon offre une structure unique de compétences (Skills). Deuxièmement, cette structure générique permet à chacun d'écrire une compétence et de la partager : il n'y a qu'un seul noyau. Troisièmement, Leon utilise des concepts d'IA, ce qui est stimulant. Quatrièmement, la vie privée compte, et Leon peut être configuré pour dialoguer hors ligne, sans service tiers. Cinquièmement, l'open source est formidable.
Architecture centrale : plusieurs nœuds qui coopèrent
Selon le README, le dépôt contient plusieurs nœuds de Leon : le serveur, les compétences, l'application web, le nœud de mot-clé d'activation, le serveur TCP et le pont Python. Le serveur TCP assure la communication entre processus entre Leon et des nœuds tiers comme spaCy. Ce découpage en un processus principal et quelques auxiliaires spécialisés est pragmatique. La plupart des outils de traitement du langage naturel vivent en Python. Le serveur et le client web conviennent mieux à TypeScript. Un lien TCP local réunit les deux mondes, et chacun garde ses atouts.
La dernière version, 1.0.0-beta.8, s'intitule « Binaries and TypeScript rewrite » sur le blog du projet. Cela indique deux choses : le noyau est en cours de réécriture en TypeScript, et le projet fournit désormais des binaires précompilés pour faciliter l'installation. Le README évoque aussi un futur pont JavaScript à côté du pont Python actuel. Les auteurs de compétences pourront alors écrire dans le langage qu'ils maîtrisent le mieux.
Fonctionnement : une compréhension du langage centrée sur les intentions
La compréhension du langage naturel (NLU) de Leon est « intents first », c'est-à-dire centrée sur les intentions. Elle utilise son propre modèle entraîné et ne dépend pas d'un grand modèle de langage. Le flux est le suivant. L'énoncé de l'utilisateur, saisi ou transcrit depuis la voix, est classé dans une intention. Les entités nommées sont extraites en même temps. La requête est ensuite routée vers la compétence correspondante, qui produit la réponse. Les avantages sont nets : modèles petits, inférence rapide, résultats prévisibles, fonctionnement entièrement hors ligne sur du matériel périphérique. Le coût l'est aussi : Leon ne traite que les intentions définies à l'avance, et sa généralisation reste très inférieure à celle d'un LLM.
L'auteur voit ce compromis clairement. Le README décrit quatre usages futurs possibles d'un LLM. Un : le repli sur intention, quand un énoncé ne correspond à aucune intention. Deux : un nouveau moteur de reconnaissance d'entités nommées, pour extraire plus fiablement fruits, nombres, villes, durées, personnes. Trois : des fonctions pour les compétences, comme le résumé, la traduction et l'analyse de sentiment, disponibles sans effort. Quatre : l'aide à la création de compétences, avec reformulation d'exemples d'énoncés, traduction des réponses et conversion de code entre le pont Python et le futur pont JavaScript. L'auteur parie que les techniques de réduction comme la quantification permettront un jour de placer un LLM au cœur de Leon tout en restant exécutable en périphérie.
Performances et coûts : le README ne publie aucun benchmark
Soyons directs : le README ne publie aucune donnée de benchmark. Il n'y a ni latence, ni précision, ni comparaison de ressources. Cet article n'invente donc aucun chiffre. On peut seulement raisonner sur les compromis à partir de l'architecture.
Un petit modèle centré sur les intentions coûte très peu à exécuter, sans frais d'inférence à l'usage. Le prix à payer est la couverture : ce que Leon sait faire dépend du nombre de compétences écrites par la communauté et du nombre d'exemples d'énoncés requis par intention. Si un LLM local quantifié arrive plus tard, la mémoire et la latence de première réponse deviendront les principaux coûts nouveaux. C'est pourquoi l'auteur insiste sur l'exécution en périphérie.
Écosystème et impact sur l'adoption
Pour les développeurs, la valeur de Leon réside dans l'abstraction des compétences : chaque petite idée devient une compétence qui réutilise la même voix, le même texte, la même NLU et le même déploiement. Pour les particuliers et petites équipes soucieux de confidentialité, l'auto-hébergement et le mode hors ligne sont indispensables, et Leon offre l'une des rares solutions open source complètes.
L'auteur ajoute qu'une fois la plateforme de compétences en ligne, il sera plus facile de suivre l'avancement et de publier de nouvelles compétences. Il prévoit aussi de mieux organiser le Discord, de tenir des appels réguliers et de créer des compétences ensemble.
Limites et défis
D'abord, la situation du projet n'est pas simple. L'auteur explique que, pour des raisons personnelles, il ne développe le nouveau noyau qu'après le travail et le week-end. Pour éviter les conflits avec de nombreux changements incompatibles, les contributions externes sont bloquées pour le moment.
Aucune nouvelle documentation ni aucun nouveau test ne seront écrits avant la sortie officielle du nouveau noyau. Ensuite, la NLU centrée sur les intentions a une couverture limitée et exige un repli sur LLM, encore à l'état de projet. Enfin, l'argent est une contrainte réelle : l'auteur espère un jour travailler à plein temps sur Leon et envisage des pistes de monétisation, tout en promettant que le noyau restera toujours open source. Le parrainage est accepté dès aujourd'hui.
Évolutions à venir
On peut s'attendre à la sortie officielle du nouveau noyau, au lancement de la plateforme de compétences, à l'arrivée du pont JavaScript et du repli sur LLM, puis à un travail communautaire plus soutenu. Deux questions comptent. Les contributions rouvriront-elles après la sortie du nouveau noyau ?
Et l'intégration d'un LLM pourra-t-elle rester vraiment utilisable hors ligne ? D'ici là, Leon est un projet de long terme, porté par une idée claire, qui reconstruit encore ses fondations. L'idée mérite d'être étudiée. Avant tout usage en production, vérifiez la dernière branche et les notes de version.