In Azure Functions gehoste vaardigheden

Azure Functions hosted skills is een programmeermodel voor het bouwen van cloud-gehoste, event-driven intelligente mogelijkheden op Azure Functions. Je definieert gedrag met Markdown, natuurtaalinstructies en declaratieve configuratie. Je kunt gehoste vaardigheden integreren met je applicaties via Azure Functions-triggers en bindings, of je eigen code meenemen als tools wanneer dat nodig is.

Important

Azure Functions-gehoste vaardigheden zijn momenteel beschikbaar als preview. Functies, configuratienamen en ondersteunde connectors kunnen vóór algemene beschikbaarheid veranderen.

Een Azure Functions hosted skills-app is een functionele app die het gehoste skills-programmeermodel gebruikt. Het bevat AI-taken die in .agent.md bestanden zijn gedefinieerd, en taken kunnen optioneel gebruikmaken van herbruikbare Markdown-richtlijnen uit SKILL.md bestanden. In dit artikel verwijst hosted skills naar het programmeermodel, taak naar een individuele uitvoerbare eenheid, en vaardigheid naar herbruikbare Markdown-richtlijnen.

Scenarios

Vaardigheden die worden gehost in Azure Functions werken het best voor eventgestuurde AI-workloads met veel tools. Veelvoorkomende scenario's zijn onder andere:

  • HTTP-taken die een verzoek ontvangen, roepen tools aan en geven een gestructureerd antwoord terug.
  • Geplande taken die dagelijkse rapporten, overzichten, opschoning of afstemmingsworkflows uitvoeren.
  • Wachtrij- of berichttaken die werkitems verwerken waarvoor redenering door het model of aanroepen van hulpprogramma's nodig zijn.
  • Data-wijzigingstaken die reageren op nieuwe of gewijzigde bestanden, records of databaserijen.
  • Door connectors geactiveerde taken die reageren op gebeurtenissen van beheerde connectors, zoals Teams-berichten, Outlook-mail of agendagebeurtenissen.

Tip

Om gehoste Azure Functions-vaardigheden uit te proberen, raadpleeg Build an event-driven AI app with Azure Functions hosted skills. Door een azd sjabloon te gebruiken, kun je binnen enkele minuten een werkende app op Azure hebben uitgerold.

Waarom zou je Functions gebruiken voor je AI-apps?

Productie-AI-workloads hebben meer nodig dan een prompt en een model. Ze hebben betrouwbare manieren nodig om te beginnen, externe systemen aan te roepen, gespreksgeschiedenis te behouden, niet-vertrouwde code veilig uit te voeren, zonder geheimen te verifiëren, telemetrie te verzenden en op aanvraag te schalen.

Functions biedt een event-driven compute-model voor deze operationele kwesties. Azure Functions gehoste vaardigheden passen datzelfde model toe op je AI-code. Voordelen zijn onder andere:

  • AI-taken zijn de eenheid van werk. Elke taak wordt gedefinieerd in een apart .agent.md bestand met declaratieve configuratie en instructies in natuurlijke taal.
  • Gebeurtenissen starten taken. Functietriggers starten AI-taken vanuit schema's, HTTP-verzoeken, wachtrijberichten, blobwijzigingen, Event Grid-gebeurtenissen, Service Bus-berichten en andere ondersteunde gebeurtenissen.
  • Mogelijkheden worden eerst geconfigureerd, met code wanneer u deze nodig hebt. Je kunt taken configureren voor het gebruik van externe MCP-servers, MCP-servers die worden gehost in connectornaamruimten, skills en code-uitvoeringen in een sandbox. Schrijf je eigen Python-gebaseerde tools voor app-specifieke logica.
  • De hostingfunctionaliteit van Azure Functions is ingebouwd. Azure Functions-gehoste vaardigheden ondersteunen de abonnementen Flex Consumption, Premium en Dedicated (App Service). Flex Consumption biedt schaal-tot-nul, per seconde facturering en automatische schaalvergroting. Alle plannen ondersteunen beheerde identiteit, virtuele netwerkintegratie en Application Insights.
  • Operationeel loodgieterswerk wordt voor u geregeld. De runtime beheert taakontdekking, triggerregistratie, toolassembly, sessiegeschiedenis en optionele ingebouwde endpoints.

Werkt samen met andere Microsoft AI-platforms

