Démarrage rapide : Créer des agents serverless à l’aide de Azure Functions

Dans ce guide de démarrage rapide, vous déployez des agents serverless sur Azure Functions à l’aide de l’interface CLI développeur Azure (azd). L’exemple comprend deux agents :

  • Agent de conversation que vous pouvez utiliser pour tester l’application déployée dans un navigateur. Cet agent peut utiliser l’exécution de code Python dans un bac à sable et naviguer sur le web.
  • Agent déclenché par minuteur qui rassemble les billets de blog récents Microsoft, les récapitule et peut envoyer par e-mail la synthèse via les outils MCP à partir d’un serveur MCP géré pour un connecteur Microsoft 365 Outlook.

Le projet utilise l’environnement d’exécution des agents serverless Azure Functions. Vous définissez des agents dans des fichiers Markdown, configurez les valeurs par défaut du runtime à l’échelle de l’application, agents.config.yamlconnectez des serveurs MCP distants mcp.jsonet déployez l’application comme n’importe quelle autre application de fonction.

Le modèle provisionne une application de fonction Flex Consumption, un stockage, une surveillance, un projet et un déploiement de modèles Microsoft Foundry, un pool de sessions dynamiques Azure Container Apps et les attributions d’identité requises. Lorsque la remise de courrier est activée, elle provisionne également un espace de noms de connecteur, une connexion Microsoft 365 Outlook et un serveur MCP managé pour le connecteur.

L’exécution de ce guide de démarrage rapide peut entraîner un petit coût dans votre compte Azure, car l’application utilise le plan Flex Consumption et les ressources Azure associées.

Conditions préalables

  • Azure Developer CLI (azd).
  • Azure CLI. Vous pouvez également exécuter des commandes Azure CLI dans Azure Cloud Shell.
  • Un compte Azure avec un abonnement actif. Créez un compte gratuitement.
  • Autorisations pour créer des groupes de ressources, des applications de fonction, des identités managées, des ressources Microsoft Foundry, des déploiements de modèles, des pools de sessions Azure Container Apps, des espaces de noms Connector et des connexions dans votre abonnement.
  • Pour activer la remise de courrier électronique, un compte Microsoft 365 auquel vous pouvez vous connecter, qui peut envoyer un e-mail et que vous pouvez utiliser comme adresse de destinataire pour vérifier la sortie de l’agent.

Initialiser le projet

Utilisez la azd init commande pour créer un projet local à partir de l’exemple de référentiel.

  1. Dans Visual Studio Code, ouvrez un dossier ou un espace de travail dans lequel vous souhaitez créer votre projet.

  2. Dans le terminal, exécutez cette azd init commande :

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

    Cette commande récupère les fichiers du projet à partir de l’exemple de dépôt serverless agents et initialise le projet dans le dossier actuel. L’indicateur -e nomme l’environnement azd actuel, qui suit l’état du déploiement et est utilisé dans Azure noms de ressources.

  3. Activez la remise de courrier en définissant l’adresse e-mail du destinataire utilisée par l’agent du minuteur. Plus loin dans ce guide de démarrage rapide, vous devez vous connecter à un compte Microsoft 365 pour autoriser la connexion Microsoft 365 Outlook qui envoie l’e-mail.

    azd env set TO_EMAIL <recipient@example.com>
    

    Remplacez <recipient@example.com> par votre propre adresse e-mail ou par un autre destinataire autorisé par les stratégies de messagerie de votre organisation. Certaines organisations limitent l’e-mail basé sur le connecteur aux destinataires internes ou bloquent les destinataires externes. L’envoi du message de test est donc l’option la plus fiable.

    Note

    La remise par e-mail est facultative dans l’exemple. Si vous ignorez ce paramètre, azd up ne crée pas l'espace de noms du connecteur, la connexion Microsoft 365 Outlook ou le serveur MCP géré. L’assistant de minuterie s’exécute toujours et renvoie le résumé dans sa réponse finale afin que vous puissiez vérifier l’exécution dans les journaux ou dans Application Insights.

Passer en revue le projet

Avant de déployer, passez en revue les fichiers projet qui définissent l’application d’agent serverless :

Fichier ou dossier Purpose
src/main.agent.md Définit l’assistant de conversation et active les points de terminaison intégrés pour l’interface utilisateur de débogage du chat. Cet agent peut utiliser l'exécution de code en bac à sable Python et n'utilise pas le serveur MCP géré Microsoft 365 Outlook.
src/daily_microsoft_blog_summary.agent.md Définit l’assistant de synthèse du blog Microsoft déclenché par minuterie. L’en-tête YAML déclare le déclencheur temporisé, et le corps du document Markdown contient les instructions de l’assistant.
src/agents.config.yaml Définit les valeurs par défaut du runtime à l’échelle de l’application, notamment le déploiement du modèle et le point de terminaison du pool de sessions dynamiques d’Azure Container Apps utilisé par les agents de l’application.
src/mcp.json Répertorie les serveurs MCP distants disponibles pour les agents. Dans ce modèle, src est la racine du projet d’application de fonction, et ce fichier inclut le point de terminaison de serveur MCP managé pour Microsoft 365 Outlook lorsque la remise de courrier est activée.
infra/ Contient les fichiers Bicep utilisés par azd pour provisionner l’application de fonction, le stockage, la supervision, les ressources Foundry, le déploiement de modèle, le pool de sessions, les ressources facultatives de l’espace de noms du connecteur et la configuration de l’identité.
src/function_app.py Fichier d’amorçage requis pour l’hôte Functions. Vous n’avez généralement pas besoin de modifier ce fichier.

