OpenAI a récemment publié discrètement un guide pratique pour la construction d'agents (A practical guide to building agents), un véritable manuel d'instruction pour les « travailleurs AI » ! Aujourd'hui, je vais vous aider à décrypter ce guide officiel de manière simple et amusante, afin que vous puissiez facilement maîtriser la création de votre propre agent AI ! Prêt ? C'est parti !

image.png

Attendez, qu'est-ce qu'un agent ? En quoi est-il différent d'un logiciel ordinaire ?

Commençons par clarifier que les agents ne sont pas les applications de votre téléphone qui exécutent des commandes pas à pas, ni les robots qui ne font que discuter simplement. OpenAI le définit ainsi :

Un agent est un système capable d'accomplir des tâches spécifiques de manière autonome et en votre nom.

Point clé : autonomie !

Pensez aux logiciels que vous utilisez quotidiennement, comme une application de réservation de billets. Vous devez lui indiquer pas à pas où vous allez, quand, et en quelle classe vous souhaitez voyager, avant qu'elle ne vous fournisse un résultat. Mais avec un agent ? Vous pourriez simplement dire : « Réservez-moi le billet d'avion le moins cher pour Pékin la semaine prochaine, place près du hublot, et cherchez aussi un hôtel convenable. » Ensuite, il pourra rechercher les vols, comparer les prix, consulter les avis, et même vous proposer quelques options avant de terminer la tâche !

image.png

En termes simples, un agent est comme un employé de haut niveau doté d'un « cerveau » (LLM, grand modèle linguistique), d'une « boîte à outils » (outils) et d'« instructions ». Il peut :

Prendre des décisions intelligentes (Leverages an LLM) : comme une personne intelligente, il analyse la situation et décide de la prochaine étape à suivre. Il peut même détecter ses erreurs et tenter de les corriger. S'il ne parvient vraiment pas à résoudre un problème, il sait s'arrêter et demander de l'aide à l'utilisateur.

Utiliser des outils pour travailler (Access to tools) : il peut se connecter au monde extérieur, par exemple en recherchant des informations sur Internet, en accédant à des bases de données, en envoyant des e-mails ou en utilisant des API d'autres logiciels. Et il est assez intelligent pour savoir quel outil utiliser au bon moment.

Par conséquent, les applications AI qui ne font que discuter simplement, effectuer une classification de texte ou exécuter des processus fixes ne sont pas vraiment considérées comme des agents ! Les agents sont de véritables acteurs capables de vous aider à « faire avancer les choses ».

Quand un agent est-il nécessaire ? Évitez de « tuer une mouche avec un canon » !

Bien que les agents soient puissants, ils ne sont pas omniscients. Si le problème que vous souhaitez résoudre peut être résolu à l'aide d'outils d'automatisation traditionnels ou en écrivant quelques lignes de code, il n'est pas nécessaire de créer un agent. OpenAI recommande d'utiliser un agent pour les problèmes difficiles suivants :

Prise de décision complexe nécessitant de la finesse (Complex decision-making) : par exemple, dans un contexte de service client, déterminer si une demande de remboursement est justifiée nécessite de prendre en compte l'historique de l'utilisateur, la situation du produit et même le ton de l'utilisateur. Les moteurs de règles traditionnels sont dépassés par ces « zones grises », mais un agent peut peser le pour et le contre comme un manager expérimenté.

Règles nombreuses et difficiles à maintenir (Difficult-to-maintain rules) : certains anciens systèmes accumulent les règles, et la modification d'un élément peut entraîner de nombreux bogues, augmentant considérablement les coûts de maintenance. Par exemple, l'audit de sécurité des fournisseurs implique une base de règles volumineuse et complexe. Un agent peut comprendre et exécuter les intentions de manière plus flexible, évitant ainsi « l'enfer des règles ».

Traitement fréquent de données non structurées (Heavy reliance on unstructured data) : extraction d'informations clés à partir de documents contractuels ? Compréhension des instructions en langage naturel de l'utilisateur ? Traitement d'enregistrements vocaux pour les indemnisations d'assurance ? Ces tâches impliquant de grandes quantités de texte et de données vocales sont le point fort des agents.

En résumé, lorsque vous trouvez que les outils existants ne sont « pas assez intelligents », « pas assez flexibles » ou « trop rigides », il est temps de faire appel à un agent !

Les trois éléments essentiels d'un agent : cerveau, outils et instructions

Assez de théorie, passons à la pratique. Pour assembler un agent, vous devez préparer ces trois éléments essentiels :

Modèle (Model) - Le « cerveau » de l'agent :

