all-agentic-architectures : 35 motifs d'agents dans une seule classe Python
35 production-grade agentic AI architectures (Reflexion, LATS, GraphRAG, MemGPT, Voyager, BrowserAgent, ...) — a Python library and runnable textbook with multi-provider LLM support and a 17-task benchmark leaderboard.
En bref
- De quoi s’agit-il ?
- Une bibliothèque Python et un manuel exécutable qui emballent 35 architectures d'agents (Reflexion, LATS, GraphRAG, MemGPT, Voyager) derrière une interface .run() unique, avec un tableau de bord comparatif sur 17 tâches. Le point intéressant n'est pas le catalogue, c'est la discipline de notation.
- À qui s’adresse-t-il ?
- À adopter si vous devez comparer plusieurs motifs d'agents sur une même tâche sans réécrire votre code appelant : le contrat .run(task) et la forme ArchitectureResult sont identiques d'une classe à l'autre. À éviter si vous cherchez un framework de production avec traçage intégré, gestion d'erreurs robuste ou support multi-utilisateurs : le projet se présente comme une bibliothèque et un manuel, pas comme une plateforme d'exécution.
- Puis-je l’utiliser commercialement ?
- Oui. MIT 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 86 jours.
- En quel langage est-il écrit ?
- Principalement Jupyter Notebook, 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 catalogue comme réponse à un problème de choix
Le problème que ce dépôt attaque n'est pas l'absence d'architectures d'agents. La littérature en produit en continu. Le problème est qu'elles vivent dans des articles, des notebooks isolés ou des implémentations incompatibles, et qu'un ingénieur qui veut savoir si Reflexion vaut mieux que Self-Consistency sur sa tâche doit recoder les deux pour les comparer. Le README annonce 35 architectures, 283 tests et 17 tâches de benchmark. Le public visé est donc précis : un développeur qui connaît déjà LangGraph ou LangChain et qui veut un point d'entrée uniforme pour évaluer des motifs avant d'en figer un. Ce n'est pas une bibliothèque pour quelqu'un qui découvre les agents, ni pour quelqu'un qui cherche une solution clé en main. C'est un banc d'essai. La distinction compte, parce qu'elle détermine ce que vous devez attendre du projet et ce que vous ne devez pas lui demander.
Un contrat unique, trente-cinq implémentations
Le mécanisme central tient en une phrase du README : chaque motif est exposé comme une classe Architecture avec un contrat uniforme. L'exemple donné montre Reflection instancié avec un LLM, max_iterations et target_score, puis appelé via arch.run("Write a haiku about a glacier."). Le retour est un ArchitectureResult, et le README précise que result.metadata contient final_score. La couche d'exécution repose sur des machines à états LangGraph, ce qui signifie que le graphe d'états est la représentation interne du motif, pas seulement une abstraction de façade. L'intérêt pratique est limité mais réel : remplacer la classe remplace le motif sans toucher au code en aval. Un détail mérite attention. Le README parle d'un motif de sélecteur déterministe appliqué dans 13 des 35 architectures, et de 9 autres « architecturalement immunisées ». Autrement dit, la bibliothèque ne prétend pas que les 35 motifs partagent la même robustesse de notation. C'est une admission honnête, et c'est aussi la principale raison de lire le tableau de bord avant de choisir.
Le sélecteur déterministe, ou comment éviter la notation plate
Le README identifie une pathologie qu'il nomme LLM-as-Scorer flat-band : quand on demande à un modèle de noter sa propre production sur une échelle continue, les scores se tassent et perdent leur pouvoir discriminant. La réponse proposée est le motif du sélecteur déterministe. Le modèle ne produit pas la note. Il s'engage sur des caractéristiques catégorielles (booléens, énumérations), et Python compose le signal décisionnel à partir de ces engagements. C'est une inversion de responsabilité : le LLM fait ce qu'il fait de manière fiable, du classement discret, et le code fait ce qu'il fait de manière fiable, de l'agrégation. Le README indique que ce motif est appliqué dans 13 architectures sur 35. Les 22 restantes se répartissent entre celles qui sont immunisées par construction et, implicitement, celles qui ne sont ni l'un ni l'autre. Ce chiffre est la donnée la plus utile du README, parce qu'il vous dit où regarder en premier si votre cas d'usage dépend d'un score de qualité fiable.
Installation et configuration
L'installation passe par PyPI avec des extras nommés par fournisseur et par capacité : pip install "agentic-architectures[nebius,faiss,tavily]". Le README documente aussi une installation depuis un clone, avec création d'un environnement virtuel, puis pip install -e ".[dev,test,docs,nebius,faiss,tavily,networkx]". La configuration se fait par variables d'environnement : le README mentionne cp .env.example .env puis le remplissage de NEBIUS_API_KEY. La liste complète des fournisseurs cités est Nebius, OpenAI, Anthropic, Groq, Ollama, Together, Fireworks, Mistral et Google, soit neuf. Deux points pratiques. D'abord, les extras ne sont pas cosmétiques : faiss et tavily conditionnent les architectures de récupération, networkx probablement les variantes de mémoire graphe. Ensuite, le README ne détaille pas le contenu de .env.example au-delà de NEBIUS_API_KEY. Si vous prévoyez d'utiliser un autre fournisseur, il faudra inspecter ce fichier vous-même. Enfin, la commande pytest -q est annoncée comme exécutant 283 tests en environ 30 secondes. C'est une affirmation du README, pas une mesure que j'ai reproduite.
Ce que le projet ne fait pas
Le README est explicite sur un point qui limite l'adoption : « 0 MOCKED RUNS ». Les notebooks sont présentés comme exécutés réellement, avec des sorties LLM authentiques, et la théorie serait écrite contre la capture, pas l'inverse. C'est un choix éditorial fort, et il a un coût direct : reproduire un notebook suppose une clé API valide et un budget de tokens. Le manuel n'est pas consultable hors ligne sans frais. Deuxième limite, plus structurelle : le contrat uniforme porte sur l'entrée et la sortie, pas sur les paramètres. Reflection prend max_iterations et target_score. Rien n'indique que LATS, MemGPT ou Voyager exposent les mêmes arguments. Le polymorphisme s'arrête donc au .run(), et tout code qui veut ajuster finement un motif devra connaître ses paramètres propres. Troisième point, le projet se décrit comme une bibliothèque et un manuel, pas comme une plateforme. Rien dans le matériel fourni ne décrit de gestion de concurrence, de reprise sur erreur, de persistance de session ou de traçage intégré, alors que les topics du dépôt mentionnent langsmith. La présence d'un topic n'est pas une preuve d'intégration documentée.
Face à LangGraph seul
L'alternative évidente est d'utiliser LangGraph directement, puisque la bibliothèque est construite dessus. La différence n'est pas technique mais de niveau d'abstraction. LangGraph vous donne les primitives : nœuds, arêtes, état, points de contrôle. Vous composez le motif vous-même, ce qui vous laisse un contrôle total sur les paramètres, la gestion d'erreurs et l'observabilité, au prix d'écrire chaque variante. all-agentic-architectures vous donne 35 motifs déjà composés, avec un contrat commun, mais vous laisse dépendant des choix de paramétrage de l'auteur. Le compromis est net : la bibliothèque excelle pour la comparaison rapide et l'apprentissage par lecture du code, LangGraph seul reste le bon choix dès que vous devez ajuster un motif au-delà de ses arguments exposés ou l'intégrer dans un système avec des exigences de fiabilité. Un troisième chemin existe, celui des implémentations de référence par article, mais il vous ramène au problème initial : recoder pour comparer.
Maintenance, licence et coût de mise à jour
Le dépôt n'est pas archivé et la dernière poussée date du 22 juin 2026, avec une version v0.3.0 publiée le 28 mai 2026. Le rythme de publication est donc récent, mais le matériel fourni ne permet pas d'estimer la régularité sur la durée. La licence est MIT, ce qui autorise la réutilisation, la modification et la redistribution, y compris dans un produit commercial, à condition de conserver la notice de copyright et le texte de licence. Je ne donne pas de conseil juridique : lisez le fichier LICENSE et faites vérifier votre cas si la conformité compte. Le coût de mise à jour réel n'est pas dans la bibliothèque mais dans les dépendances. Chaque fournisseur LLM, chaque version de LangGraph et chaque changement d'API de modèle peut casser un notebook ou une architecture. Les 283 tests annoncés sont le principal filet de sécurité, mais le README ne précise pas s'ils s'exécutent sans clé API ni s'ils couvrent les 35 architectures ou seulement une partie. C'est la première chose à vérifier avant d'adopter le projet comme dépendance.
Conclusion éditoriale
À adopter si vous devez comparer plusieurs motifs d'agents sur une même tâche sans réécrire votre code appelant : le contrat .run(task) et la forme ArchitectureResult sont identiques d'une classe à l'autre. À éviter si vous cherchez un framework de production avec traçage intégré, gestion d'erreurs robuste ou support multi-utilisateurs : le projet se présente comme une bibliothèque et un manuel, pas comme une plateforme d'exécution. Avant de vous engager, vérifiez trois choses concrètes : le contenu réel de .env.example pour savoir quelles clés sont requises, la liste des extras PyPI (nebius, faiss, tavily) dont dépendent les architectures de recherche, et le tableau de bord des 17 tâches pour voir si votre cas d'usage y figure.
Notes de la communauté