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 drei unterschiedliche Azure OpenAI-Clienttypen, die jeweils auf eine andere API-Oberfläche mit unterschiedlichen Toolfunktionen abzielen:
| Clienttyp | API | Am besten geeignet für |
|---|---|---|
| Chatabschluss | API für Chatabschlusse | Einfache Agents, umfassende Modellunterstützung |
| Antworten | Antwort-API- | Umfassende Agents mit gehosteten Tools (Codedolmetscher, Dateisuche, Websuche, gehostete MCP) |
| Assistenten | Assistenten-API | Server-verwaltete Agenten mit Code-Interpreter und Dateisuche |
Tipp
Informationen zu direkten OpenAI-Entsprechungen (OpenAIChatClient, OpenAIChatCompletionClient, OpenAIAssistantsClient) finden Sie auf der OpenAI-Anbieterseite. Die Toolunterstützung ist identisch.
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.
Chat-Vervollständigungs-Client
Der Chat-Vervollständigungsclient bietet eine einfache Möglichkeit zum Erstellen von Agents mithilfe der ChatCompletion-API.
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.
Antwort-Client
Der Antwortclient 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.
Assistent-Klient
Der Assistent-Client erstellt serververwaltete Agents mit integriertem Codedolmetscher und Dateisuche.
var assistantsClient = client.GetAssistantClient();
AIAgent agent = assistantsClient.AsAIAgent(
instructions: "You are a data analysis assistant.",
name: "DataHelper");
Console.WriteLine(await agent.RunAsync("Analyze trends in the uploaded data."));
Unterstützte Tools: Funktionstools, Codedolmetscher, Dateisuche, lokale MCP-Tools.
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
Alle drei Clienttypen erzeugen einen Standard AIAgent , der dieselben Agentvorgänge unterstützt (Streaming, Threads, Middleware).
Weitere Informationen finden Sie in den Lernprogrammen "Erste Schritte".
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 credential oder azure_endpoint, api_version-Konfiguration, nachdem Sie Azure ausgewählt haben, sowie base_url-Hinweise für vollständige .../openai/v1 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. Veraltete AzureOpenAI* Kompatibilitätsklassen sind noch unter agent_framework.azure für die Migration vorhanden, aber neuer Python-Code sollte agent_framework.openai verwenden. 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".