04Further - maximemorge/tutorielIAAgentique GitHub Wiki

Pour aller plus loin

Un système agentique de niveau production doit maintenir une mémoire d’une requête à l’autre, utiliser des outils complexes et être capable de réflexivité sur ses propres sorties.

Mémoire vectorielle

Par rapport au premier SMA (mas.py, sans vérificateur de faits ni score), le fichier masWithMemory.py ajoute une mémoire vectorielle (AgentMemory, index FAISS). Le synthétiseur y mémorise chaque couple question/réponse finale ; au début de chaque requête, le chercheur récupère les interactions passées les plus proches sémantiquement (past_context, tronqué à 600 caractères) et les injecte dans son prompt.

Cette mémoire est conservée en mémoire vive : elle persiste entre les requêtes d’une même exécution, mais pas d’une exécution du script à l’autre (l’index FAISS n’est pas sauvegardé sur disque).

Exécutez ce SMA qui traite 3 requêtes successives sur un même thème et vérifiez, dans les blocs MEMORY CONTEXT affichés, que la troisième requête exploite la mémoire des deux premières.

Auto-évaluation

Par rapport au SMA précédent, le fichier masWithMemoryAndSelfReflect.py intègre une fonction self_reflect dans le synthesizer_node.

Comme illustré dans la figure ci-dessous, si la moyenne des scores est inférieure à 2, la synthèse est renvoyée vers le chercheur pour un second passage complet.

Architecture du pipeline multi-agents

Exécutez ce SMA et observez la différence de qualité par rapport au précédent. Avec self_reflect, une réponse insuffisante (sources faibles, manques flagrants) déclenche un second passage complet par le chercheur avant d’être validée, ce qui améliore la qualité factuelle. Sans ce mécanisme, le critique valide parfois trop tôt car il n’évalue que le texte brut de l’analyse et non la synthèse finale. L’auto-évaluation porte sur le produit fini et détecte donc les défauts de mise en forme et de cohérence que le critique ne perçoit pas.

Auto-formalisation

Par rapport au SMA précédent, le fichier masWithPython.py ajoute un outil execute_python(code: str, timeout: int = 5) -> str qui exécute du code Python dans un sous-processus (de manière plus rudimentaire que l’outil tools.py). Le chercheur lance une boucle mini-ReAct (mini_react_coder) qui écrit, exécute et corrige du code, puis place le résultat dans le champ code_results de l’état partagé, exploité par l’analyste et le synthétiseur.

Exécutez ce SMA sur une question numérique et vérifiez que l’agent exploite l’outil execute_python pour résoudre le problème.

⚠️ **GitHub.com Fallback** ⚠️