L’agent déclenché par le minuteur est défini dans daily_microsoft_blog_summary.agent.md. L’en-tête déclare le calendrier du minuteur, et les instructions Markdown indiquent à l’agent de rassembler de récents billets de blog de Microsoft, de créer une synthèse et d’envoyer un e-mail lorsque TO_EMAIL est configuré.

Déployer sur Azure

Utilisez azd up pour approvisionner des ressources Azure et déployer l’application de fonction.

  1. Dans le terminal, exécutez cette commande à partir de la racine du projet initialisé :

    azd up
    
  2. Lorsque vous y êtes invité, sélectionnez l’abonnement Azure et l’emplacement à utiliser pour le groupe de ressources.

    Le modèle utilise ses paramètres de déploiement de modèle de Microsoft Foundry par défaut, sauf si vous personnalisez les paramètres de Bicep.

Une fois la commande terminée, l’application est déployée sur une nouvelle application de fonction dans Azure. La sortie du déploiement inclut des liens vers les ressources créées.

Autoriser la connexion

Lorsque TO_EMAIL est défini, le déploiement crée un espace de noms de connecteur avec une connexion Microsoft 365 Outlook et un serveur MCP géré. Cette configuration permet à l’agent du minuteur d’envoyer un e-mail via des outils de connecteur sans code d’API de Outlook personnalisé. Avant que l’agent puisse envoyer un e-mail, autorisez la connexion en vous connectant à un compte Microsoft 365 qui peut envoyer un e-mail.

Si vous n’avez pas défini TO_EMAIL, ignorez cette section.

  1. Dans le portail Azure, recherchez Connector Namespace.

  2. Ouvrez la ressource d’espace de noms du connecteur créée par azd. La ressource se trouve dans le groupe de ressources créé par azd, dont le nom commence rg- par et inclut le nom de l’environnement que vous avez choisi pendant azd init (serverless-agents si vous avez utilisé l’exemple de commande).

    La sélection de cette ressource ouvre le portail Connector Namespaces, une interface distincte permettant de parcourir et de gérer les connexions, les déclencheurs et les serveurs MCP dans l’espace de noms.

  3. Dans le portail des espaces de noms des connecteurs, recherchez le connecteur Microsoft 365 Outlook, puis ouvrez la connexion créée par le déploiement.

  4. Sélectionnez Authenticate, puis connectez-vous avec le compte Microsoft 365 qui peut envoyer un e-mail.

Une fois l’authentification réussie, l’identité managée de l’application de fonction peut appeler le serveur MCP managé, qui utilise la connexion autorisée pour envoyer des e-mails.

Utiliser l’agent de chat de débogage

L’exemple inclut un agent conversationnel qui peut utiliser l’exécution de code Python via le pool de sessions dynamiques Azure Container Apps. L’interface utilisateur du chat sert d’interface de débogage pour tester l’application d’agent déployée.

Une fois azd up terminé, ouvrez le point de terminaison de l’application de fonction affiché dans la sortie du déploiement, puis accédez à /agents/main/. Lorsque l’interface utilisateur de conversation se charge, elle demande une clé de fonction afin qu’elle puisse appeler le point de terminaison de conversation de l’agent.

Obtenez la clé de fonction par défaut pour l’application :

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

Collez la clé obtenue dans le champ de saisie de l’interface de chat.

Essayez de poser à l’agent de conversation une question qui tire parti des informations publiques actuelles ou de l’exécution du code. Par exemple, demandez What's the weather in Seattle right now? ou Compare the current weather in Seattle and New York.

L'agent de conversation n'utilise pas le serveur MCP géré Microsoft 365 Outlook. La remise par courrier électronique est utilisée uniquement par l’assistant de synthèse de blog déclenché par le minuteur.

Exécuter l’agent temporisateur à la demande

L’agent s’exécute automatiquement selon sa programmation. Pour le tester immédiatement, exécutez manuellement la fonction déclenchée par le minuteur à partir du portail Azure.

  1. Dans le portail Azure, ouvrez l’application de fonction créée par azd.

  2. Dans le panneau Vue d’ensemble , sélectionnez Fonctions, puis sélectionnez la fonction d’agent déclenchée par le minuteur nommée daily_microsoft_blog_summary.

  3. Sélectionnez Code + test.

  4. Sélectionnez Journaux d’activité pour ouvrir le flux de journal pour cette fonction.

  5. Sélectionnez Test/Exécution, laissez le corps de la demande sous la forme {}, puis sélectionnez Exécuter.

La requête retourne une réponse acceptée et l’exécution de la fonction démarre en arrière-plan.

Surveiller l’exécution

Revenez au volet Journaux dans Code + Test pour la fonction déclenchée par le minuteur. Les journaux affichent l’exécution de la fonction et les messages d’exécution. Selon le niveau du journal d’exécution, vous pouvez également voir l’activité du modèle et de l’outil.

Vous pouvez également utiliser Application Insights pour passer en revue l’exécution après l’ingestion des données de télémétrie :

  1. Dans le menu de gauche de l’application de fonction, sélectionnez Application Insights.

  2. Ouvrez la ressource Application Insights associée.

  3. Utilisez la recherche de transactions ou les journaux pour rechercher l’exécution qui a démarré lorsque vous avez exécuté manuellement la fonction.

L’exécution est terminée lorsque les journaux indiquent que l’exécution de la fonction s’est terminée correctement. Si la remise des e-mails est activée et que la connexion Microsoft 365 Outlook est autorisée, vérifiez la boîte de réception du destinataire pour obtenir la synthèse du blog Microsoft. Sinon, passez en revue la réponse finale de l’agent dans les journaux de fonction ou Application Insights.

Nettoyer les ressources

Lorsque vous avez terminé, utilisez cette commande pour supprimer l'application de fonction et les ressources associées de Azure :

azd down