Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Microsoft Agent Framework unterstützt zwei Azure OpenAI-Clienttypen, die jeweils auf eine andere API-Oberfläche mit unterschiedlichen Toolfunktionen ausgerichtet sind. Responses ist der primär empfohlene Client: Es unterstützt den vollständigen Umfang an gehosteten Tools. Verwenden Sie Chat Completion, wenn Sie eine breite Modellkompatibilität benötigen oder eine bestehende Chat-Completions-Integration beibehalten möchten.
| Clienttyp | API | Am besten geeignet für |
|---|---|---|
| Antworten (empfohlen) | Antwort-API- | Umfassende Agents mit gehosteten Tools (Codedolmetscher, Dateisuche, Websuche, gehostete MCP) |
| Chatabschluss | API für Chatabschlusse | Einfache Agents, umfassende Modellunterstützung |
Tipp
Informationen zu direkten OpenAI-Entsprechungen (OpenAIChatClient, OpenAIChatCompletionClientfinden Sie auf der OpenAI-Anbieterseite. Die Toolunterstützung ist identisch.
Note
Die Azure OpenAI-Assistenten-API ist veraltet. Neuer Code sollte den Antwortclient verwenden. Wenn Sie von einer vorhandenen Assistenten-basierten App migrieren, lesen Sie den Migrationsleitfaden Semantischer Kernel.
Erste Schritte
Fügen Sie dem Projekt die erforderlichen NuGet-Pakete hinzu.
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Alle Azure OpenAI-Clienttypen beginnen mit dem Erstellen einer 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());
Warnung
DefaultAzureCredential ist praktisch für die Entwicklung, erfordert aber sorgfältige Überlegungen in der Produktion. Berücksichtigen Sie in der Produktion die Verwendung bestimmter Anmeldeinformationen (z. B. ManagedIdentityCredential), um Latenzprobleme, unbeabsichtigte Abfragen von Anmeldeinformationen und potenzielle Sicherheitsrisiken durch Ausweichmechanismen zu vermeiden.
Antwort-Client
Der Antwortclient ist der empfohlene primäre Client und bietet die reichhaltigeste Toolunterstützung, einschließlich Codedolmetscher, Dateisuche, Websuche und gehosteter MCP.
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."));
Unterstützte Tools: Funktionstools, Toolgenehmigung, Codedolmetscher, Dateisuche, Websuche, gehostete MCP, lokale MCP-Tools.
Chat-Vervollständigungs-Client
Der Client für Chatabschlüsse bietet eine einfache Möglichkeit, Agenten mithilfe der API für Chatabschlüsse zu erstellen. Verwenden Sie sie, wenn Sie eine breite Modellkompatibilität benötigen oder bereits über eine Chat Completions-Integration verfügen.
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."));
Unterstützte Tools: Funktionstools, Websuche, lokale MCP-Tools.
Assistent-Klient
Note
Die Azure OpenAI-Assistenten-API ist veraltet. Das Agent-Framework dokumentiert keinen Assistenten-Client mehr – verwenden Sie für neuen Code den oben genannten Responses-Client. Informationen zum Migrieren einer vorhandenen App finden Sie im Migrationshandbuch Semantischer Kernel.
Funktionstools
Sie können benutzerdefinierte Funktionstools für jeden Azure OpenAI-Agent bereitstellen:
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?"));
Streaming-Antworten
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.Write(update);
}
Tipp
Vollständige Runnable-Beispiele finden Sie in den .NET-Beispielen .
Den Agent verwenden
Beide Clienttypen erzeugen einen Standard AIAgent , der dieselben Agent-Vorgänge unterstützt (Streaming, Threads, Middleware).
Weitere Informationen finden Sie in den Lernprogrammen "Erste Schritte".
Tools
Die Azure OpenAI .NET Clients teilen ihre Tooloberfläche mit den passenden OpenAI-Clients. Die vollständige Matrix pro Client finden Sie auf der OpenAI-Anbieterseite — die Azure-Varianten von Responses und Chat Completions entsprechen ihren direkten OpenAI-Pendants.
| Werkzeug | Antworten | Chat-Vervollständigung |
|---|---|---|
| Funktionswerkzeuge | ✅ | ✅ |
| Toolgenehmigung | ✅ | ✅ |
| Codedolmetscher | ✅ | ❌ |
| Dateisuche | ✅ | ❌ |
| Websuche | ✅ | ✅ |
| Gehostete MCP-Tools | ✅ | ❌ |
| Lokale MCP-Tools | ✅ | ✅ |
Note
Die Toolfreigabe wird vom Funktionsaufrufe unterstützenden Chatclient des Frameworks bereitgestellt und funktioniert daher bei jedem Aufruf eines Funktions-Tools unabhängig von der zugrunde liegenden API.
Python-Anleitung
Von Bedeutung
Python Azure OpenAI-Anleitungen befinden sich jetzt auf der OpenAI-Anbieterseite. Verwenden Sie diese Seite für die OpenAIChatCompletionClientZuordnung von Bereitstellungsnamen-zu-OpenAIChatClient, explizite Azure-Routingeingaben wie OpenAIEmbeddingClient oder model, credential-Konfiguration, nachdem Sie Azure ausgewählt haben, sowie azure_endpoint-Hinweise für vollständige api_version URLs. Wenn OPENAI_API_KEY auch vorhanden ist, bleiben die generischen Clients auf OpenAI, es sei denn, Sie übergeben explizite Azure-Routingeingaben. Wenn nur AZURE_OPENAI_* Einstellungen vorhanden sind, funktioniert das Fallback der Azure-Umgebung weiterhin. Die alten Python-Kompatibilitätsklassen AzureOpenAI* wurden aus dem aktuellen agent_framework.azure Namespace entfernt, also migrieren Sie älteren Code zu agent_framework.openai. Für neue Python-Lösungen empfehlen wir, Modelle mit Microsoft Foundry bereitzustellen und eine Verbindung mit FoundryChatClient ihnen herzustellen, anstatt auf dem Azure OpenAI-spezifischen Pfad zu bleiben. Wenn Sie stattdessen Foundry-Projektendpunkte oder den Foundry Agent Service benötigen, lesen Sie die Seite "Foundry-Anbieter". Eine umfassendere Migrationscheckliste finden Sie im Python-Leitfaden zu erheblichen Änderungen.
Tools
Python Azure OpenAI verwendet dieselben agent_framework.openai Clients wie direct OpenAI, sodass die Werkzeugoberfläche identisch ist. Im Abschnitt "Tools" auf der OpenAI-Anbieterseite finden Sie die vollständige Clientmatrix.