Laufzeit serverloser Agenten in Azure Functions

Die Serverless-Agents-Laufzeit von Azure Functions ist ein Programmiermodell zum Aufbau ereignisgesteuerter KI-Agenten als Azure Functions-Apps. Agenten können von HTTP-Anfragen, Timern, Warteschlangen, Blobs, Datenbankänderungen oder Connector-Events starten. Du definierst Agenten in .agent.md Dateien, konfigurierst Tools und Laufzeitstandardwerte parallel zu deinem Projekt und bereitest die App wie jede andere Funktions-App aus. Die Laufzeit verarbeitet die Triggerregistrierung, Modellaufrufe, Toolassembly, den Sitzungsverlauf und die Einblickbarkeit in einer serverlosen Infrastruktur.

Important

Die Laufzeit für serverlose Agents ist derzeit als Preview verfügbar. Features, Konfigurationsnamen und unterstützte Connectors können sich vor der allgemeinen Verfügbarkeit ändern.

Wann Sie die Runtime für serverless Agents verwenden sollten

Verwenden Sie die serverlose Laufzeit für Agents, wenn Ihr Agent ereignisgesteuert ist, viele Tools verwendet oder betrieblich eng an Azure-Functions-Workloads angelehnt ist. Szenarien für die serverlose Agentenlaufzeit umfassen:

  • Geplante Hintergrund-Agenten, die zusammenfassen, überwachen, abgleichen oder Berichte erstellen.
  • Ereignisgesteuerte Assistenten, die auf Nachrichten, E-Mails, Warnungen, Warteschlangennachrichten oder Datenänderungen reagieren.
  • Systemübergreifende Agenten, die Konnektoren verwenden, um Arbeiten über SaaS- und Unternehmensanwendungen hinweg zu koordinieren.
  • Unterhaltungs-Front-Ends, die denselben Agent über HTTP, Chat-UI oder MCP verfügbar machen.
  • Agents, die auf Null skalieren und verwaltete Identität, Überwachung, Bereitstellungs-Slots und andere Funktionalitäten des Azure-Hostings nutzen sollen.

In den folgenden Szenarien ist die Serverless-Agent-Laufzeit möglicherweise nicht die beste Option:

Scenario Bessere Option
Deterministische Funktionen als Werkzeuge für einen anderen KI-Client bereitstellen Azure Functions MCP-Erweiterung
Lang andauernde, mehrstufige Orchestrierung mit Human-in-the-Loop-Genehmigungen Dauerhafte Funktionen
No-Code-Agent-Generator Copilot Studio oder Foundry Prompt-Agents

Für einen detaillierten Vergleich mit anderen Microsoft-Agent-Optionen siehe Vergleichen der Serverless-Agent-Laufzeit mit anderen Microsoft-Agenten-Optionen.

Tip

Um die Serverless Agents Runtime zu testen, siehe Build serverless agents using Azure Functions. Mit einer azd Vorlage kannst du innerhalb von Minuten eine funktionierende App auf Azure bereitstellen.

Warum Agents auf Azure Functions aufbauen?

Produktionsmitarbeiter benötigen mehr als eine Eingabeaufforderung und ein Modell. Sie benötigen zuverlässige Möglichkeiten, um mit der Arbeit zu beginnen, externe Systeme aufzurufen, aufgezeichnete Unterhaltungen beizubehalten, nicht vertrauenswürdigen Code sicher auszuführen, ohne geheime Schlüssel zu authentifizieren, Telemetrie auszustrahlen und bedarfsgesteuert zu skalieren.

Functions bietet ein ereignisgesteuertes Rechenmodell für diese operativen Anliegen. Die Serverless-Agents-Laufzeit wendet dasselbe Modell einfach auf deinen Agentencode an. Hier sind einige Vorteile der Nutzung der Serverless-Agents-Laufzeit, um deinen Agent-Code zu erstellen und auszuführen:

  • Agenten sind die Arbeitseinheit. Jeder Agent ist in einer separaten Markdown-Datei definiert.
  • Ereignisse starten Agents. Functions-Trigger starten Agents aus Zeitplänen, HTTP-Anforderungen, Warteschlangennachrichten, Blobänderungen, Event Grid-Ereignissen, Service Bus-Nachrichten und anderen unterstützten Ereignissen.
  • Funktionen werden zunächst konfiguriert – Code kommt nur bei Bedarf zum Einsatz. Man kann Agenten so konfigurieren, dass sie entfernte MCP-Server, in Connector-Namespaces gehostete MCP-Server, Skills und in einer Sandbox ausgeführten Code verwenden. Schreibe deine eigenen Python-basierten Tools für app-spezifische Logik.
  • Serverloses Hosting ist verfügbar. Die Laufzeit für serverlose Agents unterstützt sowohl Flex Consumption- als auch Dedicated (App Service)-Pläne. Der Flex-Consumption-Plan bietet Skalierung auf null, sekundengenaue Abrechnung und automatische Skalierung. Beide Pläne unterstützen Managed Identity, virtuelle Netzwerkintegration und Application Insights-Integration.
  • Das operative Plumbing ist integriert. Die Laufzeit übernimmt die Agentenerkennung, die Trigger-Registrierung, die Tool-Zusammenstellung, den Sitzungsverlauf und optionale integrierte Endpunkte.

