Agents d'Azure OpenAI

Microsoft Agent Framework prend en charge deux types de clients OpenAI Azure, chacun ciblant une surface d’API différente avec différentes fonctionnalités d’outil. Les réponses sont le client principal recommandé : il prend en charge l’ensemble complet d’outils hébergés. Utilisez Chat Completion lorsque vous avez besoin d’une large compatibilité avec les modèles ou si vous disposez déjà d’une intégration Chat Completions que vous souhaitez conserver.

Type de Client API Idéal pour
Réponses (recommandées) API de réponses Agents complets avec des outils hébergés (interpréteur de code, recherche de fichiers, recherche web, MCP hébergé)
Complétion de chat API de complétions de chat Agents simples, prise en charge étendue des modèles

Conseil / Astuce

Pour obtenir des équivalents OpenAI directs (OpenAIChatClient, OpenAIChatCompletionClient), consultez la page du fournisseur OpenAI. La prise en charge de l’outil est identique.

Note

L’API Azure d’Assistants OpenAI est déconseillée. Le nouveau code doit utiliser le client Réponses. Si vous effectuez une migration à partir d’une application basée sur Assistants existante, consultez le guide de migration Noyau sémantique.

Getting Started

Ajoutez les packages NuGet requis à votre projet.

dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease

Tous les types de clients Azure OpenAI commencent par créer un AzureOpenAIClient:

using System;
using Azure.AI.OpenAI;
using Azure.Identity;
using Microsoft.Agents.AI;

AzureOpenAIClient client = new AzureOpenAIClient(
    new Uri("https://<myresource>.openai.azure.com"),
    new DefaultAzureCredential());

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.

Réponses du client

Le client Réponses est le client principal recommandé et fournit la prise en charge des outils les plus riches, notamment l’interpréteur de code, la recherche de fichiers, la recherche web et le MCP hébergé.

var responsesClient = client.GetResponseClient("gpt-4o-mini");

AIAgent agent = responsesClient.AsAIAgent(
    instructions: "You are a helpful coding assistant.",
    name: "CodeHelper");

Console.WriteLine(await agent.RunAsync("Write a Python function to sort a list."));

Outils pris en charge : Outils de fonction, approbation des outils, interpréteur de code, recherche de fichiers, recherche web, mcP hébergé, outils MCP locaux.

Client d’achèvement de conversation

Le client Chat Completion offre un moyen simple de créer des agents à l’aide de l’API Chat Completions. Utilisez-le lorsque vous avez besoin d’une large compatibilité avec les modèles ou que vous disposez déjà d’une intégration Chat Completions.

var chatClient = client.GetChatClient("gpt-4o-mini");

AIAgent agent = chatClient.AsAIAgent(
    instructions: "You are good at telling jokes.",
    name: "Joker");

Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));

Outils pris en charge : Outils de fonction, recherche web, outils MCP locaux.

Assistants du Client

Note

L’API Azure d’Assistants OpenAI est déconseillée. Agent Framework ne documente plus un client Assistants : utilisez le client Réponses ci-dessus pour le nouveau code. Pour migrer une application existante, consultez le guide de migration Noyau sémantique.

Outils de fonction

Vous pouvez fournir des outils de fonction personnalisés à n’importe quel agent Azure OpenAI :

using System.ComponentModel;
using Microsoft.Extensions.AI;

[Description("Get the weather for a given location.")]
static string GetWeather([Description("The location to get the weather for.")] string location)
    => $"The weather in {location} is cloudy with a high of 15°C.";

AIAgent agent = new AzureOpenAIClient(
    new Uri(endpoint),
    new DefaultAzureCredential())
     .GetChatClient(deploymentName)
     .AsAIAgent(instructions: "You are a helpful assistant", tools: [AIFunctionFactory.Create(GetWeather)]);

Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

Réponses en continu

await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
    Console.Write(update);
}

Conseil / Astuce

Consultez les exemples .NET pour obtenir des exemples exécutables complets.

Utilisation de l’agent

Les deux types de clients produisent une norme AIAgent qui prend en charge les mêmes opérations d’agent (streaming, threads, middleware).

Pour plus d’informations, consultez les didacticiels De prise en main.

Tools

Les clients Azure OpenAI .NET partagent leur surface d’outil avec les clients OpenAI correspondants. Consultez la page du fournisseur OpenAI pour la matrice complète par client — les variantes Azure de Responses et de Chat Completion reflètent leurs équivalents OpenAI directs.

Tool Responses Fin de la conversation
Outils de fonction
Approbation de l’outil
Interpréteur de code
Recherche de fichiers
Recherche web
Outils MCP hébergés
Outils MCP locaux

Note

Approbation de l’outil est fournie par le client de chat d’invocation de fonctions du framework, de sorte qu’elle fonctionne avec tout appel à un outil de fonction, quelle que soit l’API sous-jacente.

Conseils Python

Important

Les conseils d’Azure OpenAI Python se trouvent désormais sur la page du fournisseur OpenAI. Utilisez cette page pour OpenAIChatCompletionClient, OpenAIChatClient et OpenAIEmbeddingClient, le mappage entre le nom du déploiement et model, des entrées de routage Azure explicites telles que credential ou azure_endpoint, la configuration après avoir sélectionné Azure, ainsi que des conseils pour les URL complètes api_version. S’il OPENAI_API_KEY est également présent, les clients génériques restent sur OpenAI, sauf si vous transmettez des entrées de routage Azure explicites. Si AZURE_OPENAI_* seuls les paramètres sont présents, le basculement de l’environnement Azure fonctionne toujours. Les anciennes classes de compatibilité Python AzureOpenAI* ont été supprimées de l’espace de noms actuel agent_framework.azure , donc migrez du code plus ancien vers agent_framework.openai. Pour les nouvelles solutions Python, nous vous recommandons de déployer des modèles avec Microsoft Foundry et de s'y connecter avec FoundryChatClient plutôt que de continuer sur le parcours spécifique à Azure OpenAI. Si vous avez besoin de points de terminaison du projet Foundry ou du service de l'agent Foundry à la place, consultez la page du fournisseur Foundry. Pour obtenir une liste de contrôle de migration plus large, consultez le guide des modifications significatives de Python.

Tools

Python Azure OpenAI utilise les mêmes clients agent_framework.openai qu’OpenAI directement ; l’ensemble des outils disponibles est donc identique. Consultez la section Outils de la page du fournisseur OpenAI pour obtenir la matrice complète par client.

Prochaines étapes