Construire un agent IA : outils, boucle et garde-fous
Un agent, c'est un modèle de langage dans une boucle avec des outils. C'est puissant et facile à rater. Voici comment fonctionne la boucle, comment définir des outils en sécurité, et les garde-fous qui empêchent un agent de partir en vrille.
Un agent IA, c'est un modèle de langage à qui on donne un jeu d'outils et qu'on fait tourner en boucle : il décide quel outil appeler, vous l'exécutez, vous lui renvoyez le résultat, et il recommence jusqu'à ce que la tâche soit finie. Ce contrôle ouvert est ce qui rend les agents puissants et ce qui les rend chers, lents et difficiles à déboguer quand ils sont mal employés. Ce guide couvre la boucle, les outils et les garde-fous, et quand un simple workflow est le meilleur choix.
Agent ou workflow ?
Un workflow est une suite d'étapes que vous codez, en appelant le modèle à des points fixes : extraire, puis classer, puis résumer. Un agent décide lui-même des étapes. Utilisez un workflow dès que les étapes sont connues à l'avance, ce qui est le cas la plupart du temps. Ne recourez à un agent que quand la tâche est vraiment ouverte et difficile à spécifier au départ.
Devriez-vous en construire un ?
- ✓Complexité : la tâche est-elle multi-étapes et difficile à spécifier entièrement ? Si vous pouvez écrire les étapes, écrivez un workflow.
- ✓Valeur : le résultat justifie-t-il un coût et une latence plus élevés ? Un run d'agent, c'est de nombreux appels au modèle, pas un seul.
- ✓Faisabilité : le modèle est-il réellement bon sur ce type de tâche ? Testez sur de vrais exemples d'abord.
- ✓Coût de l'erreur : une action fausse peut-elle être attrapée et annulée ? Tests, revue, un chemin de rollback.
La boucle
Le coeur est petit : envoyer le prompt et les définitions d'outils ; si le modèle renvoie un appel d'outil, l'exécuter, ajouter le résultat, et renvoyer ; s'arrêter quand le modèle renvoie une réponse finale ou que vous atteignez une limite. La plupart des SDK fournissent un helper qui fait tourner cette boucle, avec des hooks par tour pour la validation, le logging et la gestion d'erreurs, donc vous l'écrivez rarement à la main.
prompt + outils
|
modèle -> appel d'outil ? --non--> réponse finale
| oui
exécuter l'outil (valider les args, cadrer à l'utilisateur)
|
ajouter le résultat -> retour au modèle
|
arrêt sur : réponse finale | max d'étapes | budget dépasséLes outils : étroits, validés, cadrés
Chaque outil est une fonction que le modèle peut appeler. Gardez-les étroits (un rôle clair), validez chaque argument que le modèle passe, et cadrez chaque action à l'utilisateur authentifié côté serveur. Le modèle propose ; votre code décide de l'exécuter ou non. Renvoyez les échecs en données (« commande introuvable ») plutôt qu'en exception, pour que l'agent puisse réagir.
Les garde-fous, aucun n'est optionnel
- ✓Un plafond dur d'étapes et un budget de tokens, pour qu'un agent perdu s'arrête au lieu de boucler à l'infini.
- ✓Validation humaine pour toute action risquée ou irréversible : envoyer de l'argent, supprimer des données, envoyer un email à un client.
- ✓Validation de la sortie : vérifiez la réponse finale contre un schéma ou des règles avant d'agir dessus.
- ✓Sandbox : si l'agent exécute du code ou du shell, isolez-le de votre vraie infrastructure.
- ✓Sortie d'outil non fiable : un document que l'agent récupère peut contenir des instructions destinées au modèle. Gardez le contenu récupéré séparé de vos instructions, et ne le laissez jamais élargir les outils autorisés.
Gestion du contexte
Chaque itération de la boucle ajoute l'appel d'outil et son résultat au contexte, qui se remplit vite sur une tâche longue. Résumez ou effacez les vieux résultats d'outils, ou découpez le travail : un agent coordinateur délègue les sous-tâches lourdes en lecture à des agents workers moins chers et ne garde que leurs conclusions.
Observabilité
Loggez chaque étape : quel outil, quels arguments, quel résultat, combien de tokens, combien de temps. Sans cette trace, une mauvaise réponse est inexplicable, et vous ne pouvez pas dire si le problème est le prompt, un outil, ou le modèle qui perd le fil.
Workflow vs agent
| Workflow | Agent | |
|---|---|---|
| Flux de contrôle | Vous codez les étapes | Le modèle choisit les étapes |
| Coût | Prévisible, peu d'appels | Variable, de nombreux appels |
| Latence | Faible | Plus élevée, se compose à chaque étape |
| Mode d'échec | Une étape échoue, vous la gérez | Boucle, dérive, mauvais outil, budget explosé |
| À utiliser quand | Les étapes sont connues | La tâche est ouverte et difficile à spécifier |
FAQ
- Quelle différence entre un agent IA et un workflow ?
- Un workflow est une suite d'étapes que vous écrivez en code, en appelant le modèle à des points fixes. Un agent reçoit des outils et un objectif et décide lui-même des étapes dans une boucle. Les workflows sont prévisibles et moins chers ; les agents gèrent les tâches ouvertes que vous ne pouvez pas spécifier entièrement à l'avance, au prix de plus d'appels au modèle et de moins de prévisibilité.
- Faut-il un framework pour construire un agent ?
- Non. La boucle est petite, et la plupart des SDK fournissent un helper de tool-runner qui la fait tourner avec des hooks pour la validation et le logging. Un framework d'agent plus lourd aide pour les outils intégrés, la sandbox et l'orchestration multi-agents, mais pour un agent à outils custom, le helper du SDK plus vos fonctions d'outils suffit en général.
- Comment empêcher un agent de faire une action dangereuse ?
- Cadrez chaque outil à l'utilisateur authentifié côté serveur, exigez une validation humaine pour les actions irréversibles, validez les arguments du modèle avant l'exécution, et validez la sortie finale avant d'agir dessus. Le modèle propose ; votre code décide. Traitez tout contenu que l'agent récupère comme non fiable.
- Pourquoi mon agent boucle ou explose le budget ?
- En général un outil qui renvoie des résultats peu clairs, un objectif dont le modèle ne peut pas savoir qu'il est atteint, ou des conditions d'arrêt manquantes. Ajoutez un plafond dur d'étapes et un budget de tokens, rendez les résultats d'outils explicites sur le succès et l'échec, et donnez au modèle une définition claire de « terminé ».
- Un agent ou un simple appel LLM ?
- Un seul appel pour tout ce que vous pouvez exprimer en un prompt : classer, résumer, extraire, répondre. Un agent seulement quand la tâche a besoin que le modèle rassemble de l'information et prenne des actions sur plusieurs étapes que vous ne pouvez pas scripter. La plupart des fonctionnalités sont un seul appel ou un workflow, pas un agent.
Un agent, c'est une boucle, un jeu d'outils, et une pile de garde-fous. La boucle est facile ; les garde-fous sont le travail. Construisez les outils étroits et validés, plafonnez la boucle, exigez une validation pour tout ce qui est irréversible, loggez chaque étape, et recourez à un workflow dès que les étapes sont en fait connaissables.
Besoin d'aide sur ce sujet ? Intégration IA & RAG
Découvrir ce service →