Schnellstart: Erstellen von serverlosen Agents mithilfe von Azure Functions

In dieser Schnellstartanleitung stellen Sie serverlose Agents mithilfe der Azure Developer CLI (azd) für Azure Functions bereit. Das Beispiel enthält zwei Agents:

  • Ein Chat-Agent, den Sie zum Testen der bereitgestellten App in einem Browser verwenden können. Dieser Agent kann sandkastenbasierte Python Codeausführung verwenden und das Web durchsuchen.
  • Ein zeitgesteuerter Agent, der aktuelle Microsoft-Blogbeiträge sammelt, zusammenfasst und die Zusammenfassung über MCP-Tools eines verwalteten MCP-Servers für einen Microsoft 365 Outlook-Konnektor per E-Mail versenden kann.

Das Projekt verwendet die Azure Functions-Laufzeit für serverlose Agenten. Sie definieren Agents in Markdown-Dateien, konfigurieren appweite Laufzeitstandardwerte in agents.config.yaml, verbinden Remote-MCP-Server in mcp.jsonund stellen die App wie jede andere Funktions-App bereit.

Die Vorlage stellt eine Flex Consumption-Funktions-App, Speicher, Überwachung, eine Microsoft Foundry-Projekt- und Modellbereitstellung, einen Azure Container Apps dynamischen Sitzungspool und die erforderlichen Identitätszuweisungen bereit. Wenn die E-Mail-Zustellung aktiviert ist, stellt sie auch einen Connectornamespace, eine Microsoft 365 Outlook Verbindung und einen verwalteten MCP-Server für den Connector bereit.

Das Abschließen dieser Schnellstartanleitung kann in Ihrem Azure Konto zu geringen Kosten führen, da die App den Flex-Verbrauchsplan und die zugehörigen Azure Ressourcen verwendet.

Voraussetzungen

  • Azure Developer CLI (azd).
  • Azure CLI. Sie können auch Azure CLI-Befehle in Azure Cloud Shell ausführen.
  • Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
  • Berechtigungen zum Erstellen von Ressourcengruppen, Function Apps, verwalteten Identitäten, Microsoft Foundry-Ressourcen, Modellbereitstellungen, Azure Container Apps-Sitzungspools, Konnektor-Namespaces und Verbindungen in Ihrem Abonnement.
  • Um die E-Mail-Zustellung zu aktivieren, benötigen Sie ein Microsoft 365-Konto, bei dem Sie sich anmelden können, mit dem E-Mails gesendet werden können und dessen Adresse Sie als Empfängeradresse verwenden können, um die Agentausgabe zu überprüfen.

Initialisieren des Projekts

Verwenden Sie den azd init Befehl, um ein lokales Projekt aus dem Beispiel-Repository zu erstellen.

  1. Öffnen Sie in Visual Studio Code einen Ordner oder Arbeitsbereich, in dem Sie Ihr Projekt erstellen möchten.

  2. Führen Sie im Terminal den folgenden azd init Befehl aus:

    azd init --template Azure-Samples/functions-quickstart-serverless-agents-azd -e serverless-agents
    

    Mit diesem Befehl werden die Projektdateien aus dem Beispiel-Repository serverlose Agents abgerufen und das Projekt im aktuellen Ordner initialisiert. Die -e-Kennzeichnung benennt die aktuelle azd Umgebung, die den Bereitstellungsstatus verfolgt und in Azure Ressourcennamen verwendet wird.

  3. Aktivieren Sie die E-Mail-Zustellung, indem Sie die vom Zeitgeber-Agent verwendete E-Mail-Adresse des Empfängers festlegen. Später in dieser Schnellstartanleitung müssen Sie sich bei einem Microsoft 365 Konto anmelden, um die Microsoft 365 Outlook Verbindung zu autorisieren, die die E-Mail sendet.

    azd env set TO_EMAIL <recipient@example.com>
    

    Ersetzen Sie <recipient@example.com> durch Ihre eigene E-Mail-Adresse oder durch einen anderen Empfänger, der gemäß den E-Mail-Richtlinien Ihrer Organisation zulässig ist. Einige Organisationen beschränken connectorbasierte E-Mails auf interne Empfänger oder blockieren externe Empfänger, sodass das Senden der Testnachricht an sich selbst die zuverlässigste Option ist.

    Note

    Die E-Mail-Zustellung ist im Beispiel optional. Wenn Sie diese Einstellung überspringen, erstellt azd up keinen Connector-Namespace, keine Microsoft 365 Outlook-Verbindung und keinen verwalteten MCP-Server. Der Timer-Agent läuft weiterhin und gibt die Zusammenfassung in seiner abschließenden Antwort zurück, sodass Sie die Ausführung in den Protokollen oder in Application Insights überprüfen können.

