Freigeben über


Azure OpenAI-Agents

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".

Nächste Schritte