Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Microsoft Agent Framework supporta tre tipi di client OpenAI di Azure distinti, ognuno destinato a una superficie API diversa con diverse funzionalità degli strumenti:
| Tipo di client | API | Ideale per |
|---|---|---|
| Completamento conversazione | API di completamento chat | Agenti semplici, supporto generale del modello |
| Risposte | API delle risposte | Agenti completi con strumenti ospitati (interprete del codice, ricerca di file, ricerca Web, MCP ospitato) |
| Assistenti | Assistenti API | Agenti gestiti dal server con interprete del codice e ricerca di file |
Suggerimento
Per gli equivalenti OpenAI diretti (OpenAIChatClient, OpenAIChatCompletionClient, OpenAIAssistantsClient), vedere la pagina del provider OpenAI. Il supporto dello strumento è identico.
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.
Client per il completamento della chat
Il client di completamento della chat offre un modo semplice per creare agenti usando l'API ChatCompletion.
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.
Risposte del cliente
Il client Risposte 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.
Assistenti alla clientela
Il client Assistants crea agenti gestiti dal server con interprete di codice predefinito e ricerca di file.
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."));
Strumenti supportati: Strumenti per le funzioni, interprete del codice, ricerca di file, strumenti MCP locali.
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);
}
Suggerimento
Uso dell'agente
Tutti e tre i tipi di client producono uno standard AIAgent che supporta le stesse operazioni dell'agente (streaming, thread, middleware).
Per altre informazioni, vedere le esercitazioni introduttive.
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à deprecate AzureOpenAI* esistono ancora sotto agent_framework.azure per la migrazione, ma il nuovo codice Python dovrebbe utilizzare 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.