Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Agent Framework prend en charge de nombreux types d’outils différents qui étendent les fonctionnalités de l’agent. Les outils permettent aux agents d’interagir avec des systèmes externes, d’exécuter du code, de rechercher des données, etc.
Types d’outils
| Type d’outil | Descriptif |
|---|---|
| Outils de fonction | Code personnalisé que les agents peuvent appeler pendant les conversations |
| Interpréteur de code | Exécuter du code dans un environnement bac à sable (sandbox) |
| Recherche de fichiers | Rechercher dans des fichiers chargés |
| Recherche web | Rechercher des informations sur le web |
| Outils MCP hébergés | Serveurs MCP appelés par le runtime du fournisseur |
| Outils MCP locaux | Serveurs MCP s’exécutant localement ou sur des hôtes personnalisés |
| Boîtes à outils Foundry | Offres groupées avec version des configurations d’outils hébergées gérées dans un projet Foundry |
| Type d’outil | Descriptif |
|---|---|
| Outils de fonction | Code personnalisé que les agents peuvent appeler pendant les conversations |
| Interpréteur de code | Exécuter du code dans un environnement bac à sable (sandbox) |
| Recherche de fichiers | Rechercher dans des fichiers chargés |
| Recherche web | Rechercher des informations sur le web |
| Outils MCP hébergés | Serveurs MCP appelés par le runtime du fournisseur |
| Outils MCP locaux | Serveurs MCP s’exécutant localement ou sur des hôtes personnalisés |
| Boîtes à outils Foundry | Offres groupées avec version des configurations d’outils hébergées gérées dans un projet Foundry |
| Génération d’images | Génération d’image hébergée sur le runtime Des réponses Foundry / OpenAI |
| Shell | Exécution de l'interpréteur de commandes hébergé sur le runtime Des réponses OpenAI , distincte des outils de runtime d'interpréteur de commandes/fichiers/URL intégrés de l'interface cli GitHub Copilot |
| Fondation Bing | Mise à l’terre web via votre propre base avec la ressource Recherche Bing – expérimentale |
| Recherche personnalisée Bing | Mise à l’terre Bing limitée à une liste de domaines organisés – préversion |
| Recherche Azure AI | Interroger un index Recherche Azure AI par le biais d’une connexion Foundry — expérimental |
| SharePoint | Réponses de base dans SharePoint contenu — préversion |
| Microsoft Fabric | Interroger un agent de données Fabric — préversion |
| Recherche de mémoire | Rechercher dans un magasin de mémoire géré par Foundry – préversion |
| Utilisation de l’ordinateur | Lecteur d’un environnement de bureau ou de navigateur — préversion |
| Automatisation des navigateurs | Lecteur d’un navigateur via Azure Playwright — préversion |
| Outil Agent-to-Agent (A2A) | Appeler un agent A2A distant en tant qu’outil à partir d’un agent Foundry – préversion |
Note
Les outils marqués comme expérimentaux ou en préversion sont documentés sur la page du fournisseur approprié et émettent ExperimentalWarning une première fois qu’ils sont utilisés dans un processus.
Approbation de l’outil
L’approbation de l’outil est une fonctionnalité de framework qui vous permet de passer à chaque appel d’outil ( outils de fonction, outils hébergés, appels d’outils MCP) par le biais d’une décision humaine dans la boucle avant que le modèle ne reçoive le résultat. Il est géré par le client de conversation de fonction de l'infrastructure dans les .NET et les Python, de sorte qu'il fonctionne avec n'importe quel fournisseur dont le client appelle des outils localement ; il n'est pas une fonctionnalité par fournisseur. Consultez la page Approbation de l’outil pour connaître le modèle complet, notamment la façon dont les approbations interagissent avec les sessions, la diffusion en continu et les intergiciels.
Matrice de prise en charge du fournisseur
Les fournisseurs OpenAI et Azure OpenAI offrent chacun deux types de clients ( réponses et saisie semi-automatique de conversation) avec différentes fonctionnalités d’outil. Les clients Azure OpenAI reflètent leurs équivalents OpenAI. Copilot Studio et A2A agents s’exécutent sur un service distant afin que leurs fonctionnalités soient configurées sur l’agent distant plutôt que via le client Agent Framework. Elles ne sont pas répertoriées dans la matrice.
| Type d’outil | Réponses | Saisie semi-automatique des conversations | Fonderie | Anthropic | Ollama | GitHub Copilot |
|---|---|---|---|---|---|---|
| Outils de fonction | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Interpréteur de code | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Recherche de fichiers | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Recherche web | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Outils MCP hébergés | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
| Outils MCP locaux | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Note
Les colonnes Responses et Chat Completion s’appliquent à OpenAI et Azure OpenAI , les variantes Azure reflètent la même prise en charge des outils que leurs équivalents OpenAI. L’API OpenAI déconseillée Assistants n’est plus documentée ; pour obtenir des conseils sur la migration, consultez le guide de migration Noyau sémantique.
Matrice de prise en charge du fournisseur
Les fournisseurs OpenAI et Azure OpenAI offrent chacun plusieurs types de clients avec différentes fonctionnalités d’outil. Les clients Azure OpenAI reflètent leurs équivalents OpenAI. La colonne Foundry s’applique à FoundryChatClient : pour FoundryAgent, les outils sont configurés sur la définition de l’agent Foundry (voir Ce qui fonctionne et ce qui ne fonctionne pas avec FoundryAgent).
Copilot Studio et A2A agents s’exécutent sur un service distant afin que leurs fonctionnalités soient configurées sur l’agent distant plutôt que via le client Agent Framework. Elles ne sont pas répertoriées dans la matrice.
| Type d’outil | Réponses | Saisie semi-automatique des conversations | Fonderie | Anthropic | Ollama | Foundry Local | GitHub Copilot |
|---|---|---|---|---|---|---|---|
| Outils de fonction | ✅ | ✅ | ✅ | ✅ | ⚠️¹ | ⚠️¹ | ✅ |
| Interpréteur de code | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Recherche de fichiers | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Recherche web | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Génération d’images | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
Hosted Shell (get_shell_tool) |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Interpréteur de commandes intégré / système de fichiers / extraction d’URL | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅M² |
| Outils MCP hébergés | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
| Outils MCP locaux | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Boîtes à outils Foundry | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Bing Grounding (expérimental) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Recherche personnalisée Bing (préversion) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Recherche Azure AI (expérimental) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| SharePoint (préversion) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Microsoft Fabric (préversion) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Recherche de mémoire (préversion) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Utilisation de l’ordinateur (préversion) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Browser Automation (préversion) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Outil Agent-to-Agent (A2A) ( préversion) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
¹ Dépend du modèle local choisi prenant en charge l’appel de fonction.
² Intégré au runtime cli GitHub Copilot, contrôlé par un gestionnaire d’autorisations. Surface différente de l’openAI.get_shell_tool
Note
Les colonnes Responses et Chat Completion s’appliquent à OpenAI et Azure OpenAI , les variantes Azure reflètent la même prise en charge des outils que leurs équivalents OpenAI. Les outils MCP locaux fonctionnent avec n’importe quel fournisseur qui prend en charge les outils de fonction.
Utilisation d’un agent en tant qu’outil de fonction
Vous pouvez utiliser un agent comme outil de fonction pour un autre agent, en activant la composition de l’agent et les flux de travail plus avancés. L’agent interne est converti en outil de fonction et fourni à l’agent externe, qui peut ensuite l’appeler en fonction des besoins.
Appelez-le .AsAIFunction()AIAgent pour le convertir en outil de fonction qui peut être fourni en un autre agent :
// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
new Uri("<your-foundry-project-endpoint>"),
new DefaultAzureCredential())
.AsAIAgent(
model: "gpt-4o-mini",
instructions: "You answer questions about the weather.",
name: "WeatherAgent",
description: "An agent that answers questions about the weather.",
tools: [AIFunctionFactory.Create(GetWeather)]);
// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
new Uri("<your-foundry-project-endpoint>"),
new DefaultAzureCredential())
.AsAIAgent(
model: "gpt-4o-mini",
instructions: "You are a helpful assistant.",
tools: [weatherAgent.AsAIFunction()]);
// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
Avertissement
DefaultAzureCredential est pratique pour le développement, mais nécessite une considération minutieuse en production. En production, envisagez d’utiliser des informations d’identification spécifiques (par exemple ManagedIdentityCredential) pour éviter les problèmes de latence, la détection involontaire des informations d’identification et les risques de sécurité potentiels liés aux mécanismes de secours.
Appelez .as_tool() un agent pour le convertir en outil de fonction qui peut être fourni vers un autre agent :
import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential
# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
).as_agent(
name="WeatherAgent",
description="An agent that answers questions about the weather.",
instructions="You answer questions about the weather.",
tools=get_weather
)
# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
).as_agent(
instructions="You are a helpful assistant.",
tools=weather_agent.as_tool()
)
# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)
Vous pouvez également personnaliser le nom, la description et le nom de l’argument de l’outil :
weather_tool = weather_agent.as_tool(
name="WeatherLookup",
description="Look up weather information for any location",
arg_name="query",
arg_description="The weather query or location"
)