Projektdefinition

Eine Serverless-Agents-App ist ein Standard-Python-v2-Funktions-App-Projekt, das zusammen mit agentenspezifischen Dateien bereitgestellt wird. Die folgenden Projektdateien sind für Python-Funktionsanwendungen immer erforderlich:

Datei Purpose
function_app.py Importiert create_function_app() und gibt die konfigurierte Azure Functions App zurück.
host.json Konfiguriert den Azure Functions-Host.
requirements.txt Enthält das Serverlose Agents-Laufzeitpaket und alle app-spezifischen Python Abhängigkeiten.

Weitere Informationen finden Sie im Azure Functions Developer Reference Guide für Python-Apps.

Agent-Laufzeitdateien

Die Laufzeit entdeckt diese agentenspezifischen Dateien und Ordner, die mit dem App-Projekt bereitgestellt werden:

Datei oder Ordner Purpose
*.agent.md Definiert Agenten. YAML-Front-Matter konfiguriert den Agenten, und der Markdown-Text bildet die Anweisungen. Ihr Projekt muss mindestens eine Agenten-Definitionsdatei haben.
agents.config.yaml (Optional) Definiert Anwendungsweite Laufzeitstandardeinstellungen, wie Modell-, Timeout- und Sandbox-Einstellungen.
mcp.json Definiert die entfernten HTTP-MCP-Server, die Agenten als Werkzeuge nutzen können, einschließlich Connector-Tools für Aufgaben wie das Versenden von E-Mails oder die Zusammenarbeit mit Teams.
tools/ (Optional) Enthält alle benutzerdefinierten Python-Tools, die du erstellst, um Funktionen bereitzustellen, die MCP-Server noch nicht bieten, Verbindungen, Fähigkeiten oder Sandbox-Ausführungen.
skills/ (Optional) Enthält wiederverwendbare SKILL.md Prompt-Ressourcen, die von Agenten bei Bedarf geladen werden können.

Jede Agentendatei besteht aus YAML front matter, gefolgt von Markdown-Anweisungen. Dieses Beispiel definiert einen von Timern ausgelösten Agenten, der täglich um 15 Uhr (UTC) läuft:

---
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".

Der Vorspann legt fest, wie der Agent aufgerufen wird. Der Markdown-Body ist der Anweisungsblock, den die Runtime während der Ausführung an das Modell weitergibt. Die Ersetzung von Umgebungsvariablen ermöglicht es Anweisungen und Konfigurationswerten, auf App-Einstellungen wie $TO_EMAIL zu verweisen.

Jede .agent.md Datei definiert einen Agent. Der Dateiname leitet den Azure-Funktionsnamen und das Routensegment für eingebaute Endpunkte ab. Das Feld name ist ein Anzeigename für Protokolle, Beschriftungen und Dokumentation.

Für die vollständige Liste der Agenten-Dateifelder, App-Konfigurationsoptionen und Variablen-Substitutionsregeln siehe Serverless Agents Runtime Reference.

App-Startprozess

Wenn der Functions-Host die App lädt, entdeckt die create_function_app Methode Agentendateien (Trigger), MCP-Server, Skills und benutzerdefinierte Tools im Projekt. Es validiert die Konfiguration, stellt die Werkzeuge für jeden Agenten zusammen und registriert die erforderlichen Trigger und Endpunkte.

Wenn ein agentenspezifischer Trigger ausgelöst wird, baut die Laufzeit den Agenten mit seinen aufgelösten Anweisungen, Modellen, Werkzeugen und Sitzungshistorie und führt ihn dann mit dem Microsoft Agent Framework aus.

Triggern von Agents durch Ereignisse

Die Laufzeit unterstützt mehrere Agent-Trigger in deiner App, aber nur einen Trigger pro Agent-Datei. Eine Triggerdefinition weist ein type Und ein args Objekt auf. Die type Triggerbindung identifiziert und args enthält die triggerspezifischen Einstellungen, die konfigurieren, welches Ereignis den Agent startet.

