Modèle / jeu de données
wanxingai/LightAgent avatar
wanxingai/LightAgent

LightAgent : un cadre Python minimal pour agents compatibles OpenAI, avec hooks de cycle de vie et orchestration LightFlow

LightAgent: Lightweight Python framework for OpenAI-compatible agents with tools, memory, guardrails, tracing, lifecycle hooks, multi-agent collaboration, and workflows.

1 219 étoiles173 forksPythonApache-2.0
GitHub

En bref

De quoi s’agit-il ?
LightAgent est un cadre Python sous licence Apache-2.0 qui vise les agents compatibles OpenAI avec outils, mémoire, garde-fous, traçage et collaboration multi-agents. Son intérêt tient surtout à ses hooks de cycle de vie et à son orchestrateur LightFlow, pas à une promesse de performance.
À qui s’adresse-t-il ?
LightAgent convient aux équipes qui écrivent déjà du Python et veulent un agent compatible OpenAI avec des hooks de cycle de vie explicites et un orchestrateur LightFlow déterministe, sans adopter une pile d'orchestration lourde. Il ne convient pas à ceux qui cherchent un service d'agents clé en main, une interface graphique d'administration, ou une compatibilité garantie avec un fournisseur non OpenAI.
Puis-je l’utiliser commercialement ?
Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 2 jours.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le problème visé : des agents Python sans pile d'orchestration lourde

Le README annonce la couleur dès la première ligne : « No LangChain, No LlamaIndex ». LightAgent cible donc un public précis, celui qui veut construire un agent en Python en gardant la main sur la boucle d'exécution, les appels d'outils et la mémoire, sans hériter d'une abstraction qui masque le flux. Le projet se présente comme un cadre léger avec outils, mémoire, garde-fous, traçage, hooks de cycle de vie, collaboration multi-agents et workflows. Le public visé est un développeur Python qui appelle déjà une API compatible OpenAI et qui veut ajouter des outils et de la mémoire sans changer de modèle mental. Le README mentionne la compatibilité avec OpenAI, DeepSeek, Qwen et d'autres fournisseurs, ainsi qu'OpenRouter et des modèles locaux dans les notes de version v0.6.4. C'est un cadre orienté code, pas une plateforme avec interface. Si vous cherchez un produit où l'on configure un agent dans un navigateur, ce dépôt n'est pas ce que vous cherchez.

Le mécanisme : hooks, runtime événementiel et LightFlow

La structure visible dans le matériel fourni repose sur plusieurs briques distinctes. D'abord les hooks de cycle de vie, mentionnés dans les sujets du dépôt et dans la note v0.9.3, qui indique une couverture complète du cycle de vie des hooks d'exécution et un durcissement de la sécurité des outils en streaming avec max_tool_iterations, ainsi qu'une fermeture cohérente de on_error et after_run. Ensuite le runtime événementiel unifié annoncé pour la v0.10.0 : sessions durables, exécution asynchrone, registre de capacités et politiques, Inbox/Goals/Budgets, compaction et récupération, Jobs et sous-agents, adaptateurs Skills et MCP standardisés, et récupération SQLite FTS5. LightFlow, apparu en v0.8.0, orchestre des workflows multi-étapes déterministes avec dépendances DAG, passage de sortie d'étape, retries et événements de trace. La v0.9.0 ajoute des workflows avec points de contrôle, reprise et réexécution, des nœuds d'approbation et des modèles de garde-fous réutilisables. Le traçage est optionnel depuis la v0.7.0, avec des événements structurés run, model, tool et error, et une méthode agent.export_trace(). Le point à retenir : le traçage et les garde-fous sont présentés comme optionnels, ce qui signifie que le comportement par défaut ne les active pas.

Mise en route : installation et clés de configuration citées

Le matériel fourni ne contient pas de bloc d'installation complet, seulement des indices. Le badge PyPI pointe vers le paquet lightagent, donc l'installation se fait par pip install lightagent, mais je ne peux pas confirmer la commande exacte ni les extras disponibles à partir de ce qui est fourni. Le README renvoie aussi à une documentation externe hébergée sur sufe-aiflm-lab.github.io/LightAgent/ et à un article arXiv (2509.09292), qui sont les sources à consulter pour les exemples complets. Les clés de configuration confirmées par les notes de version sont : max_tool_iterations, mentionné en v0.9.3 pour borner les appels d'outils en streaming ; on_error et after_run, dont la fermeture est décrite comme cohérente dans la même version ; et agent.export_trace(), ajouté en v0.7.0 pour l'observabilité. La v0.6.5 mentionne des résultats d'exécution structurés, des événements de streaming structurés, des erreurs LightAgent capturables et une validation des arguments d'outils, tout en conservant la compatibilité avec agent.run() et stream=True. La v0.6.4 ajoute des codes d'erreur structurés. Toute mise en route sérieuse suppose donc de lire la documentation externe, pas seulement le README, dont le contenu fourni s'arrête au milieu de la section Features.

Mémoire et multi-agents : ce que le README décrit et ce qu'il ne dit pas

