Partager via


Ajout d’outils

La page précédente a montré comment l’habillage d’un LLM dans un agent vous donne une identité, des instructions et une gestion de session persistantes. Mais même avec tout cela, l’agent ne peut générer que du contenu (texte, images, etc.) - il ne peut pas rechercher le cours boursier d’aujourd’hui, envoyer un e-mail ou interroger votre base de données. Il répond à partir des connaissances intégrées lors de l’entraînement et peu importe le contexte que vous fournissez dans l’invite.

Les outils permettent de combler ce fossé. Ils donnent à l’agent la possibilité d’agir — pour atteindre au-delà de ses données d’apprentissage et interagir avec le monde réel. L’ajout d’outils est l’étape la plus impactante que vous pouvez effectuer pour rendre un agent réellement utile.

Cas d’utilisation :

Ajoutez des outils à votre agent quand :

  • L’agent a besoin d’accéder à des données en temps réel ou externes ( prix réels, météo, enregistrements de base de données, résultats de recherche) qui ne se trouve pas dans les données d’entraînement du modèle.
  • L’agent doit effectuer des actions ( envoi d’e-mails, création de tickets, appel d’API, écriture de fichiers) au lieu de produire du contenu.

Considérations

Point à considérer Détails
Latency Chaque appel d’outil ajoute un aller-retour : le modèle génère une demande d’outil, votre code l’exécute et le résultat est renvoyé avant que le modèle puisse continuer. L'outil multifonction en fait un composé.
Surcoût des jetons Les définitions d’outils (noms, descriptions, schémas de paramètres) sont incluses dans chaque invite. Plus d'outils signifient moins de jetons disponibles pour l'historique des conversations ainsi que la réponse du modèle.
Complexité du débogage En cas de problème, la cause peut se trouver dans la sélection de l’outil du modèle, les arguments qu’il a choisis ou l’exécution de l’outil. Vous procédez ensemble au débogage du raisonnement et du code.
Fiabilité Le modèle peut appeler des outils de manière incorrecte, passer des arguments incorrects ou appeler un outil lorsqu’il ne le doit pas. Les bonnes descriptions et l’approbation des outils atténuent ce problème, mais ne l’éliminent pas.

Pourquoi les agents ont besoin d’outils

Comme décrit dans les notions de base de LLM, un LLM est formé pour générer des jetons, y compris un format structuré spécial qui représente un appel d’outil. Mais le modèle lui-même n’exécute rien. Il s’agit de votre application (ou agent Framework) qui analyse la sortie du modèle, exécute la fonction réelle et alimente le résultat.

Cela signifie que les outils ne changent pas ce que le modèle est : ils changent ce que votre agent peut faire. Sans outils, un agent est un orateur. Avec les outils, il devient un opérateur.

Considérez un agent de réservation de voyage. Sans outils, il peut discuter des vols et suggérer des itinéraires en fonction de la connaissance générale. Avec les outils, il peut :

  • Rechercher une API de vol pour la disponibilité et la tarification en temps réel
  • Réserver un vol au nom de l’utilisateur

Chacune de ces actions nécessite un outil : un élément de code que l’agent peut appeler pour interagir avec le monde extérieur.

Fonctionnement de la boucle d’appel d’outils

Lorsque vous donnez des outils d’agent, Agent Framework gère automatiquement une boucle d’appel d’outils :

┌──────────────────────────────────────────────────────┐
│  User: "What's the weather in Seattle?"              │
└──────────────┬───────────────────────────────────────┘
               ▼
┌──────────────────────────────────────────────────────┐
│  Agent sends messages + tool definitions to LLM      │
└──────────────┬───────────────────────────────────────┘
               ▼
       ┌───────────────┐
       │ LLM responds  │
       └───┬───────┬───┘
           │       │
     Tool call?    No ──────────────────────────┐
           │                                    │
           ▼                                    ▼
┌─────────────────────────────┐   ┌─────────────────────────────┐
│  Agent Framework executes   │   │  Final response:            │
│  the tool (e.g.,            │   │  "It's cloudy in Seattle    │
│  get_weather("Seattle"))    │   │   with a high of 15°C."     │
└──────────────┬──────────────┘   └─────────────────────────────┘
               │
               ▼
┌─────────────────────────────┐
│  Agent sends tool result    │
│  back to the LLM            │
└──────────────┬──────────────┘
               │
               └──────► (back to "LLM responds")

Diagramme montrant la boucle d’appel d’outils : le LLM interagit avec les outils externes et la mémoire dans une boucle avant de retourner une réponse finale.

Points clés :

  1. Vous n’avez pas besoin d’écrire la boucle. Agent Framework gère les appels d’outils de détection dans la réponse du modèle, l’exécution des outils et l’alimentation des résultats. Vous définissez les outils ; le framework orchestre le reste.
  2. Plusieurs appels d’outils par tour. Le modèle peut appeler plusieurs outils (potentiellement en parallèle) avant de produire une réponse finale , ou des appels d’outils de chaîne où la sortie d’un outil informe la suivante.
  3. Le modèle décide quand il faut appeler des outils. En fonction de la demande de l’utilisateur et des descriptions d’outils que vous fournissez, le modèle juge si un outil est nécessaire. De bonnes descriptions d’outils mènent à une meilleure sélection d’outils.