Zu den gängigen Triggermustern gehören:

Schema Example
HTTP-Agent Empfangen einer Anforderung, Anruftools und Zurückgeben einer strukturierten Antwort.
Geplanter Agent Führen Sie einen täglichen Berichterstellungs-, Zusammenfassungs-, Bereinigungs- oder Abstimmungsworkflow aus.
Warteschlangen- oder Nachrichten-Agent Verarbeiten von Arbeitsaufgaben, die Modellgründe oder Toolaufrufe benötigen.
Speicher- oder Datenbankereignis-Agent Reagieren Sie auf geänderte Dateien, Datensätze oder Ereignisse.
Durch Connector ausgelöster Agent Reagieren Sie auf Ereignisse von verwalteten Connectors, wie Teams-Nachrichten, Outlook-Mails oder vom Connector unterstützten Kalenderereignissen.

Für Details zur Trigger-Konfiguration, unterstützte Typen und args Referenzen siehe Serverless Agents Runtime Reference.

Agents-Tools bereitstellen

Die Serverless-Agents-Laufzeit unterstützt mehrere Arten von Tools. Beginne mit konfigurierten Funktionen und nutze benutzerdefinierte Python-Tools für app-spezifische Logik, die nicht zu diesen Optionen passt.

Fern-MCP-Server

Definiere entfernte HTTP- oder streambare HTTP-MCP-Server in mcp.json. Die Laufzeitumgebung erkennt diese Server und stellt ihre Tools allen Agenten zur Verfügung. Verwenden Sie Remote-MCP-Server, wenn Agents Tools aufrufen müssen, die von einem anderen Dienst gehostet werden, oder verfassen Sie Agents und Tools über App-Grenzen hinweg.

Azure-Konnektoren

Connectors ermöglichen Agents das Arbeiten mit externen Diensten ohne benutzerdefinierten API-Clientcode. Ein Connector-Namespace beherbergt Verbindungen, Trigger und MCP-Server für Dienste wie Microsoft 365 Outlook, Teams, Salesforce, SAP oder SQL. Verwenden Sie Connector-Trigger, um Agenten aus externen Ereignissen zu starten, und Connector-MCP-Tools, um Serviceaktionen aus Agenteninstruktionen aufzurufen.

Fähigkeiten

Speichern wiederverwendbare Prompt-Assets unter skills/. Jeder Fertigkeitsordner enthält eine SKILL.md Datei mit Namen, Beschreibung und Markdown-Anweisungen. Die Laufzeit entdeckt automatisch Fähigkeiten und stellt sie den Agenten zur Verfügung. Fähigkeiten helfen dabei, die Basisagentenanweisungen klein zu halten und bei Bedarf domänenspezifische Anweisungen zur Verfügung zu stellen.

Ausführung in einer Sandbox

Die Laufzeit kann dynamische Sitzungen in Azure Container Apps verwenden, um Agents ein execute_python-Tool bereitzustellen. Dieses Tool führt Python in einem isolierten Sitzungspool aus, was für Codeausführung und Datenanalyse nützlich ist. Konfigurieren Sie den Session-Pool-Endpunkt in agents.config.yaml.

Benutzerdefinierte Python-Tools

Nutze benutzerdefinierte Python-Tools für app-spezifische Funktionen. Fügen Sie .py Dateien dem Ordner tools/ hinzu und dekorieren Sie Funktionen mit @tool aus dem Laufzeitpaket. Die Laufzeit entdeckt und registriert diese Werkzeuge automatisch.

Für Konfigurationsdetails, Feldtabellen und Codebeispiele für jeden Werkzeugtyp siehe Serverless Agents Runtime Reference.

Sitzungen und Status

Die Interaktionen von Agents mit mehreren Turns erfordern eine Sitzungshistorie. In Azure speichert die Laufzeit den Sitzungsverlauf in Blob Storage über das AzureWebJobsStorage-Konto der Funktions-App. Für die lokale Entwicklung greift die Laufzeit auf einen dateibasierten Sitzungsverlauf zurück. Die Ausführung in der Sandbox berücksichtigt auch Sitzungen und verwendet isolierte Sitzungen für voneinander unabhängige Agentenläufe.

Beobachtbarkeit

Ab azure-functions-agents-runtime Version 0.1.0b6 enthält die Laufzeit ein Feature-Set für die Einblickbarkeit, das sich noch in der aktiven Entwicklung befindet und Änderungen unterliegt.

Für die neuesten Konfigurationsdetails, Telemetriefelder und Nutzungsanleitungen verwenden Sie die Laufzeitdokumentation des Repositoriums: