Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Microsoft Agent Framework admite dos tipos de cliente de OpenAI Azure, cada uno de los cuales tiene como destino una superficie de API diferente con distintas funcionalidades de herramientas. Las respuestas son el cliente principal recomendado: admite el conjunto completo de herramientas hospedadas. Usa Chat Completion cuando necesites compatibilidad con una amplia gama de modelos o ya tengas una integración con Chat Completions que quieras conservar.
| Tipo de cliente: | API | Mejor para |
|---|---|---|
| Respuestas (recomendadas) | API de respuestas | Agentes completos con herramientas hospedadas (intérprete de código, búsqueda de archivos, búsqueda web, MCP hospedado) |
| Finalización del chat | API de finalizaciones de chat | Agentes simples, compatibilidad amplia con modelos |
Sugerencia
Para obtener equivalentes directos de OpenAI (OpenAIChatClient, OpenAIChatCompletionClient), consulte la página del proveedor de OpenAI. El soporte de herramientas es idéntico.
Note
La API de asistentes de OpenAI de Azure está en desuso. El nuevo código debe usar el cliente de respuestas. Si va a migrar desde una aplicación basada en asistentes existente, consulte la guía de migración Kernel semántico.
Introducción
Agregue los paquetes NuGet necesarios al proyecto.
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Todos los tipos de cliente de Azure OpenAI comienzan creando un 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());
Advertencia
DefaultAzureCredential es conveniente para el desarrollo, pero requiere una consideración cuidadosa en producción. En producción, considere usar una credencial específica (por ejemplo, ManagedIdentityCredential) para evitar problemas de latencia, sondeos de credenciales no deseados y posibles riesgos de seguridad de los mecanismos de respaldo.
Cliente de respuestas
El cliente de respuestas es el cliente principal recomendado y proporciona la compatibilidad con herramientas más ricas, como el intérprete de código, la búsqueda de archivos, la búsqueda web y el MCP hospedado.
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."));
Herramientas admitidas: Herramientas de funciones, aprobación de herramientas, intérprete de código, búsqueda de archivos, búsqueda web, MCP hospedado, herramientas de MCP locales.
Cliente de finalización de chat
El cliente de finalización de chat proporciona una manera sencilla de crear agentes mediante la API de finalizaciones de chat. Úselo cuando necesite compatibilidad con una amplia gama de modelos o tenga una integración existente con 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."));
Herramientas admitidas: Herramientas de funciones, búsqueda web, herramientas de MCP locales.
Cliente de asistentes
Note
La API de asistentes de OpenAI de Azure está en desuso. El Agent Framework ya no incluye documentación sobre un cliente de Assistants; use el cliente Responses anterior para el código nuevo. Para migrar una aplicación existente, consulte la guía de migración Kernel semántico.
Herramientas de funciones
Puede proporcionar herramientas de función personalizadas a cualquier agente de Azure OpenAI:
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?"));
Respuestas de streaming
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.Write(update);
}
Sugerencia
Consulte los ejemplos de .NET para obtener ejemplos completos de ejecución.
Uso del agente
Ambos tipos de cliente generan un estándar AIAgent que admite las mismas operaciones del agente (streaming, subprocesos, middleware).
Para obtener más información, consulte los tutoriales de introducción.
Herramientas
Los clientes de Azure OpenAI .NET comparten su conjunto de herramientas con los correspondientes clientes de OpenAI. Consulte la página del proveedor de OpenAI para obtener la matriz completa por cliente — las variantes de Azure de Responses y Chat Completions reflejan sus equivalentes directos de OpenAI.
| Herramienta | Respuestas | Finalización del chat |
|---|---|---|
| Herramientas de funciones | ✅ | ✅ |
| Aprobación de herramientas | ✅ | ✅ |
| Intérprete de código | ✅ | ❌ |
| Búsqueda de archivos | ✅ | ❌ |
| Búsqueda web | ✅ | ✅ |
| Herramientas de MCP hospedadas | ✅ | ❌ |
| Herramientas de MCP locales | ✅ | ✅ |
Note
La aprobación de herramientas la proporciona el cliente de chat de invocación de funciones del marco, por lo que funciona con cualquier llamada a función-herramienta independientemente de la API subyacente.
Guía de Python
Importante
Las instrucciones de Azure OpenAI de Python ahora se encuentran en la página del proveedor de OpenAI. Use esa página para OpenAIChatCompletionClient, OpenAIChatClient y OpenAIEmbeddingClient, mapeo de nombre de implementación a model, entradas explícitas de enrutamiento de Azure como credential o azure_endpoint, configuración de api_version después de seleccionar Azure, además de base_url guía para URLs completas .../openai/v1. Si OPENAI_API_KEY también está presente, los clientes genéricos se quedan en OpenAI a menos que se proporcionen entradas explícitas de enrutamiento de Azure. Si solo están presentes las configuraciones AZURE_OPENAI_*, la reserva del entorno de Azure sigue funcionando. Las clases de compatibilidad de Python AzureOpenAI* antiguas se quitaron del espacio de nombres actual agent_framework.azure , por lo que migre código anterior a agent_framework.openai. Para las nuevas soluciones de Python, se recomienda implementar modelos con Microsoft Foundry y conectarse a ellos en FoundryChatClient lugar de permanecer en la ruta de acceso específica de Azure OpenAI. Si necesita endpoints del proyecto de Foundry o el servicio del agente Foundry, consulte la página del proveedor de Foundry. Para obtener una lista de comprobación de migración más amplia, consulte la guía de cambios significativos de Python.
Herramientas
Python Azure OpenAI usa los mismos clientes de agent_framework.openai que OpenAI directamente, por lo que la interfaz de herramientas es idéntica. Consulte la sección Herramientas de la página proveedor de OpenAI para obtener la matriz completa por cliente.