Il s'agit du cœur intelligent de l'agent, généralement un puissant LLM (comme la série GPT d'OpenAI).

Quel modèle choisir ? Cela dépend de la difficulté de la tâche, de la vitesse et du coût. OpenAI recommande :

Commencez par le meilleur : utilisez d'abord le modèle le plus puissant (comme GPT-4) pour créer un prototype et déterminer les performances de référence.

Réduction progressive : essayez ensuite d'utiliser un modèle plus petit, plus rapide et moins coûteux (comme GPT-3.5 Turbo ou un modèle potentiellement plus petit à l'avenir), pour voir si les résultats sont toujours acceptables.

Combinaison : vous pouvez même utiliser un petit modèle pour les étapes simples et un grand modèle pour les décisions critiques dans un processus complexe, afin d'utiliser au mieux les ressources. Ne vous limitez pas dès le départ !

Outils (Tools) - Les « mains et les yeux » de l'agent :

Un cerveau seul ne suffit pas, il faut aussi pouvoir agir. Les outils sont le pont entre l'agent et le monde extérieur, généralement des API ou d'autres fonctions.

image.png

Les outils sont principalement classés en trois catégories :

Données (Data) : aident l'agent à obtenir des informations, par exemple en consultant une base de données, en lisant un PDF ou en effectuant une recherche sur le Web.

Actions (Action) : aident l'agent à effectuer des opérations, par exemple en envoyant un e-mail, en mettant à jour un enregistrement CRM ou en informant un service client.

Orchestration (Orchestration) : c'est puissant ! Un agent peut utiliser un autre agent comme « outil » ! Nous en reparlerons plus tard.

Point clé : la définition des outils doit être claire, standardisée, la documentation complète et les tests approfondis. Ainsi, l'agent ne risque pas d'« utiliser le mauvais outil », et vous pourrez gérer et réutiliser les outils plus facilement.

Instructions (Instructions) - Le « guide d'action » de l'agent :

Ce sont les règles et le processus de travail que vous définissez pour l'agent, en lui indiquant « qui il est », « ce qu'il doit faire », « comment le faire » et « comment gérer les problèmes ». Des instructions bien rédigées permettront à l'agent de ne pas dévier de sa tâche.

Conseils pour rédiger de bonnes instructions :

Utiliser la documentation existante : transformer les manuels d'utilisation, les scripts de service client et les documents de politique de l'entreprise en instructions claires que l'IA peut comprendre.

Décomposer les tâches : décomposer les tâches complexes en petites instructions pas à pas, le plus précisément possible.

Définir les actions : chaque instruction doit correspondre à une action précise (par exemple, « demander le numéro de commande à l'utilisateur » ou « appeler l'API de vérification des stocks »), afin de réduire l'ambiguïté.