De gehoste vaardigheden van Azure Functions vullen andere AI-oplossingen van Microsoft aan en kunnen daarnaast worden gebruikt. Hun ideale punt is het bouwen van cloud-gehoste, event-driven intelligente mogelijkheden op Azure Functions via een toegankelijk programmeermodel. Gehoste vaardigheden kunnen capabilities via HTTP of MCP beschikbaar stellen voor gebruik door andere applicaties, agents en agent-harnesses.

Kies de Azure-functionaliteit die het beste bij jouw situatie past:

Scenario Option
Deterministische functies als tools voor een andere AI-client blootstellen Azure Functions MCP-extensie
Langdurige orkestratie in meerdere stappen met human-in-the-loop-goedkeuringen Durable Functions
Creëer en beheer AI-agenten zonder aangepaste hosting Microsoft Foundry of Copilot Studio

Project definitie

Een Azure Functions hosted skills-app is een standaard Python v2 function app-project dat samen met runtime-specifieke bestanden wordt uitgerold. De volgende projectbestanden zijn altijd vereist voor Python-functieapplicaties:

Bestand Purpose
function_app.py Importeert create_function_app() en retourneert de geconfigureerde Azure Functions-app.
host.json Hiermee configureert u de Azure Functions host.
requirements.txt Bevat het hosted skills runtime-pakket en eventuele app-specifieke Python-afhankelijkheden.

Voor meer informatie, zie de Azure Functions ontwikkelaarsreferentiegids voor Python-apps.

Agent-runtimebestanden

De runtime ontdekt deze bestanden en mappen, die samen met het app-project worden uitgezet:

Bestand of map Purpose
*.agent.md Definieert AI-taken. YAML-front matter configureert de taak, en de hoofdtekst in markdown vormt de instructies. Je project moet minstens één .agent.md bestand hebben.
agents.config.yaml (Optioneel) Definieert applicatiebrede runtime-standaardinstellingen, zoals model-, timeout- en sandbox-instellingen.
mcp.json Definieert de externe HTTP MCP-servers die AI-taken als tools kunnen gebruiken, inclusief connectortools voor acties zoals het verzenden van e-mail of het werken met Teams.
tools/ (Optioneel) Bevat alle aangepaste Python-tools die je maakt om mogelijkheden te bieden die nog niet door MCP-servers worden geleverd, verbindingen, vaardigheden of sandbox-uitvoeringen.
skills/ (Optioneel) Bevat herbruikbare SKILL.md prompt-assets die AI-taken naar behoefte kunnen laden.

Elk .agent.md bestand gebruikt YAML front matter gevolgd door markdown-instructies. Dit voorbeeld definieert een door de timer getriggerde AI-taak die dagelijks om 15.00 uur (UTC) draait:

---
name: Daily Tech News Email
description: Fetches top tech news and emails a summary daily.

trigger:
  type: timer_trigger
  args:
    schedule: "0 0 15 * * *"
---

You are a news assistant. When triggered, do the following:

1. Gather today's top technology news from reputable sources.
1. Summarize the stories in a concise HTML email body.
1. Email the summary to $TO_EMAIL with the subject "Daily Tech News Summary".

De inleidende sectie specificeert hoe de taak wordt aangeroepen. De markdown-hoofdtekst is het instructieblok dat de runtime tijdens de uitvoering doorgeeft aan het model. Met vervanging van omgevingsvariabelen kunnen instructies en configuratiewaarden verwijzen naar app-instellingen zoals $TO_EMAIL.

Elk .agent.md bestand definieert één AI-taak. De bestandsnaam leidt de naam van de Azure Function en het routesegment af voor ingebouwde eindpunten. Het name veld is een weergavenaam voor logboeken, labels en documentatie.

Raadpleeg de referentie voor gehoste vaardigheden van Azure Functions voor de volledige lijst met bestandsvelden van de agent, app-configuratieopties en regels voor variabelevervanging.

Opstartproces van de app

Wanneer de Functions-host de app laadt, ontdekt .agent.md de create_function_app methode bestanden, MCP-servers, vaardigheden en aangepaste tools in het project. Het valideert de configuratie, assembleert de tools voor elke taak en registreert de benodigde triggers en eindpunten.

Wanneer een trigger wordt afgevuurd, bouwt de runtime de taak met zijn opgeloste instructies, model, tools en sessiegeschiedenis, en voert deze vervolgens uit met behulp van het Microsoft Agent Framework.

