Ajouter des outils à l’agent Azure AI
Tip
Pour plus d’informations, consultez l’onglet Texte et images !
Les outils permettent à votre agent d’agir : appeler des API, exécuter du code, rechercher des fichiers ou interagir avec des services externes. Sans outils, un agent peut uniquement générer du texte en fonction de ce qu’il sait déjà. Avec des outils, il devient capable d’agir sur le monde.
Le framework d’agent Microsoft prend en charge deux grandes catégories d’outils : les outils fournis par le service hébergés et gérés par le fournisseur et les outils de fonction personnalisés que vous écrivez vous-même et inscrivez-vous auprès de l’agent.
Outils fournis par le service
Lorsque vous utilisez le fournisseur Foundry, une gamme d’outils hébergés est disponible sans implémentation supplémentaire. Vous les activez en les incluant dans la configuration de l’agent, le fournisseur gère l’exécution réelle.
Les outils fournis par le service les plus couramment utilisés sont les suivants :
| Outil | Qu’est-ce que cela fait ? |
|---|---|
| Interpréteur de code | Exécute Python code dans un environnement bac à sable (sandbox) pour les calculs et l’analyse des données |
| Recherche de fichiers | Recherche et récupère des informations dans les documents importés |
| Recherche web | Récupère des informations à jour sur Internet |
| Outils MCP hébergés | Serveurs MCP (Protocole de contexte de modèle) appelés directement par le runtime du fournisseur |
| Recherche Azure AI | Interroge un index Recherche Azure AI via une connexion Foundry |
| Boîtes à outils Foundry | Packages nommés et versionnés de configurations d’outils hébergés gérés dans un projet Foundry |
Note
Certains outils, notamment Recherche Azure AI, Bing Grounding, SharePoint et d’autres, sont en préversion ou expérimentales. Ils sont disponibles pour les agents Foundry, mais peuvent avoir un support limité entre d’autres fournisseurs.
Outils de fonction personnalisés
Les outils de fonction personnalisés vous permettent d’étendre votre agent avec n’importe quelle logique dont vous avez besoin : appel d’API internes, interrogation de bases de données, calculs ou autre chose qu’une fonction Python peut faire.
Pour inscrire une fonction en tant qu’outil, vous la transmettez directement à l’agent lors de la création. L’infrastructure inspecte la signature de la fonction et génère un schéma qui indique au modèle ce que fait la fonction, les paramètres attendus et ce qu’elle retourne.
Pour que le modèle appelle un outil de manière fiable, votre fonction doit être clairement décrite. Agent Framework prend en charge deux approches :
-
Annotations de type avec des descriptions—utilisez le type
Annotatedde Python avec une description de champ pour chaque paramètre. La docstring de la fonction sert de description de l’outil. -
Décorateur
@tool: spécifiez explicitement le nom et la description de l’outil en tant qu’arguments décoratifs, ce qui vous donne un contrôle total sur ce que le modèle voit. Vous pouvez également fournir un schéma explicite à l’aide d’un modèle Pydantic si vous avez besoin d’un contrôle précis sur la structure d’entrée.
Dans les deux cas, l’infrastructure gère automatiquement la génération de schéma et l’appel d’outil. Lorsque le modèle détermine qu’un outil doit être appelé, l’infrastructure exécute la fonction et retourne le résultat au modèle avant la génération de la réponse finale.
Ajout de plusieurs outils
Vous pouvez inscrire plusieurs outils auprès d’un seul agent. Transmettez une liste de fonctions lors de la création de l’agent, et le modèle sélectionne automatiquement l’outil le plus approprié pour chaque partie de la conversation. Vous n’avez pas besoin d’écrire de logique de routage : l’infrastructure gère l’orchestration des outils en fonction du contexte de conversation et des descriptions des outils que vous fournissez.
Approbation de l’outil
Pour les scénarios où les appels d’outils doivent nécessiter une révision humaine avant l’exécution, Agent Framework prend en charge un modèle d’approbation d’outil . Lorsque le mode d’approbation est activé sur un outil, l’agent s’interrompt avant d’appeler cette fonction et demande la confirmation. Cela est utile pour les actions irréversibles, coûteuses ou impliquant des données sensibles. Le comportement d’approbation peut être configuré pour chaque outil à l’aide du paramètre approval_mode dans le décorateur @tool.
Utilisation d’un agent en tant qu’outil
Les agents peuvent être composés en utilisant un agent comme outil pour un autre. Vous convertissez un agent interne en outil de fonction et transmettez-le à un agent externe, qui peut ensuite lui déléguer des tâches spécifiques. Cela permet des conceptions modulaires où des agents spécialisés gèrent des domaines particuliers et un agent de coordination acheminent les demandes entre eux, un modèle exploré plus en détail dans le module multi-agent.
Meilleures pratiques pour les outils personnalisés
- Écrire des descriptions claires : la possibilité de choisir l’outil approprié dépend entièrement des descriptions que vous fournissez. Soyez spécifique sur ce que fait la fonction et quand elle doit être utilisée.
- Annotez chaque paramètre : décrivez chaque entrée afin que le modèle puisse construire des appels valides, en particulier lorsque les noms de paramètres seuls ne sont pas explicites.
- Retourner des données significatives : les outils doivent retourner une sortie structurée et interprétable. Le modèle utilise la valeur de retour directement lors de la formation de sa réponse.
- Gardez l’accent sur les outils : chaque outil doit bien faire une chose. La combinaison de plusieurs responsabilités en une seule fonction rend plus difficile pour le modèle de l’appeler correctement.
- Gérez correctement les erreurs : si un outil rencontre une entrée inattendue ou qu’un service externe échoue, retournez un message d’erreur informatif plutôt que de déclencher une exception, afin que le modèle puisse répondre utilement.