Module 6 sur 10, leçon 1 sur 5
Choisir un framework
Choisir selon le type de système, pas selon la popularité, et savoir quand s’en passer.
Un framework fournit la boucle, l’intégration des outils, la mémoire, la coordination et parfois la supervision. Il fait aussi écran : prompts et appels deviennent moins visibles, et le débogage s’en ressent.
Partez du type de système
| Besoin | Exemples d’outils |
|---|---|
| Étapes linéaires, données | LangChain, LlamaIndex |
| Boucles, états, reprises, humain dans la boucle | LangGraph, Microsoft Agent Framework |
| Équipes avec rôles définis | CrewAI |
| Écosystème Java | LangChain4j |
| Prototype visuel | LangFlow, Flowise |
Mise à jour de novembre 2026. Les tutoriels plus anciens peuvent montrer des API et des conseils dépassés.
- Microsoft présente Agent Framework comme le successeur direct d’AutoGen et de Semantic Kernel, créé par les mêmes équipes. Pour un nouveau projet dans cet écosystème, partez de lui.
- LangChain 1.0 s’appuie sur LangGraph pour exécuter ses agents. Ne retenez donc pas « LangChain pour le simple, LangGraph pour le complexe » comme un choix exclusif.
Cinq critères
- Complexité réelle : un agent ou plusieurs, et où intervient l’humain ?
- Sécurité : gestion des secrets, accès, données sensibles.
- Compétences de l’équipe et contrôle bas niveau nécessaire.
- Intégration à vos données et à votre infrastructure.
- Comportement en charge : latence et requêtes simultanées.
Commencer sans framework
Une boucle d’agent tient en quelques dizaines de lignes : appeler le modèle, exécuter l’outil demandé, renvoyer le résultat, recommencer. L’écrire une fois vous fera comprendre ce que les frameworks automatisent, et vous saurez lire leurs traces quand ils échoueront.
Comparez deux candidats sur le même cas, avec le même jeu d’évaluation.
Exemple : Ce que fait vraiment un checkpoint
Avant de payer une fonction de framework, écrivez-la une fois à la main. Un checkpoint, c’est l’état sauvé après chaque étape : l’exécution reprend au lieu de recommencer.
function run(steps, store, runId) {
const saved = store.get(runId) ?? { next: 0, done: [] };
for (let i = saved.next; i < steps.length; i += 1) {
saved.done.push(steps[i]);
saved.next = i + 1;
store.set(runId, saved);
}
return saved.done;
}
const store = new Map([['run-1', { next: 2, done: ['read', 'check'] }]]);
run(['read', 'check', 'refund'], store, 'run-1');
['read', 'check', 'refund']
L’exécution reprend au remboursement sans relire la commande. Si vos étapes ont des effets de bord, c’est ce qui évite de rembourser deux fois. Un framework offre la même chose, avec le stockage et l’outillage en plus.
Essayez dans l’éditeur
const END = '__end__';async function runGraph({ nodes, edges, start, state, reducers = {}, maxSteps = 25 }) { // TODO return state;}module.exports = { runGraph, END };