Activeer AI-taken uit gebeurtenissen

De runtime ondersteunt meerdere triggers in je app, maar slechts één trigger per .agent.md bestand. Een triggerdefinitie heeft een type en een args object. Het type identificeert de triggerbinding en args bevat de trigger-specifieke instellingen die bepalen welk event de AI-taak start.

Veelvoorkomende triggerpatronen zijn:

Patroon Voorbeeld
HTTP-taak Ontvang een aanvraag, oproephulpmiddelen en retourneer een gestructureerd antwoord.
Geplande taak Voer een dagelijks rapport, samenvatting, opschoning of afstemmingswerkstroom uit.
Taak voor wachtrij of bericht Werkitems verwerken waarvoor modelredenering of hulpprogramma-aanroepen nodig zijn.
Opslag- of databasegebeurtenistaak Reageren op gewijzigde bestanden, records of gebeurtenissen.
Door connector geactiveerde taak Reageer op gebeurtenissen van beheerde connectors, zoals Teams-berichten, Outlook-mail of agenda-evenementen die door de connector worden ondersteund.

Zie Referentie voor gehoste vaardigheden die worden gehost in Azure Functions voor details over triggerconfiguraties, ondersteunde typen en de args-referentie.

Ondersteunde AI-tools

De gehoste vaardigheden van Azure Functions ondersteunen verschillende soorten tools. Begin met geconfigureerde mogelijkheden en gebruik aangepaste Python-tools voor app-specifieke logica die niet in die opties past.

Externe MCP-servers

Definieer externe HTTP- of HTTP-MCP-servers waarop streams mogelijk zijn in mcp.json. De runtime ontdekt deze servers en stelt hun tools beschikbaar voor alle AI-taken. Gebruik externe MCP-servers wanneer taken tools moeten aanroepen die door een andere service worden gehost of capabilities over app-grenzen heen moeten componeren.

Azure connectoren

Connectors laten AI-taken werken met externe services zonder aangepaste API-clientcode. Een Connector Namespace host verbindingen, triggers en MCP-servers voor diensten zoals Microsoft 365 Outlook, Teams, Salesforce, SAP of SQL. Gebruik connectortriggers om taken te starten vanuit externe gebeurtenissen, en connector MCP-tools om serviceacties aan te roepen vanuit taakinstructies.

Skills

Bewaar herbruikbare promptmiddelen in de map skills/. Elke vaardigheidsmap bevat een SKILL.md bestand met een naam, beschrijving en markdown-instructies. De runtime ontdekt automatisch vaardigheden en maakt deze beschikbaar voor AI-taken. Vaardigheden helpen om basisinstructies klein te houden terwijl domeinspecifieke begeleiding beschikbaar wordt gesteld wanneer dat nodig is.

Uitvoering in een sandbox

De runtime kan dynamische sessies van Azure Container Apps gebruiken om AI-taken van een execute_python tool te voorzien. Deze tool draait Python in een geïsoleerde sessiepool, wat nuttig is voor code-uitvoering en data-analyse. Configureer het sessiepool-eindpunt in agents.config.yaml.

Aangepaste hulpprogramma's voor Python

Gebruik aangepaste Python-tools voor app-specifieke mogelijkheden. Voeg bestanden toe .py aan de tools/ map en versier functies met @tool uit het runtime-pakket. De runtime ontdekt en registreert deze tools automatisch.

Raadpleeg de naslaginformatie over gehoste vaardigheden van Azure Functions voor configuratiedetails, veldtabellen en codevoorbeelden voor elk type hulpprogramma.

Sessies en toestand

Interacties met meerdere beurten hebben sessiegeschiedenis nodig. In Azure slaat de runtime sessiegeschiedenis op in Blob Storage via het AzureWebJobsStorage account van de functie-app. Voor lokale ontwikkeling valt de runtime terug op bestandsgebaseerde sessiegeschiedenis. Uitvoering in sandbox houdt ook rekening met sessies en gebruikt geïsoleerde sessies voor niet-gerelateerde uitvoeringen.

Observability

Vanaf azure-functions-agents-runtime versie 0.1.0b6, bevat de runtime een observability-functieset die nog steeds in actieve ontwikkeling is en kan worden gewijzigd.

Voor de nieuwste configuratiedetails, telemetrievelden en gebruiksrichtlijnen, gebruik de runtime repository-documentatie: