Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze zelfstudie laat zien hoe u agentische mogelijkheden toevoegt aan een bestaande gegevensgestuurde ASP.NET Core CRUD-toepassing. Dit doet u met behulp van twee verschillende benaderingen: Microsoft Agent Framework en Foundry Agent Service.
Als uw webtoepassing al nuttige functies heeft, zoals winkelen, hotelreservering of gegevensbeheer, is het relatief eenvoudig om agentfunctionaliteit toe te voegen aan uw webtoepassing door deze functies als hulpprogramma's (voor Microsoft Agent Framework) of als een OpenAPI-eindpunt (voor Foundry Agent Service) te verpakken. In deze handleiding begint u met een eenvoudige to-do lijstapp. Aan het einde kunt u taken maken, bijwerken en beheren met een agent in een App Service-app.
Met zowel Microsoft Agent Framework als Foundry Agent Service kunt u agentische webtoepassingen bouwen met AI-gestuurde mogelijkheden. In de volgende tabel ziet u enkele overwegingen en afwegingen:
| Consideration | Microsoft Agent Framework | Foundry Agentendienst |
|---|---|---|
| Performance | Snel (lokaal uitgevoerd) | Trager (beheerde, externe service) |
| Development | Volledige code, maximaal beheer | Low-code, snelle integratie |
| Testing | Handmatige/eenheidstests in code | Ingebouwde speeltuin voor snel testen |
| Scalability | App-managed | Door Azure beheerd, automatisch geschaald |
| Veiligheidsrails | Aangepaste implementatie vereist | Ingebouwde inhoudsveiligheid en toezicht |
| Identiteit | Aangepaste implementatie vereist | Ingebouwde agent-id en verificatie |
| Enterprise | Aangepaste integratie vereist | Ingebouwde microsoft 365/Teams-implementatie en geïntegreerde hulpprogramma-aanroepen van Microsoft 365. |
In deze handleiding leer je hoe je:
- Bestaande app-functionaliteit converteren naar hulpprogramma's voor Microsoft Agent Framework.
- Voeg de hulpprogramma's toe aan een Microsoft Agent Framework-agent en gebruik deze in een web-app.
- Bestaande app-functionaliteit converteren naar een OpenAPI-eindpunt voor Foundry Agent Service.
- Roep een Foundry-agent aan in een web-app.
- Wijs de vereiste machtigingen toe voor connectiviteit met beheerde identiteiten.
Prerequisites
- Een Azure-account met een actief abonnement: maak gratis een account.
- GitHub-account voor het gebruik van GitHub Codespaces - Meer informatie over GitHub Codespaces.
Het voorbeeld openen met Codespaces
De eenvoudigste manier om aan de slag te gaan is door GitHub Codespaces te gebruiken. Dit biedt een volledige ontwikkelomgeving met alle vereiste hulpprogramma's die vooraf zijn geïnstalleerd.
Navigeer naar de GitHub-opslagplaats op https://github.com/Azure-Samples/app-service-agentic-semantic-kernel-ai-foundry-agent.
Klik op de knop Code, selecteer het tabblad Codespaces en selecteer Codespace op main maken.
Wacht even totdat uw Codespace is geïnitialiseerd. Wanneer u klaar bent, ziet u een volledig geconfigureerde ontwikkelomgeving in uw browser.
Voer de toepassing lokaal uit:
dotnet runWanneer u ziet dat uw toepassing beschikbaar is op poort 5280, selecteer dan Openen in browser en voeg enkele taken toe.
De agentcode controleren
Beide benaderingen gebruiken hetzelfde implementatiepatroon, waarbij de agent wordt geïnitialiseerd als een service (in Program.cs) in een provider en wordt geïnjecteerd in het respectieve Blazor-onderdeel.
De AgentFrameworkProvider is geïnitialiseerd in Services/AgentFrameworkProvider.cs. De initialisatiecode doet het volgende:
- Hiermee maakt u een
IChatClientvan Azure OpenAI met behulp van deAzureOpenAIClient. - Hiermee haalt u het
TaskCrudToolexemplaar op dat de functionaliteit van de CRUD-toepassing inkapselt (in Tools/TaskCrudTool.cs). Met deDescriptionkenmerken van de hulpprogrammamethoden kan de agent bepalen hoe deze moeten worden aangeroepen. - Hiermee maakt u een AI-agent met instructies
CreateAIAgent()en hulpprogramma's die zijn geregistreerd viaAIFunctionFactory.Create(). - Hiermee maakt u een thread voor de agent om het gesprek tijdens de navigatie te behouden.
// 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);
Telkens wanneer de gebruiker een bericht verzendt, roept het Agent.RunAsync()) aan met de gebruikersinvoer en de agentthread. De agentthread houdt de chatgeschiedenis bij.
var response = await this.Agent.RunAsync(sentInput, this.agentThread);
De voorbeeldtoepassing implementeren
De voorbeeldrepository bevat een Azure Developer CLI (AZD) sjabloon, die een App Service-app maakt en je voorbeeldapplicatie uitrolt. De door het App Service toegewezen beheerde identiteit wordt behouden voor uitgaande Azure AI-aanroepen. Een aparte, door de gebruiker toegewezen beheerde identiteit en gefedereerd identiteitsbewijs laten App Service-authenticatie fungeren als de gegenereerde Microsoft Entra-applicatie zonder een clientgeheim.
Log in de terminal in bij Azure met behulp van Azure Developer CLI:
azd auth loginVolg de instructies om het verificatieproces te voltooien.
Deploy de Azure App Service app met behulp van de AZD-template:
azd upGeef de volgende antwoorden wanneer u hierom wordt gevraagd:
Question Answer Voer een nieuwe omgevingsnaam in: Voer een unieke naam in. Selecteer een Azure-abonnement dat u wilt gebruiken: Selecteer het abonnement. Kies een resourcegroep die u wilt gebruiken: Selecteer Een nieuwe resourcegroep maken. Selecteer een locatie waarin u de resourcegroep wilt maken in: Selecteer Zweden - centraal. Voer een naam in voor de nieuwe resourcegroep: Typ Enter. Zoek in de AZD-uitvoer de URL van uw app en navigeer ernaar in de browser. Kopieer ook de Foundry OpenAPI managed identity audience waarde voor later. De uitvoer ziet er als volgt uit:
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <URL> Foundry OpenAPI managed identity audience: api://<generated-client-id>Wanneer Microsoft je ernaar vraagt, log dan in met een account in de deployment tenant en controleer of de takenlijst geladen is.
Voeg in dezelfde geauthenticeerde browser
/openapi/v1.jsontoe aan het App Service-eindpunt. Kopieer of sla het gegenereerde OpenAPI-schema op voor later.Note
App Service-authenticatie geeft een HTTP 302-redirect terug voor niet-geauthenticeerde browserverzoeken. Dit voorbeeld bevat zowel een browserinterface als API's, waardoor de redirect een bruikbare aanmeldervaring biedt. API-only apps gebruiken vaak HTTP 401.
De Microsoft Foundry-resource maken en configureren
Maak in het Foundry-portaal een project.
Een model van uw keuze implementeren (zie Snelstartgids voor Microsoft Foundry: Resources maken).
Kopieer de naam van het model vanaf de bovenkant van de modelspeelplaats.
Kopieer op de startpagina het Azure OpenAI-eindpunt voor later.
Vereiste machtigingen toewijzen
Selecteer in het Foundry-portaal Beheren in het bovenste menu.
Selecteer in Project details de Ouderresource van je project en selecteer vervolgens Open in Azure portal.
Vanuit het Azure-portaal kun je rolgebaseerde toegang voor de resource toewijzen.
Voeg de volgende rol toe voor zowel de beheerde identiteit van de App Service-app als de gebruiker waarmee je werkt
az login:Doelresource Vereiste rol Vereist voor Gieterij Cognitive Services OpenAI-gebruiker De voltooiingsservice voor chats in Microsoft Agent Framework. Zie Azure-rollen toewijzen via Azure Portal voor instructies.
Verbindingsvariabelen configureren in uw voorbeeldtoepassing
Open appsettings.json. Configureer de volgende variabelen met behulp van de waarden die u eerder hebt gekopieerd uit de Foundry-portal:
Variable Description AzureOpenAIEndpointAzure OpenAI endpoint (gekopieerd van de Foundry portal homepage). ModelDeploymentModelnaam in de implementatie (gekopieerd uit de modelspeeltuin in de nieuwe Foundry-portal). Note
Als u de zelfstudie eenvoudig wilt houden, gebruikt u deze variabelen in appsettings.json in plaats van ze te overschrijven met app-instellingen in App Service.
Note
Als u de zelfstudie eenvoudig wilt houden, gebruikt u deze variabelen in appsettings.json in plaats van ze te overschrijven met app-instellingen in App Service.
Meld u aan bij Azure met de Azure CLI:
az loginHierdoor kan de Azure Identity-clientbibliotheek in de voorbeeldcode een verificatietoken ontvangen voor de aangemelde gebruiker. Houd er rekening mee dat u de vereiste rol voor deze gebruiker eerder hebt toegevoegd.
Voer de toepassing lokaal uit:
dotnet runWanneer u ziet dat uw toepassing op poort 5280 draait en beschikbaar is, selecteer Openen in browser.
Controleer beide draaipunten afzonderlijk:
- Microsoft Agent Framework: Selecteer Microsoft Agent Framework Agent en vraag de agent een taak aan te maken. Microsoft Agent Framework roept het in-process-taakhulpprogramma aan.
-
Foundry Agent Service: Selecteer Foundry Agent Service en vraag de agent om een taak te maken. De externe Foundry-agent roept het uitgerolde, beschermde
/api/tasksendpoint met beheerde identiteit aan.
De taak die de Foundry-agent aanmaakt, verschijnt in de gedeployeerde App Service-instantie, niet in de lokale geheugendatabase. De Foundry OpenAPI-tool gebruikt altijd de server-URL die is ingebed in het OpenAPI-schema.
Implementeer uw app-wijzigingen in de GitHub-codespace.
azd upGa opnieuw naar de geïmplementeerde toepassing en test de chatagents.
Veelgestelde vragen
Hoe voeg ik retrieval augmented generation (RAG) toe aan de Foundry-agent?
Deze richtlijn geldt voor het Foundry Agent Service-pad in deze tutorial. Het verandert niet de implementaties van LangGraph, Semantic Kernel of Microsoft Agent Framework die in het andere tabblad worden getoond.
Maak of selecteer een kennisbank van Foundry IQ, en verbind deze vervolgens met de Foundry Agent Service-agent. De verbinding wordt voor de agent beschikbaar gesteld als een beheerde MCP-kennistool.
De App Service-code blijft dezelfde agent bij naam aanroepen via zijn bestaande Foundry-client en agent_reference. De webapp heeft geen directe integratie met Azure AI Zoeken of een eigen MCP-client nodig. Als de gebruikersinterface bronnen toont, verwerk dan de citatie-annotaties die door de agent zijn teruggegeven.
De hulpbronnen opschonen
Wanneer u klaar bent met de toepassing, kunt u de App Service-resources verwijderen om verdere kosten te voorkomen:
azd down --purge
Verwijder vervolgens de Foundry-bron als je die apart hebt aangemaakt.