Quickstart: Crea un'app AI basata sugli eventi con competenze ospitate su Funzioni di Azure

In questa guida introduttiva distribuisci un'app di IA basata su eventi in Funzioni di Azure usando Azure Developer CLI (azd). L'esempio include due compiti di IA:

  • Un compito di chat che puoi usare per testare l'app distribuita in un browser. Questo compito può utilizzare l'esecuzione di codice Python in sandbox e navigare sul web.
  • Un compito attivato da timer che raccoglie i post recenti Microsoft del blog, li riassume e può inviare il digest via email tramite strumenti MCP da un server MCP gestito per un connettore Microsoft 365 Outlook.

Il progetto utilizza le competenze ospitate da Funzioni di Azure. Definisci i compiti di IA nei .agent.md file, configuri i valori predefiniti di runtime a livello di app, agents.config.yamlcolleghi server MCP remoti in mcp.json, e distribuisci l'app come qualsiasi altra app di funzione.

Importante

Le skill ospitate in Funzioni di Azure sono attualmente in anteprima. Le funzionalità, i nomi di configurazione e i connettori supportati possono cambiare prima della disponibilità generale.

Il modello effettua il provisioning di tutte le risorse di Azure necessarie, incluse risorse di calcolo, archiviazione, monitoraggio, una distribuzione del modello, un pool di sessioni e risorse del connettore opzionali per il recapito di e-mail.

Il completamento di questa guida introduttiva può comportare un costo ridotto nell'account Azure perché l'app usa il piano Flex Consumption e le risorse correlate Azure.

Prerequisiti

  • Azure Developer CLI (azd).
  • interfaccia della riga di comando di Azure. È anche possibile eseguire comandi di interfaccia della riga di comando di Azure in Azure Cloud Shell.
  • Un account Azure con una sottoscrizione attiva. Creare un account gratuito.
  • Autorizzazioni per creare gruppi di risorse, app per funzioni, identità gestite, risorse Microsoft Foundry, distribuzioni di modelli, pool di sessioni di App contenitore di Azure, namespace dei connettori e connessioni nella propria sottoscrizione.
  • Per abilitare il recapito della posta elettronica, è necessario un account Microsoft 365 a cui sia possibile accedere, che possa inviare email e che possa essere usato come indirizzo del destinatario per verificare il risultato.

Inizializzare il progetto

Usare il azd init comando per creare un progetto locale dal repository di esempio.

  1. In Visual Studio Code aprire una cartella o un'area di lavoro in cui si vuole creare il progetto.

  2. Nel terminale, esegui questo azd init comando:

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

    Questo comando recupera i file del progetto dal repository di esempio serverless agents e inizializza il progetto nella cartella corrente. Il flag -e assegna un nome all'ambiente corrente azd, che tiene traccia dello stato di distribuzione e viene usato nei nomi delle risorse Azure.

  3. Abilita la consegna delle email impostando l'indirizzo email del destinatario utilizzato dal timer. Più avanti in questa guida introduttiva è necessario accedere a un account Microsoft 365 per autorizzare la connessione Microsoft 365 Outlook che invia il messaggio di posta elettronica.

    azd env set TO_EMAIL <recipient@example.com>
    

    Sostituire <recipient@example.com> con il proprio indirizzo di posta elettronica o con un altro destinatario consentito dai criteri di posta elettronica dell'organizzazione. Alcune organizzazioni limitano la posta elettronica basata sul connettore a destinatari interni o bloccano i destinatari esterni, quindi l'invio del messaggio di test a se stessi è l'opzione più affidabile.

    Note

    Il recapito tramite posta elettronica è facoltativo nell'esempio. Se si salta questa impostazione, azd up non crea il namespace del connettore, la connessione Microsoft 365 Outlook o il server MCP gestito. Il task timer continua a girarsi e restituisce il digest nella sua risposta finale, così puoi verificare l'esecuzione nei log o nelle Application Insights.

Esaminare il progetto

Prima di distribuire, esamina i file di progetto che definiscono l'app:

File o cartella Scopo
src/main.agent.md Definisce il compito di chat e abilita endpoint integrati per l'interfaccia di debug chat. Questa attività può usare l'esecuzione di codice Python in sandbox e non usa il server MCP gestito di Microsoft 365 Outlook.
src/daily_microsoft_blog_summary.agent.md Definisce l'attività di riepilogo del blog attivata da un timer. La materia iniziale YAML dichiara il trigger del timer, e il corpo markdown contiene le istruzioni del compito.
src/agents.config.yaml Definisce i valori predefiniti di runtime a livello di app, inclusi la distribuzione del modello e l'endpoint del pool di sessioni dinamiche di App contenitore di Azure utilizzato dai task nell'app.
src/mcp.json Elenca i server MCP remoti disponibili per i compiti dell'IA. In questo modello src è la radice del progetto dell'app per le funzioni e questo file include l'endpoint server MCP gestito per Microsoft 365 Outlook quando il recapito della posta elettronica è abilitato.
infra/ Contiene i file Bicep usati da azd per effettuare il provisioning dell'app per funzioni, dell'archiviazione, del monitoraggio, delle risorse Foundry, della distribuzione del modello, del pool di sessioni, delle risorse facoltative del namespace del connettore e della configurazione dell'identità.
src/function_app.py File di bootstrap necessario per l'host di Functions. In genere non è necessario modificare questo file.