Überprüfen des Projekts

Überprüfen Sie vor der Bereitstellung die Projektdateien, die die serverlose Agent-App definieren:

Datei oder Ordner Purpose
src/main.agent.md Definiert den Chat-Agent und aktiviert integrierte Endpunkte für die Debugchat-Benutzeroberfläche. Dieser Agent kann sandkastenbasierte Python Codeausführung verwenden und verwendet nicht den Microsoft 365 Outlook verwalteten MCP-Server.
src/daily_microsoft_blog_summary.agent.md Definiert den zeitgesteuerten Agenten für Microsoft-Blogzusammenfassungen. Das YAML-Front-Matter deklariert den Timer-Trigger und der Markdown-Body enthält die Anweisungen für den Agent.
src/agents.config.yaml Definiert App-weite Runtime-Standards, einschließlich des Modells der Bereitstellung und des dynamischen Azure Container Apps Sitzungs-Pool-Endpunkts, der von den Agents in der App verwendet wird.
src/mcp.json Listet die für die Agents verfügbaren REMOTE-MCP-Server auf. In dieser Vorlage ist src der Stamm des Funktions-App-Projekts, und diese Datei enthält den verwalteten MCP-Serverendpunkt für Microsoft 365 Outlook, wenn die E-Mail-Zustellung aktiviert ist.
infra/ Enthält die Bicep-Dateien, die von azd verwendet werden, um die Function App, den Speicher, die Überwachung, die Foundry-Ressourcen, die Bereitstellung des Modells, den Sitzungspool, die optionalen Ressourcen des Konnektor-Namespace und die Identitätskonfiguration bereitzustellen.
src/function_app.py Erforderliche Bootstrapdatei für den Functions-Host. Normalerweise müssen Sie diese Datei nicht bearbeiten.

Der zeitgesteuerte Agent wird in daily_microsoft_blog_summary.agent.md definiert. Der Vorspann definiert den Zeitplan für den Timer, und die Markdown-Anweisungen weisen den Agenten an, aktuelle Microsoft-Blogbeiträge zu sammeln, eine Zusammenfassung zu erstellen und eine E-Mail zu senden, wenn TO_EMAIL konfiguriert ist.

In Azure bereitstellen

Verwenden Sie azd up, um Azure Ressourcen bereitzustellen und die Funktions-App bereitzustellen.

  1. Führen Sie im Terminal diesen Befehl aus dem Stammverzeichnis des initialisierten Projekts aus:

    azd up
    
  2. Wenn Sie dazu aufgefordert werden, wählen Sie das Azure Abonnement und den Speicherort aus, der für die Ressourcengruppe verwendet werden soll.

    Die Vorlage verwendet die Standardbereitstellungseinstellungen für das Microsoft-Foundry-Modell, sofern Sie die Bicep-Parameter nicht anpassen.

Nach Abschluss des Befehls wird die App in Azure in einer neuen Funktions-App bereitgestellt. Die Bereitstellungsausgabe enthält Links zu den erstellten Ressourcen.

Autorisieren der Verbindung

Wenn TO_EMAIL festgelegt ist, erstellt die Bereitstellung einen Connector-Namespace mit einer Microsoft 365 Outlook-Verbindung und einem verwalteten MCP-Server. Mit diesem Setup kann der Zeitgeber-Agent E-Mails über Connectortools ohne benutzerdefinierten Outlook-API-Code senden. Bevor der Agent E-Mails senden kann, autorisieren Sie die Verbindung, indem Sie sich bei einem Microsoft 365 Konto anmelden, das E-Mails senden kann.

Wenn Sie TO_EMAIL nicht festgelegt haben, überspringen Sie diesen Abschnitt.

  1. Suchen Sie im Azure-Portal nach Connector Namespace.

  2. Öffnen Sie die Connector-Namespace-Ressource, die von azd erstellt wurde. Die Ressource befindet sich in der Ressourcengruppe, die von azd erstellt wurde und deren Name mit rg- beginnt und den Namen der Umgebung enthält, die Sie während azd init ausgewählt haben (serverless-agents, wenn Sie den Beispielbefehl verwendet haben).

    Wenn Sie die Ressource auswählen, wird das Connector Namespaces-Portal geöffnet, eine separate Benutzeroberfläche zum Durchsuchen und Verwalten der Verbindungen, Trigger und MCP-Server im Namespace.

  3. Suchen Sie im Portal "Connector-Namespaces" den Microsoft 365 Outlook Connector, und öffnen Sie dann die durch die Bereitstellung erstellte Verbindung.

  4. Wählen Sie Authenticate aus, und melden Sie sich dann mit dem Microsoft 365 Konto an, das E-Mails senden kann.

