Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft Agent Framework har stöd för två Azure OpenAI-klienttyper, som var och en är inriktad på en annan API-yta med olika verktygsfunktioner. Svar är den rekommenderade primära klienten: den stöder hela uppsättningen värdbaserade verktyg. Använd Chat Completion när du behöver bred modellkompatibilitet eller har en befintlig integrering av chatten som ska behållas.
| Klienttyp | API | Bäst för |
|---|---|---|
| Svar (rekommenderas) | Api för svar | Fullständiga agenter med värdbaserade verktyg (kodtolkare, filsökning, webbsökning, värdbaserad MCP) |
| Chatten har slutförts | API för chattens slutförande | Enkla agenter, brett modellstöd |
Tip
För direkta OpenAI-motsvarigheter (OpenAIChatClient, OpenAIChatCompletionClient), se sidan OpenAI-provider. Stödet för verktyget är identiskt.
Anmärkning
API:et Azure OpenAI Assistants är inaktuellt. Ny kod bör använda svarsklienten. Om du migrerar från en befintlig assistentbaserad app kan du läsa migreringsguiden Semantic Kernel.
Getting Started
Lägg till nödvändiga NuGet-paket i projektet.
dotnet add package Azure.AI.OpenAI --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Alla Azure OpenAI-klienttyper börjar med att skapa en 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());
Varning
DefaultAzureCredential är praktiskt för utveckling men kräver noggrant övervägande i produktion. I produktion bör du överväga att använda en specifik autentiseringsuppgift (t.ex. ManagedIdentityCredential) för att undvika problem med svarstid, oavsiktlig avsökning av autentiseringsuppgifter och potentiella säkerhetsrisker från reservmekanismer.
Svarsklient
Responses-klienten är den rekommenderade primära klienten och erbjuder det mest omfattande verktygsstödet, inklusive kodtolkning, filsökning, webbsökning och hostad MCP.
var responsesClient = client.GetResponsesClient();
AIAgent agent = responsesClient.AsAIAgent(
model: "gpt-4o-mini",
instructions: "You are a helpful coding assistant.",
name: "CodeHelper");
Console.WriteLine(await agent.RunAsync("Write a Python function to sort a list."));
Verktyg som stöds: Funktionsverktyg, verktygsgodkännande, kodtolkare, filsökning, webbsökning, värdbaserad MCP, lokala MCP-verktyg.
Klient för chattens slutförande
Klienten för Chat Completion är ett enkelt sätt att skapa agenter med hjälp av Chat Completions-API:et. Använd den när du behöver bred modellkompatibilitet eller har en befintlig Chat Completions-integrering.
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."));
Verktyg som stöds: Funktionsverktyg, webbsökning, lokala MCP-verktyg.
Assistentklient
Anmärkning
API:et Azure OpenAI Assistants är inaktuellt. Agent Framework dokumenterar inte längre en Assistants-klient – använd svarsklienten ovan för ny kod. Information om hur du migrerar en befintlig app finns i migreringsguiden Semantic Kernel.
Funktionsverktyg
Du kan tillhandahålla anpassade funktionsverktyg till valfri Azure OpenAI-agent:
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?"));
Direktuppspelningssvar
await foreach (var update in agent.RunStreamingAsync("Tell me a joke about a pirate."))
{
Console.Write(update);
}
Tip
Se .NET-exemplen för fullständiga körbara exempel.
Använda agenten
Båda klienttyperna skapar en standard AIAgent som stöder samma agentåtgärder (direktuppspelning, trådar, mellanprogram).
Mer information finns i kom igång-handledningarna.
Tools
Azure OpenAI-.NET klienter delar sin verktygsyta med matchande OpenAI-klienter. Se sidan om OpenAI-providern för den fullständiga matrisen för varje klient – Azure-varianterna av Responses och Chat Completions speglar sina direkta OpenAI-motsvarigheter.
| Tool | Responses | Chatten har slutförts |
|---|---|---|
| Funktionsverktyg | ✅ | ✅ |
| Godkännande av verktyg | ✅ | ✅ |
| Kodtolkare | ✅ | ❌ |
| Filsökning | ✅ | ❌ |
| Webbsökning | ✅ | ✅ |
| Värdhanterade MCP-verktyg | ✅ | ❌ |
| Lokala MCP-verktyg | ✅ | ✅ |
Anmärkning
Godkännande av verktyg tillhandahålls av ramverkets funktionsanropande chattklient, så det fungerar med alla funktionsverktygsanrop oavsett det underliggande API:et.
Python-vägledning
Important
Python Azure OpenAI-vägledningen finns nu på sidan OpenAI-provider. Använd den sidan för OpenAIChatCompletionClient, OpenAIChatClient och OpenAIEmbeddingClient, distributionsnamn-till-mappningmodel, explicita Azure-routningsindata som credential eller azure_endpoint, konfiguration för api_version efter att Azure valts, plus base_url vägledning för fulla .../openai/v1 URL:er. Om OPENAI_API_KEY det också finns finns de allmänna klienterna kvar på OpenAI såvida du inte skickar explicita Azure-routningsindata. Om det bara finns AZURE_OPENAI_* inställningar fungerar det fortfarande med fallback-läge för Azure-miljön. De gamla Python-kompatibilitetsklasserna AzureOpenAI* togs bort från det aktuella agent_framework.azure namnområdet, så migrera äldre kod till agent_framework.openai. För nya Python-lösningar rekommenderar vi att du distribuerar modeller med Microsoft Foundry och ansluter till dem med FoundryChatClient i stället för att stanna kvar på den Azure OpenAI-specifika sökvägen. Om du behöver Foundry-projektslutpunkter eller Foundry Agent Service i stället kan du läsa sidan Foundry-provider. En bredare checklista för migrering finns i guiden viktiga ändringar i Python.
Tools
Python Azure OpenAI använder samma agent_framework.openai klienter som direkt OpenAI, så verktygsytan är identisk. Se avsnittet Verktyg på sidan OpenAI-provider för den fullständiga matrisen per klient.
Azure OpenAI
I Go använder Azure OpenAI samma openaiprovider-paket som för direkt OpenAI, med Azure-specifik klientinitialisering.
Installation
go get github.com/microsoft/agent-framework-go
Skapa en Azure OpenAI-agent
import (
"cmp"
"fmt"
"os"
"github.com/microsoft/agent-framework-go/agent"
"github.com/microsoft/agent-framework-go/provider/openaiprovider"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
openai "github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/azure"
)
endpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
deployment := os.Getenv("AZURE_OPENAI_DEPLOYMENT_NAME")
apiVersion := cmp.Or(os.Getenv("AZURE_OPENAI_API_VERSION"), "2025-01-01-preview")
token, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
panic(err)
}
a := openaiprovider.NewChatCompletionsAgent(
openai.NewClient(
azure.WithEndpoint(endpoint, apiVersion),
azure.WithTokenCredential(token),
),
openaiprovider.AgentConfig{
Model: deployment,
Instructions: "You are a helpful assistant.",
Config: agent.Config{
Name: "AzureAgent",
},
},
)
resp, err := a.RunText(ctx, "Hello!").Collect()
Varning
azidentity.NewDefaultAzureCredential är praktiskt för utveckling men kräver noggrant övervägande i produktion. I produktion bör du överväga att använda en specifik autentiseringsuppgift, till exempel azidentity.NewManagedIdentityCredential, för att undvika problem med svarstid, oavsiktlig avsökning av autentiseringsuppgifter och potentiella säkerhetsrisker från reservmekanismer.
Använda svars-API:et
Använd openaiprovider.NewResponsesAgent med samma Azure konfigurerade OpenAI-klient när din Azure OpenAI-distribution har stöd för svars-API:et:
responsesAgent := openaiprovider.NewResponsesAgent(
openai.NewClient(
azure.WithEndpoint(endpoint, apiVersion),
azure.WithTokenCredential(token),
),
openaiprovider.AgentConfig{
Model: deployment,
Instructions: "You are a helpful assistant.",
Config: agent.Config{
Name: "AzureResponsesAgent",
},
},
)
response, err := responsesAgent.RunText(ctx, "Summarize the latest deployment status.").Collect()
if err != nil {
return err
}
fmt.Println(response.String())
Miljövariabler
| Variabel | Beskrivning |
|---|---|
AZURE_OPENAI_ENDPOINT |
Din Azure OpenAI-resursslutpunkt |
AZURE_OPENAI_DEPLOYMENT_NAME |
Namn på distribution/modell |
AZURE_OPENAI_API_VERSION |
API-version (t.ex. 2025-01-01-preview) |
Tip
I exemplet Azure OpenAI Chat Completions och Responses (Svar) finns fullständiga exempel.