Sur la mémoire, le README indique une prise en charge native du module mem0, avec gestion automatique de la mémoire personnalisée par utilisateur pendant les conversations. Les notes de version complètent ce tableau : MemoryScope et conventions de métadonnées en v0.8.1, filtres de provenance MemoryPolicy plus stricts dans la même version, séparation entre trace, mémoire utilisateur, mémoire d'auto-réflexion et état de délégation LightSwarm. La v0.9.6 ajoute une admission fail-closed pour la mémoire partagée Graph et des contrôles d'audit, et la v0.9.7 une matrice de sécurité Mem0 Graph en opt-in. Sur le multi-agents, le README affirme que LightSwarm est « Simpler to implement multi-agent collaboration than Swarm » et décrit la reconnaissance d'intention et la délégation de tâches. C'est une affirmation du projet, pas un résultat vérifié ici. Le README ne documente pas le coût en jetons de la délégation, ni la façon dont les erreurs d'un sous-agent remontent à l'agent principal. Ces deux points sont à vérifier dans le code ou la documentation avant de bâtir une chaîne de délégation en production.

Limites et cas où LightAgent n'est pas le bon outil

La première limite tient au rythme des versions. Le matériel fourni montre des publications très rapprochées : v0.9.7 et v0.10.0 le 15 août 2026, puis v0.10.1 le 4 septembre 2026. Entre ces versions, des fonctionnalités structurantes apparaissent et disparaissent du récit : SharedMemoryPool est décrit comme un prototype en v0.9.0, la v0.10.0 annonce un runtime événementiel unifié avec sessions durables et compaction. Un projet qui remplace sa couche d'exécution entre deux versions mineures impose un coût de suivi réel. La v0.9.7 mentionne d'ailleurs un « public API compatibility inventory for v1.0 stabilization », ce qui indique que l'API n'est pas encore figée. La deuxième limite concerne la compatibilité : le README annonce OpenAI, DeepSeek, Qwen et d'autres, mais rien dans le matériel fourni ne décrit la gestion des différences de format d'appel d'outils entre fournisseurs. La troisième limite est l'absence de homepage : la documentation vit sur un site externe et dans un article arXiv, sans point d'entrée unique. Enfin, LightAgent n'est pas le bon outil si vous avez besoin d'un service managé, d'une interface d'administration, ou d'une garantie de stabilité d'API à court terme.

Une alternative réelle : LangGraph et la différence d'approche

LangGraph, cité ici parce qu'il est l'alternative la plus directement comparable sur l'orchestration d'agents en Python, adopte une approche différente sur un point précis : le graphe d'états est le cœur du cadre, et l'agent est un cas particulier de graphe, avec un état typé qui circule entre les nœuds. LightAgent prend le chemin inverse. LightFlow est présenté comme une couche ajoutée en v0.8.0 au-dessus d'un agent qui existe déjà, avec des dépendances DAG, un passage de sortie d'étape et des retries. Autrement dit, dans LightAgent, l'agent est la primitive et le workflow est une composition ; dans LangGraph, le graphe est la primitive et l'agent en est une instanciation. Cette différence a des conséquences pratiques : avec LightAgent, vous pouvez écrire un agent qui fonctionne sans jamais toucher à LightFlow, ce qui réduit la surface d'apprentissage initiale. Avec LangGraph, la notion d'état et de transition est présente dès le premier exemple. Le choix dépend donc de ce que vous voulez modéliser en premier : une boucle d'agent avec des hooks, ou un graphe d'états avec des transitions explicites.

Maintenance, licence et coût de mise à jour

La licence est Apache-2.0, indiquée dans les métadonnées du dépôt et dans le badge du README. Concrètement, cela autorise l'usage commercial et la modification, avec les obligations habituelles de conservation des mentions de licence et d'avis. Je ne donne pas d'avis juridique : faites relire le texte de la licence si votre usage est sensible. Le coût de maintenance se lit dans le calendrier des versions. Entre le 27 mai 2026 et le 4 septembre 2026, le matériel fourni liste au moins onze entrées de notes de version, dont des changements de fond sur le runtime, la mémoire et les workflows. Un tel rythme signifie que les correctifs de sécurité et les ajustements de compatibilité arrivent vite, mais aussi que votre code peut devoir être adapté à chaque montée de version mineure tant que la v1.0 n'est pas publiée. La v0.9.7 annonce justement un inventaire de compatibilité d'API publique en préparation de cette stabilisation. Si vous épinglez une version, prévoyez de relire les notes de version à chaque déplacement d'épingle, en particulier autour des hooks on_error et after_run, dont le comportement de fermeture a changé en v0.9.3.

Conclusion éditoriale

LightAgent convient aux équipes qui écrivent déjà du Python et veulent un agent compatible OpenAI avec des hooks de cycle de vie explicites et un orchestrateur LightFlow déterministe, sans adopter une pile d'orchestration lourde. Il ne convient pas à ceux qui cherchent un service d'agents clé en main, une interface graphique d'administration, ou une compatibilité garantie avec un fournisseur non OpenAI. Avant d'adopter, vérifiez deux points dans le dépôt : la présence effective des clés de configuration citées dans le README (max_tool_iterations, on_error, after_run) dans votre version installée, et le contenu de l'inventaire de compatibilité d'API publique mentionné dans les notes de version v0.9.7, qui conditionne la stabilité de votre code lors du passage en v1.0.

Sources officielles

  1. Issues
  2. License: Apache-2.0
  3. README
  4. Releases
  5. wanxingai/LightAgent on GitHub
Notes de la communauté

Notes de la communauté