Nachdem die Authentifizierung erfolgreich war, kann die verwaltete Identität der Funktions-App den verwalteten MCP-Server aufrufen, der die autorisierte Verbindung zum Senden von E-Mails verwendet.

Verwenden Sie den Debug-Chat-Agenten

Das Beispiel enthält einen Chat-Agent, der die Ausführung von Python-Code über den dynamischen Sitzungspool von Azure Container Apps verwenden kann. Die Chat-UI ist eine Debugoberfläche zum Testen der bereitgestellten Agent-App.

Nachdem azd up abgeschlossen ist, öffnen Sie den in der Bereitstellungsausgabe angezeigten Endpunkt der Funktions-App, und wechseln Sie dann zu /agents/main/. Wenn die Chat-UI geladen wird, fordert sie einen Funktionsschlüssel auf, damit er den Chatendpunkt des Agents aufrufen kann.

Rufen Sie den Standardfunktionsschlüssel für die App ab:

az functionapp keys list \
  --resource-group <RESOURCE_GROUP> \
  --name <FUNCTION_APP_NAME> \
  --query "functionKeys.default" \
  --output tsv

Fügen Sie den zurückgegebenen Schlüssel in den Chat-UI-Prompt ein.

Versuchen Sie, dem Chat-Agent eine Frage zu stellen, die von aktuellen öffentlichen Informationen oder codeausführung profitiert. Sie können z. B. fragen What's the weather in Seattle right now? oder Compare the current weather in Seattle and New York.

Der Chat-Agent verwendet nicht den Microsoft 365 Outlook verwalteten MCP-Server. Die E-Mail-Zustellung wird nur von dem zeitgesteuerten Blogzusammenfassungs-Agenten verwendet.

Führen Sie den Timer-Agenten bei Bedarf aus

Der Agent wird automatisch nach seinem Zeitplan ausgeführt. Um sie sofort zu testen, führen Sie die zeitgeberauslöste Funktion manuell aus dem Azure-Portal aus.

  1. Öffnen Sie im portal Azure die von azd erstellte Funktions-App.

  2. Wählen Sie im Bereich OverviewFunctions aus, und wählen Sie dann die durch einen Zeitgeber ausgelöste Agent-Funktion mit dem Namen daily_microsoft_blog_summary aus.

  3. Wählen Sie Code + Test aus.

  4. Wählen Sie "Protokolle " aus, um den Protokolldatenstrom für diese Funktion zu öffnen.

  5. Wählen Sie "Testen/Ausführen" aus, lassen Sie den Anforderungstext als {}, und wählen Sie dann "Ausführen" aus.

Die Anforderung gibt eine akzeptierte Antwort zurück, und die Funktionsausführung beginnt im Hintergrund.

Überwachen der Ausführung

Kehren Sie für die zeitgesteuerte Funktion zum Bereich Protokolle in Code + Test zurück. In den Protokollen werden Funktionsausführungs- und Laufzeitmeldungen angezeigt. Abhängig von der Laufzeitprotokollebene werden möglicherweise auch Modell- und Toolaktivitäten angezeigt.

Sie können Application Insights auch verwenden, um die Ausführung zu überprüfen, nachdem Telemetrie aufgenommen wurde:

  1. Wählen Sie im linken Menü der Funktions-App "Application Insights" aus.

  2. Öffnen Sie die zugeordnete Application Insights-Ressource.

  3. Verwenden Sie die Transaktionssuche oder Protokolle , um die Ausführung zu finden, die beim manuellen Ausführen der Funktion gestartet wurde.

Die Ausführung ist abgeschlossen, wenn die Protokolle zeigen, dass die Funktionsausführung erfolgreich abgeschlossen wurde. Wenn die E-Mail-Zustellung aktiviert ist und die Microsoft 365 Outlook Verbindung autorisiert ist, überprüfen Sie den Posteingang des Empfängers auf den Microsoft Blogdigest. Überprüfen Sie andernfalls die endgültige Antwort des Agents in den Funktionsprotokollen oder Application Insights.

Bereinigen von Ressourcen

Wenn Sie fertig sind, verwenden Sie diesen Befehl, um die Funktions-App und verwandte Ressourcen aus Azure zu löschen:

azd down