Conseil / Astuce

Pour obtenir une procédure pas à pas pratique d’ajout de votre premier outil et de voir cette boucle en action, consultez l’étape 2 : Ajouter des outils dans le didacticiel Prise en main.

Types d’outils

Agent Framework prend en charge plusieurs catégories d’outils. Le choix de celui qui convient dépend de ce que vous avez besoin de l’agent pour faire et où réside la capacité.

Outils de fonction

Les outils de fonction sont des fonctions personnalisées que vous écrivez et inscrivez auprès de l’agent. Ils s’exécutent dans votre processus, ce qui vous donne un contrôle total sur la logique, les limites de sécurité et la gestion des erreurs.

Utilisez les outils de fonction quand :

  • Vous avez une logique métier personnalisée que l’agent doit appeler (interroger une base de données, appeler une API interne, effectuer un calcul)
  • Vous avez besoin de l’outil pour s’exécuter dans votre environnement avec accès à vos ressources
  • Vous souhaitez la sécurité et la testabilité des types au moment de la compilation

Les outils de fonction sont le type d’outil le plus courant et flexible. La plupart des agents commencent ici.

Outils MCP (Protocole de contexte de modèle)

MCP est une norme ouverte qui définit la façon dont les applications fournissent des outils aux machines virtuelles. Au lieu d’écrire vous-même une logique d’outil, vous vous connectez à un serveur MCP qui expose un ensemble d’outils sur un protocole standard, comme la façon dont une API REST expose des points de terminaison.

Agent Framework prend en charge deux versions :

Saveur Présentation Quand l′utiliser ?
Outils MCP hébergés Serveurs MCP hébergés et gérés par Microsoft Foundry ou d’autres fournisseurs Vous souhaitez accéder en clé en main aux fonctionnalités courantes (par exemple, recherche de fichiers, exécution de code) sans gérer l’infrastructure
Outils MCP locaux Serveurs MCP que vous exécutez vous-même ou auquel vous vous connectez à partir de n’importe quel fournisseur Vous disposez d’un serveur MCP personnalisé ou tiers, ou vous avez besoin d’outils qui s’exécutent dans votre propre environnement

Utilisez les outils MCP quand :

  • Un serveur MCP prédéfini fournit déjà la fonctionnalité dont vous avez besoin
  • Vous souhaitez réutiliser des outils sur plusieurs agents ou applications via un serveur partagé
  • Vous intégrez un service tiers qui expose un point de terminaison MCP

Outils hébergés par un fournisseur

Certains fournisseurs offrent des outils intégrés qui s’exécutent sur l’infrastructure du fournisseur , aucun code local n’est requis. Voici quelques-uns des éléments suivants :

Outil Qu’est-ce que cela fait ?
Interpréteur de code Exécute du code dans un environnement en bac à sable sur l’infrastructure du fournisseur
Recherche de fichiers Recherche dans les fichiers que vous chargez sur le fournisseur
Recherche web Recherche des informations en temps réel sur le web

Utilisez les outils hébergés par un fournisseur quand :

  • Vous avez besoin de fonctionnalités telles que l’exécution du code ou la recherche web sans générer ou héberger l’outil vous-même
  • Le fournisseur propose déjà une version managée qui répond à vos besoins

Note

La disponibilité des outils hébergés par un fournisseur varie selon le fournisseur. Consultez la vue d’ensemble des outils pour la matrice de prise en charge complète du fournisseur.

Note

Certains fournisseurs LLM peuvent exécuter des outils hébergés sur leur infrastructure pendant l’inférence, comme l’API Réponses par OpenAI. Considérez ces services d’inférence comme des services semi-agentiques qui combinent l’inférence avec l’exécution de l’outil. Elle ne change pas le fonctionnement du modèle sous-jacent, mais cela signifie que l’exécution de l’outil peut se produire dans le cadre de la génération de réponse du service. Ces services ne peuvent pas exécuter d’outils locaux, qui doivent être exécutés sur votre propre infrastructure.

Choix du type d’outil approprié

Question Recommandation
Ai-je une logique métier personnalisée ? Outils de fonction : écrire et inscrire vos propres fonctions
Existe-t-il un serveur MCP qui fait déjà ce dont j’ai besoin ? outils MCP : connectez-vous à celui-ci au lieu de créer à partir de zéro, comme le serveur GitHub serveur MCP
Ai-je besoin d’une exécution de code, d’une recherche de fichiers ou d’une recherche web ? Outils hébergés par un fournisseur : vérifiez si votre fournisseur les prend en charge
Ai-je besoin d’outils de plusieurs catégories ? Mélangez-les : les agents peuvent utiliser des outils de fonction, des outils MCP et des outils hébergés par un fournisseur simultanément

Les descriptions des outils sont importantes

