Not
Å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.
Den här handledningen visar hur du lägger till agentfunktionalitet i en befintlig datadriven ASP.NET Core CRUD-applikation. Det gör detta med hjälp av två olika metoder: Microsoft Agent Framework och Foundry Agent Service.
Om ditt webbprogram redan har användbara funktioner, till exempel shopping, hotellbokning eller datahantering, är det relativt enkelt att lägga till agentfunktioner i webbappen genom att omsluta dessa funktioner som verktyg (för Microsoft Agent Framework) eller som en OpenAPI-slutpunkt (för Foundry Agent Service). I den här handledningen börjar du med en enkel to-do-listapp. I slutet kan du skapa, uppdatera och hantera uppgifter med en agent i en App Service-app.
Med både Microsoft Agent Framework och Foundry Agent Service kan du skapa agentiska webbprogram med AI-drivna funktioner. Följande tabell visar några av övervägandena och kompromisserna:
| Consideration | Microsoft Agent Framework | Gjuteritjänstagent |
|---|---|---|
| Performance | Snabb (körs lokalt) | Långsammare (hanterad fjärrtjänst) |
| Development | Fullständig kod, maximal kontroll | Låg kod, snabb integrering |
| Testing | Manuella tester och enhetstester i kod | Inbyggd lekplats för snabb testning |
| Scalability | App-managed | Azure-hanterad, autoskalning |
| Säkerhetsramverk | Anpassad implementering krävs | Inbyggd innehållssäkerhet och moderering |
| Identitet | Anpassad implementering krävs | Inbyggt agent-ID och autentisering |
| Enterprise | Anpassad integrering krävs | Inbyggd Microsoft 365/Teams-distribution och integrerade Verktygsanrop för Microsoft 365. |
I den här tutorialen lär du dig följande:
- Konvertera befintliga appfunktioner till verktyg för Microsoft Agent Framework.
- Lägg till verktygen i en Microsoft Agent Framework-agent och använd dem i en webbapp.
- Konvertera befintliga appfunktioner till en OpenAPI-slutpunkt för Foundry Agent Service.
- Anropa en Foundry-agent i en webbapp.
- Tilldela nödvändiga behörigheter för hanterad identitetsanslutning.
Prerequisites
- Ett Azure-konto med en aktiv prenumeration – Skapa ett konto kostnadsfritt.
- GitHub-konto för att använda GitHub Codespaces – Läs mer om GitHub Codespaces.
Öppna exemplet med Codespaces
Det enklaste sättet att komma igång är att använda GitHub Codespaces, som ger en fullständig utvecklingsmiljö med alla nödvändiga verktyg förinstallerade.
Navigera till GitHub-lagringsplatsen på https://github.com/Azure-Samples/app-service-agentic-semantic-kernel-ai-foundry-agent.
Välj knappen Kod , välj fliken Codespaces och välj Skapa kodområde på main.
Vänta en stund tills kodområdet initieras. När du är klar visas en fullständigt konfigurerad utvecklingsmiljö i webbläsaren.
Kör programmet lokalt:
dotnet runNär du ser Att din applikation körs på port 5280 och är tillgänglig, väljer du Öppna i webbläsaren och lägger till några uppgifter.
Granska agentkoden
Båda metoderna använder samma implementeringsmönster, där agenten initieras som en tjänst (i Program.cs) i en provider och matas in i respektive Blazor-komponent.
AgentFrameworkProvider Initieras i Tjänster/AgentFrameworkProvider.cs. Initieringskoden gör följande:
- Skapar en
IChatClientfrån Azure OpenAI med hjälp avAzureOpenAIClient. - Hämtar den
TaskCrudToolinstans som omsluter funktionaliteten för CRUD-programmet (i Verktyg/TaskCrudTool.cs). AttributenDescriptionpå verktygsmetoderna hjälper agenten att avgöra hur de ska kallas. - Skapar en AI-agent genom att använda
CreateAIAgent()med instruktioner och verktyg som är registrerade viaAIFunctionFactory.Create(). - Skapar en tråd för agenten för att bevara konversationen i navigeringen.
// Create IChatClient
IChatClient chatClient = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetChatClient(deployment)
.AsIChatClient();
// Get TaskCrudTool instance from service provider
var taskCrudTool = sp.GetRequiredService<TaskCrudTool>();
// Create agent with tools
var agent = chatClient.CreateAIAgent(
instructions: @"You are an agent that manages tasks using CRUD operations.
Use the provided functions to create, read, update, and delete tasks.
Always call the appropriate function for any task management request.
Don't try to handle any requests that are not related to task management.
When handling requests, if you're missing any information, don't make it up but prompt the user for it instead.",
tools:
[
AIFunctionFactory.Create(taskCrudTool.CreateTaskAsync),
AIFunctionFactory.Create(taskCrudTool.ReadTasksAsync),
AIFunctionFactory.Create(taskCrudTool.UpdateTaskAsync),
AIFunctionFactory.Create(taskCrudTool.DeleteTaskAsync)
]);
// Create thread for this scoped instance (persists across navigation)
var thread = agent.GetNewThread();
return (agent, thread);
Varje gång användaren skickar ett meddelande anropar Blazor-komponenten (i Agent.RunAsync()) med användarens indata och agenttråden. Agenttråden håller reda på chatthistoriken.
var response = await this.Agent.RunAsync(sentInput, this.agentThread);
Distribuera exempelprogrammet
Exempellagringsplatsen innehåller en AZD-mall (Azure Developer CLI) som skapar en App Service-app med hanterad identitet och distribuerar exempelprogrammet.
Logga in på Azure med Azure Developer CLI i terminalen:
azd auth loginFölj anvisningarna för att slutföra autentiseringsprocessen.
Distribuera Azure App Service-appen med AZD-mallen:
azd upNär du uppmanas, ge följande svar:
Question Answer Ange ett nytt miljönamn: Skriv ett unikt namn. Välj en Azure-prenumeration som ska användas: Välj prenumerationen. Välj en resursgrupp som ska användas: Välj Skapa en ny resursgrupp. Välj en plats för att skapa resursgruppen i: Välj Sweden Central. Ange ett namn för den nya resursgruppen: Skriv Retur. I AZD-utdata letar du reda på url:en för din app och navigerar till den i webbläsaren. URL:en ser ut så här i AZD-utdata:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL>
Välj OpenAPI-schemaobjektet för att öppna det automatiskt genererade OpenAPI-schemat på standardsökvägen
/openapi/v1.json. Du behöver det här schemat senare.Efter distributionen visas en URL för ditt distribuerade program.
Nu har du en App Service-app med en systemtilldelad hanterad identitet.
Skapa och konfigurera Microsoft Foundry-resursen
I Foundry-portalen kontrollerar du att den översta Ny Foundry-radioknappen är inställd på aktiv och skapa ett projekt.
Distribuera en modell (se Microsoft Foundry Snabbstart: Skapa resurser).
Kopiera modellnamnet överst på modelllekplatsen.
Det enklaste sättet att hämta Azure OpenAI-slutpunkten är fortfarande från den klassiska portalen. Välj alternativknappen Ny foundry, därefter Azure OpenAI, och kopiera sedan URL:en vid Azure OpenAI slutpunkt för senare användning.
Tilldela nödvändiga behörigheter
På den översta menyn i den nya Foundry-portalen väljer du Använd och sedan Admin. På raden för ditt Foundry-projekt bör du se två länkar. Den i kolumnen Namn är projektresursen Foundry och den i kolumnen Överordnad resurs är Foundry-resursen.
Välj Foundry-resursen i den överordnade resursen och välj sedan Hantera den här resursen i Azure-portalen. Från Azure-portalen kan du tilldela rollbaserad åtkomst för resursen till den distribuerade webbappen.
Lägg till följande roll för App Service-appens hanterade identitet:
Målresurs Obligatorisk roll Behövs för Gjuteri Cognitive Services OpenAI-användare Tjänsten för chattens slutförande i Microsoft Agent Framework. Instruktioner finns i Tilldela Azure-roller med hjälp av Azure-portalen.
Konfigurera anslutningsvariabler i exempelprogrammet
Öppna appsettings.json. Med de värden som du kopierade tidigare från Foundry-portalen konfigurerar du följande variabler:
Variable Description AzureOpenAIEndpointAzure OpenAI-slutpunkt (kopierad från den klassiska Foundry-portalen). ModelDeploymentModellnamn i distributionen (kopieras från modelllekplatsen i den nya Foundry-portalen). Note
För att hålla självstudien enkel använder du dessa variabler i appsettings.json i stället för att skriva över dem med appinställningar i App Service.
Note
För att hålla självstudien enkel använder du dessa variabler i appsettings.json i stället för att skriva över dem med appinställningar i App Service.
Logga in på Azure med Azure CLI:
az loginPå så sätt kan Azure Identity-klientbiblioteket i exempelkoden ta emot en autentiseringstoken för den inloggade användaren. Kom ihåg att du lade till den roll som krävs för den här användaren tidigare.
Kör programmet lokalt:
dotnet runNär du ser Din applikation som körs på port 5280 är tillgänglig väljer du Öppna i webbläsare.
Välj länken Microsoft Agent Framework Agent och länken Foundry Agent Service för att testa chattgränssnittet. Om du får ett svar ansluter programmet till Microsoft Foundry-resursen.
Tillbaka i GitHub-kodområdet distribuerar du dina appändringar.
azd upNavigera till det distribuerade programmet igen och testa chattagenterna.
Rensa resurser
När du är klar med programmet kan du ta bort App Service-resurserna för att undvika ytterligare kostnader:
azd down --purge
Eftersom AZD-mallen inte innehåller Microsoft Foundry-resurserna måste du ta bort dem manuellt om du vill.