Dans les deux dernières années, les modèles de grande taille (LLMs) ont transformé le paysage technologique. Des démonstrations impressionnantes comme ChatGPT à des implémentations sectorielles, les agents AI sont devenus cruciaux pour la transformation numérique des entreprises. Cependant, un défi persiste : 80% des projets AI échouent lors de la transition de la phase de démonstration à la production.
Quels sont les problèmes ?
- Gestion aléatoire du contexte, perte de mémoire après plusieurs échanges
- Manque de cohérence dans l'utilisation des outils, forte dépendance au code
- Aucun système de tolérance aux pannes, crash total en cas d'erreur API
- Précision insuffisante des bases de connaissances RAG, réponses fantasques
- Absence de séparation utilisateur, risques de sécurité
C'est dans ce contexte que AI-Agent-Node est né, un framework basé sur LangChain + Node.js conçu pour des agents AI robustes et prêts à l'emploi. Il ne s'agit pas seulement d'un système fonctionnel, mais d'une solution enterprise solide.
- Design architectural : Modularisation et découplage
1.1 Modèle en trois couches : Outils → Compétences → Agent
```
┌─────────────────────────────────────────────────────────┐ │ Couche Agent (Orchestration) │ │ - Gestion des sessions + Contrôle du contexte + Orchestration des outils│ │ - Modes d'exécution : ReAct / Plan+Exécution │ ├─────────────────────────────────────────────────────────┤ │ Couche Compétences (Combinaison) │ │ - Encapsulation des scénarios métier : Formation/Consultation/Analyse...│ │ - Workflows complexes impliquant plusieurs outils │ ├─────────────────────────────────────────────────────────┤ │ Couche Outils (Capacités atomiques) │ │ - Capabilités individuelles : Recherche de connaissances/Analyse de code/...│ │ - Conception modulaire et interchangeable │ └─────────────────────────────────────────────────────────┘
### 1.2 Philosophie de conception
- **Outils** : Une seule fonctionnalité, mais optimisée
- **Compétences** : Flows métier, orchestration d'outils pour des tâches complexes
- **Agent** : Centre de décision intelligent, planification des actions
Cette approche modulaire réduit les coûts de maintenance et facilite l'extension. Ajouter une nouvelle fonctionnalité se résume à implémenter un nouveau module dans le répetroire approprié.
2. Deux modes d'exécution : ReAct vs Plan+Exécution
---------------------------------------------------
### 2.1 Pourquoi un seul mode n'est pas suffisant ?
Le mode traditionnel ReAct (Raisonnement + Action) fonctionne bien pour des réponses simples, mais se révèle limité pour des tâches complexes :
- Ordre aléatoire des appels d'outils
- Difficulté à maintenir la cohérence sur des longues chaînes
- Latence due à de multiples appels LLM
### 2.2 Stratégie de sélection du mode
Le système évalue la complexité de la tâche en fonction de plusieurs critères :
| Dimension d'évaluation | Poids | Signaux typiques |
|---|---|---|
| Séquences d'étapes | 40% | Expressions comme "d'abord... puis... enfin..." |
| Densité d'outils | 30% | Mots-clés comme "tous", "parcourir", "traiter en masse" |
| Type d'opérations | 15% | Comparaisons de documents, génération de rapports, analyse de code |
| Dépendanec contextuelle | 10% | Actions récurrentes, références |
| Longueur du texte | 5% | Entrées utilisateur très longues |
Les actions sont pondérées selon leur complexité :
- **Haute pondération (1,5x)** : Recherche exhaustive, analyse approfondie
- **Pondération normale (1,0x)** : Recherche simple, lecture/écriture
- **Basse pondération (0,3x)** : Affichage, explication basique
```
// Exemple de décision
if (scoreActionsPondérés >= 4) → Mode Plan+Exécution obligatoire
if (nombreActionsConjonctives >= 3) → Mode Plan+Exécution obligatoire
if (détectionDialogueSimple) → Réduction au mode ReAct
2.3 Processus Plan+Exécution
En cas de tâches complexes, le système suit trois étapes clés :
- Génération de plan : LLM identifie les étapes nécessaires
- Exécution séquentielle : Ordre topologique, injection automatique des résultats intermédiaires
- Compilation finale : Intégration des résultats pour une réponse cohérente
Exemple d'utilisation :
- Analyse de données multistage
- Traitement de fichiers en batch
- Suivi de projets complexes