Agenti OpenAI di Azure

Microsoft Agent Framework supporta due tipi di client OpenAI Azure, ognuno destinato a una superficie API diversa con diverse funzionalità degli strumenti. Le risposte sono il client primario consigliato: supporta il set completo di strumenti ospitati. Usa Chat Completion quando ti serve un'ampia compatibilità con i modelli o se hai un'integrazione esistente con Chat Completions da mantenere.

Tipo di client API Ideale per
Risposte (scelta consigliata) API delle risposte Agenti completi con strumenti ospitati (interprete del codice, ricerca di file, ricerca Web, MCP ospitato)
Completamento conversazione API di completamento chat Agenti semplici, supporto generale del modello

Suggerimento

Per gli equivalenti OpenAI diretti (OpenAIChatClient, OpenAIChatCompletionClient), vedere la pagina del provider OpenAI. Il supporto dello strumento è identico.

Note

L'API Azure OpenAI Assistants è deprecata. Il nuovo codice deve usare il client Risposte. Se si esegue la migrazione da un'app basata su Assistenti esistente, vedere la guida alla migrazione Kernel semantico.

Come iniziare

Aggiungere i pacchetti NuGet necessari al progetto.

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

Tutti i tipi di client OpenAI di Azure iniziano creando un oggetto 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());

Avviso

DefaultAzureCredential è utile per lo sviluppo, ma richiede un'attenta considerazione nell'ambiente di produzione. Nell'ambiente di produzione prendere in considerazione l'uso di credenziali specifiche ,ad esempio ManagedIdentityCredential, per evitare problemi di latenza, probe di credenziali indesiderate e potenziali rischi per la sicurezza dai meccanismi di fallback.

Risposte del cliente

Il client Risposte è il client primario consigliato e offre il supporto più ricco di strumenti, tra cui interprete del codice, ricerca di file, ricerca Web e MCP ospitato.

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

Strumenti supportati: Strumenti per le funzioni, approvazione degli strumenti, interprete del codice, ricerca di file, ricerca Web, MCP ospitato, strumenti MCP locali.

Client per il completamento della chat

Il client Chat Completion offre un modo semplice e diretto per creare agenti tramite l'API Chat Completions. Usalo quando hai bisogno di un'ampia compatibilità con i modelli o se hai già un'integrazione esistente di 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."));

Strumenti supportati: Strumenti per le funzioni, ricerca Web, strumenti MCP locali.

Assistenti alla clientela

Note

L'API Azure OpenAI Assistants è deprecata. Agent Framework non include più la documentazione di un client per Assistants — per il nuovo codice, usa il client Responses indicato sopra. Per la migrazione di un'app esistente, vedere la guida alla migrazione Kernel semantico.

Strumenti per le funzioni

È possibile fornire strumenti di funzione personalizzati a qualsiasi agente OpenAI di Azure:

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?"));

Risposte in streaming

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

Uso dell'agente

Entrambi i tipi client producono uno standard AIAgent che supporta le stesse operazioni dell'agente (streaming, thread, middleware).

Per altre informazioni, vedere le esercitazioni introduttive.

Tools

I client .NET OpenAI Azure condividono la superficie degli strumenti con i client OpenAI corrispondenti. Consulta la pagina del provider OpenAI per la matrice completa per ciascun client — le varianti Azure di Responses e Chat Completions rispecchiano i rispettivi equivalenti diretti di OpenAI.

Strumento Responses Completamento della chat
Strumenti per le funzioni
Approvazione degli strumenti
Interprete di codice
Ricerca file
Ricerca Web
Strumenti MCP ospitati
Strumenti MCP locali

Note

L'approvazione dello strumento viene fornita dal client di chat di richiamo della funzione del framework, quindi funziona con qualsiasi chiamata dello strumento di funzione indipendentemente dall'API sottostante.

Linee guida per Python

Importante

Le linee guida per Python OpenAI di Azure ora si trovano nella pagina del provider OpenAI. Usa quella pagina per il mapping dei OpenAIChatCompletionClient nomi di distribuzione, input espliciti di routing di Azure come OpenAIChatClient o OpenAIEmbeddingClient, configurazione model dopo aver selezionato Azure, oltre a indicazioni credential per gli URL completi di azure_endpoint. Se OPENAI_API_KEY è anche presente, i client generici rimangono in OpenAI a meno che non si passino input di routing espliciti su Azure. Se sono presenti solo le impostazioni AZURE_OPENAI_*, il fallback dell'ambiente di Azure funziona ancora. Le classi di compatibilità Python AzureOpenAI* precedenti sono state rimosse dallo spazio dei nomi corrente agent_framework.azure , quindi eseguire la migrazione del codice precedente a agent_framework.openai. Per le nuove soluzioni Python, è consigliabile distribuire modelli con Microsoft Foundry e connetterli con FoundryChatClient anziché rimanere nel percorso specifico di Azure OpenAI. Se invece sono necessari endpoint di progetto Foundry o il servizio agente Foundry, vedere la pagina del provider Foundry. Per un elenco di controllo della migrazione più ampio, vedere la guida alle modifiche significative di Python.

Tools

Azure OpenAI per Python usa gli stessi client agent_framework.openai di OpenAI diretto, quindi il set di strumenti è identico. Vedere la sezione Strumenti nella pagina del provider OpenAI per la matrice completa per client.

Passaggi successivi