Envisager les exceptions : prévoir les situations inattendues (par exemple, l'utilisateur fournit des informations incomplètes ou pose des questions étranges), et indiquer à l'agent comment les gérer, par exemple en utilisant un processus de secours ou en demandant de l'aide.

Méthode avancée : vous pouvez utiliser des modèles avancés comme o1 ou o3-mini pour convertir automatiquement vos documents en instructions d'agent structurées ! Une aubaine pour les fainéants !

L'art de diriger un agent : combat individuel ou travail d'équipe ?

Une fois les « trois éléments » réunis, l'agent peut fonctionner. Mais comment le faire fonctionner plus efficacement et traiter des tâches plus complexes ? Cela implique l'art de l'orchestration (Orchestration). OpenAI présente deux modes principaux :

Systèmes mono-agent (Single-agent systems) :

Concept : un seul agent gère tout. En lui ajoutant continuellement de nouveaux outils, on étend son champ d'action.

Avantages : structure simple, facile à utiliser, maintenance et évaluation relativement faciles.

Scénarios adaptés : point de départ de la plupart des tâches. Il est préférable d'exploiter au maximum le potentiel d'un seul agent.

Implémentation : on utilise généralement une boucle pour exécuter l'agent, lui permettant de réfléchir, d'utiliser des outils et d'obtenir des résultats jusqu'à ce que les conditions de sortie soient remplies (par exemple, la tâche est terminée, une intervention humaine est nécessaire ou le nombre maximal d'étapes est atteint).

Techniques avancées : lorsque les tâches deviennent complexes, vous pouvez utiliser des « modèles de prompt » + des variables pour adapter un agent de base à différents scénarios, au lieu de créer un ensemble d'instructions distinctes pour chaque scénario.

Systèmes multi-agents (Multi-agent systems) :

Concept : lorsqu'un seul agent est insuffisant (par exemple, la logique est trop complexe ou le nombre d'outils trop important pour éviter toute confusion), il est nécessaire de constituer une équipe d'agents.

Quand envisager :

Logique trop complexe (Complex logic) : lorsque les instructions contiennent trop de branchements if-else, les modèles deviennent volumineux et difficiles à maintenir.

Surcharge d'outils (Tool overload) : le nombre d'outils n'est pas un problème, mais il est important que les outils aient des fonctions similaires et soient faciles à confondre. Si l'optimisation de la description et des paramètres des outils ne suffit pas, il est nécessaire de les diviser. (Expérience : plus de 10 à 15 outils clairement définis ne posent généralement pas de problème, mais si la définition des outils est floue, quelques-uns peuvent désorienter l'agent).

Deux modes de collaboration principaux :

Mode gestionnaire (Manager Pattern - agents as tools) :

Analogie : un agent « chef de projet » dirige une équipe d'agents « experts » (par exemple, « agent traducteur », « agent de recherche », « agent rédacteur »). Le gestionnaire est responsable de la coordination générale et accomplit des tâches complexes en faisant appel à des agents experts (en les utilisant comme outils). L'utilisateur n'interagit qu'avec le gestionnaire.

Avantages : contrôle clair du processus, expérience utilisateur unifiée.

Scénarios : tâches nécessitant un contrôle centralisé et une intégration des résultats.

Mode décentralisé (Decentralized Pattern - agents handing off to agents) :

Analogie : comme une chaîne de montage ou un service d'orientation dans un hôpital. Un agent termine sa partie et transmet la tâche à l'agent suivant. Le contrôle est directement transféré.

Avantages : chaque agent est plus spécialisé, structure flexible.

Scénarios : répartition des conversations, tâches nécessitant le traitement séquentiel par différents experts (par exemple, système de service client, un agent de triage détermine d'abord le type de problème, puis le transmet à un « agent de commande » ou à un « agent de support technique »).

Avantages du SDK OpenAI : contrairement à certains frameworks qui nécessitent de dessiner au préalable un organigramme, le SDK Agents d'OpenAI prend en charge une approche plus flexible « code first », vous permettant d'exprimer la collaboration complexe des agents à l'aide de la logique de programmation, de manière plus dynamique et adaptable aux changements.

Cinquième étape : équiper l'agent d'un « casque de sécurité » et d'un « talisman » - Garde-fous (Guardrails)

La puissance des agents est une bonne chose, mais s'ils agissent comme des chevaux sauvages, cela peut poser problème ! Par exemple, divulgation de vos données privées, déclarations inappropriées ou manipulation par des personnes malveillantes (prompt injection). Les garde-fous (Guardrails) sont donc indispensables !

Les garde-fous sont comme des filets de sécurité pour l'agent, garantissant son fonctionnement sûr et fiable dans des limites contrôlées. Les types de garde-fous courants incluent :

Classificateur de pertinence (Relevance classifier) : empêche l'agent de répondre à des questions hors sujet (par exemple, si vous lui demandez de traiter une commande, il ne devrait pas vous raconter des histoires).

Classificateur de sécurité (Safety classifier) : détecte et bloque les entrées malveillantes, telles que les invites « d'évasion » visant à obtenir des instructions système.

Filtre PII (PII filter) : empêche l'agent de produire des contenus contenant des informations d'identification personnelle (comme le nom, le numéro de téléphone, l'adresse).

Modération de contenu (Moderation) : filtre les discours haineux, le harcèlement, la violence et autres contenus inappropriés.

Protections de sécurité des outils (Tool safeguards) : évalue le niveau de risque de chaque outil (par exemple, lecture seule contre écriture, réversibilité, impact financier), et les opérations à haut risque peuvent nécessiter une confirmation supplémentaire ou une approbation humaine.

Protections basées sur des règles (Rules-based protections) : simple mais efficace, par exemple liste noire, limitation de la longueur des entrées, expressions régulières pour filtrer les injections SQL, etc.

Validation de la sortie (Output validation) : vérifie si la réponse de l'agent est conforme à l'image de marque et aux valeurs de l'entreprise, afin d'éviter les déclarations inappropriées.

Stratégies de mise en place des garde-fous :

Bases solides : se concentrer d'abord sur la confidentialité des données et la sécurité du contenu.

Remèdes : ajouter continuellement de nouveaux garde-fous en fonction des problèmes et des échecs rencontrés en fonctionnement.

Optimisation continue : trouver un équilibre entre sécurité et expérience utilisateur, et adapter la stratégie des garde-fous à l'évolution de l'agent.

N'oubliez pas le « plan B » : intervention humaine (Human Intervention)

Même avec des garde-fous, l'agent peut rencontrer des situations qu'il ne peut pas gérer. Un mécanisme d'« appel à l'aide » élégant est alors important. Dans les cas suivants, une intervention humaine doit être déclenchée :

Échecs répétés (Exceeding failure thresholds