Le modèle sélectionne les outils en fonction de leurs noms et descriptions. Une description vague entraîne une mauvaise sélection d’outils : le modèle peut appeler l’outil incorrect, ignorer un outil qu’il doit utiliser ou passer des arguments incorrects.

Écrivez des descriptions d’outils de la même façon que vous écriviez un document d’API : dites ce que l’outil fait, ce que signifie chaque paramètre et ce qu’il retourne. Plus la description est claire, mieux le modèle sera en mesure de porter son jugement.

Conseil / Astuce

Les définitions d’outils (noms, descriptions, schémas de paramètres) sont incluses dans l’invite et consomment des jetons dans la fenêtre de contexte. Si vous inscrivez de nombreux outils, la surcharge peut être importante. Inscrivez uniquement les outils dont l’agent a réellement besoin.

Approbation de l’outil : human-in-the-loop

Certaines actions sont sensibles : transfert d’argent, suppression d’enregistrements, envoi d’e-mails. Vous ne souhaiterez peut-être pas que l’agent exécute ces outils de manière autonome. L’approbation de l’outil vous permet de demander une confirmation humaine avant l’exécution d’un outil.

Lorsqu’un outil est marqué comme nécessitant une approbation, l’agent s’interrompt avant l’exécution et retourne une réponse indiquant que l’approbation est nécessaire. Votre application est chargée de présenter cela à l’utilisateur et de renvoyer sa décision.

Ce modèle est souvent appelé human-in-the-loop et est essentiel pour la création d’agents dignes de confiance qui gèrent des actions consécutives.

Pièges courants

Piège Conseils
Trop d’outils Chaque définition d’outil consomme des jetons. Inscrivez uniquement les outils correspondant à l’objectif de l’agent.
Descriptions vagues « Effectuer des opérations avec des données » n’aidera pas le modèle. Soyez spécifique : « Interroge la base de données d’inventaire pour la disponibilité des produits par référence SKU ».
Aucune gestion des erreurs Les outils peuvent échouer (erreurs réseau, entrée non valide). Retournez des messages d’erreur clairs afin que le modèle puisse raisonner sur ce qui s’est passé et réessayer ou informer l’utilisateur.
Outils trop permissifs Un outil qui peut « exécuter n’importe quelle requête SQL » est un risque de sécurité. Limitez les outils à des opérations spécifiques et bien définies.
Approbation manquante sur les actions sensibles Si un outil peut apporter des modifications irréversibles, ajoutez l’approbation de l’outil pour conserver un humain dans la boucle.

Mention spéciale : Outil Interpréteur de code

Comme indiqué dans les notions de base de LLM, les machines virtuelles LLM peuvent faire des erreurs dans des calculs précis et une logique formelle. Cela est dû au fait que les LLM génèrent des réponses token par token en fonction de la correspondance de motifs. Ils ne calculent pas réellement. Lorsqu'on demande à un LLM de multiplier deux grands nombres, il n'effectue pas d'arithmétique ; il prédit à quoi 'ressemble' la réponse en fonction des données sur lesquelles il a été entraîné. Cela fonctionne étonnamment souvent, mais échoue de façon imprévisible sur les cas de périphérie.

L’interpréteur de code résout ce problème en permettant à l’agent d’écrire et d’exécuter du code dans un environnement bac à sable (sandbox). Au lieu de deviner la réponse, le modèle écrit un script Python qui le calcule exactement, l’exécute et utilise le résultat vérifié dans sa réponse.

Note

Le modèle peut écrire un script légèrement différent chaque fois qu’il est demandé de résoudre le même problème, mais les résultats doivent être principalement cohérents.

Avertissement

L’interpréteur de code n’est pas un remplacement du raisonnement prudent de la part de l’homme. Vérifiez toujours le travail de l’agent et vérifiez les résultats indépendamment si nécessaire.

Dotez votre agent d'un interpréteur de code lorsque c'est nécessaire :

  • Effectuer des calculs précis — modélisation financière, analyse statistique, conversions unitaires — où une « meilleure estimation » approximative n’est pas acceptable.
  • Transformez ou analysez des données : analysez les CSV, agréger des lignes, générer des graphiques ou remodeler des données structurées.
  • Traiter les fichiers : lire des documents chargés, extraire du contenu, convertir des formats ou générer de nouveaux fichiers.
  • Validez son propre raisonnement : écrivez du code de test pour vérifier une revendication logique avant de le présenter à l’utilisateur.

Conseil / Astuce

L’interpréteur de code peut être un outil hébergé par un fournisseur : le code s’exécute sur l’infrastructure du fournisseur dans un bac à sable, et non dans votre environnement. Cela permet d’utiliser en toute sécurité sans vous soucier du code arbitraire qui s’exécute sur vos serveurs. Pour plus d’informations sur l’installation, consultez la référence de l’interpréteur de code .

Étapes suivantes

Une fois que votre agent dispose d’outils, l’étape suivante consiste à découvrir les compétences : packages portables d’instructions, documents de référence et scripts qui donnent aux agents une expertise de domaine qu’ils peuvent charger à la demande.

Aller plus loin :