Il compito attivato dal timer è definito in daily_microsoft_blog_summary.agent.md. L’intestazione dichiara la pianificazione del timer e le istruzioni in Markdown indicano all’attività di raccogliere i post recenti del blog di Microsoft, creare un riepilogo e inviare un’e-mail quando TO_EMAIL è configurato.

Distribuzione su Azure

Usa azd up per eseguire il provisioning delle risorse di Azure e distribuire l'app per le funzioni.

  1. Nel terminale eseguire questo comando dalla radice del progetto inizializzato:

    azd up
    
  2. Quando richiesto, selezionare la sottoscrizione e la località Azure da usare per il gruppo di risorse.

    Il template usa le impostazioni di distribuzione predefinite del modello Microsoft Foundry, a meno che non si personalizzino i parametri Bicep.

Al termine del comando, l'app viene distribuita in una nuova app per le funzioni in Azure. Il risultato della distribuzione include collegamenti alle risorse create.

Autorizzare la connessione

Quando imposti TO_EMAIL, la distribuzione crea un Spazio di Nomi Connettore con una connessione Microsoft 365 Outlook e un server MCP gestito. Questa configurazione permette al timer task di inviare email tramite strumenti di connettore senza codice API Outlook personalizzato. Prima che il compito possa inviare email, autorizza la connessione accedendo a un account Microsoft 365 che può inviare email.

Se non impostate TO_EMAIL, saltate questa sezione.

  1. Nel portale Azure cercare Connector Namespace.

  2. Aprire la risorsa spazio dei nomi del connettore creata da azd. La risorsa si trova nel gruppo di risorse creato da azd, il cui nome inizia con rg- e include il nome dell'ambiente scelto durante azd init (serverless-agents se è stato usato il comando di esempio).

    Selezionando la risorsa, si apre il portale Connector Namespaces, un ambiente separato per esplorare e gestire le connessioni, i trigger e i server MCP nello spazio dei nomi.

  3. Nel portale Connector Namespaces, individuate il connettore Microsoft 365 Outlook, quindi aprite la connessione creata dalla distribuzione.

  4. Selezionare Authenticate e quindi accedere con l'account Microsoft 365 che può inviare un messaggio di posta elettronica.

Al termine dell'autenticazione, l'identità gestita dell'app per le funzioni può chiamare il server MCP gestito, che usa la connessione autorizzata per inviare messaggi di posta elettronica.

Usa l'interfaccia della chat di debug

L'esempio include un compito di chat che utilizza l'esecuzione di codice Python tramite il pool di sessioni dinamiche di App contenitore di Azure. L'interfaccia della chat è una superficie di debug per testare l'app distribuita.

Dopo il completamento di azd up, aprire l'endpoint dell'app per funzioni visualizzato nell'output della distribuzione e quindi andare a /agents/main/. Quando l'interfaccia della chat si carica, richiede una chiave di funzione per chiamare l'endpoint della chat.

Ottenere la chiave di funzione predefinita per l'app:

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

Incollare la chiave restituita nel prompt dell'interfaccia utente della chat.

Prova a porre una domanda all'attività chat che tragga vantaggio da informazioni pubbliche aggiornate o dall'esecuzione del codice. Ad esempio, chiedere What's the weather in Seattle right now? o Compare the current weather in Seattle and New York.

Il compito di chat non utilizza il server MCP gestito Microsoft 365 Outlook. L'attività di riepilogo del blog attivata da un timer usa l'invio tramite email.

Esegui l'attività di timer su richiesta

L'attività viene eseguita automaticamente in base alla pianificazione del timer. Per testarla immediatamente, eseguire manualmente la funzione attivata dal timer dal portale di Azure.

  1. Nel portale Azure aprire l'app per le funzioni creata da azd.

  2. Nel pannello Panoramica , seleziona Funzioni, poi seleziona la funzione attivata dal timer chiamata daily_microsoft_blog_summary.

  3. Selezionare Codice e test.

  4. Selezionare Log per aprire il flusso di log per questa funzione.

  5. Selezionare Test/Esegui, lasciare il corpo della richiesta come {}e quindi selezionare Esegui.

La richiesta restituisce una risposta accettata e l'esecuzione della funzione viene avviata in background.

Monitorare l'esecuzione

Torna al riquadro Logs in Code + Test per la funzione attivata tramite timer. I log mostrano l'esecuzione della funzione e i messaggi di runtime. A seconda del livello di log di runtime, è anche possibile visualizzare l'attività del modello e degli strumenti.

È anche possibile usare Application Insights per esaminare l'esecuzione dopo l'inserimento dei dati di telemetria:

  1. Nel menu a sinistra dell'app per le funzioni selezionare Application Insights.

  2. Aprire la risorsa di Application Insights associata.

  3. Usare La ricerca transazioni o i log per trovare l'esecuzione avviata quando è stata eseguita manualmente la funzione.

L'esecuzione viene completata quando i log indicano che l'esecuzione della funzione è stata completata correttamente. Se l'invio di e-mail è abilitato e la connessione a Microsoft 365 Outlook è autorizzata, controllare la posta in arrivo del destinatario per verificare la presenza del riepilogo del blog Microsoft. Altrimenti, rivedere la risposta finale nei log delle funzioni o nelle Application Insights.

Pulire le risorse

Al termine, usare questo comando per eliminare l'app per le funzioni e le risorse correlate da Azure:

azd down