Início rápido: Criar agentes sem servidor com o Funções do Azure

Neste guia de início rápido, implementa agentes sem servidor no Funções do Azure ao utilizar a Azure Developer CLI (azd). A amostra inclui dois agentes:

  • Um agente de chat que possas usar para testar a aplicação implementada num navegador. Este agente pode usar a execução de código Python em sandbox e navegar na web.
  • Um agente ativado por temporizador que recolhe os posts recentes do blogue Microsoft, os resume e pode enviar o resumo por email através de ferramentas MCP a partir de um servidor MCP gerido para um conector Microsoft 365 Outlook.

O projeto utiliza o runtime de agentes sem servidor do Funções do Azure. Defines agentes em ficheiros markdown, configuras os padrões de runtime para toda a aplicação em agents.config.yaml, ligas servidores MCP remotos em mcp.json, e implementas a aplicação como qualquer outra aplicação funcional.

O modelo prevê uma aplicação de função Flex Consumption, armazenamento, monitorização, um projeto e implementação de modelos Microsoft Foundry, um pool dinâmico de sessões Azure Container Apps e as atribuições de identidade necessárias. Quando a entrega de e-mail está ativada, também aprovisiona um namespace do conector, uma ligação ao Microsoft 365 Outlook e um servidor MCP gerido para o conector.

Completar este quickstart pode gerar um pequeno custo na sua conta Azure porque a aplicação utiliza o plano Flex Consumption e recursos Azure relacionados.

Pré-requisitos

  • CLI do Programador do Azure (azd).
  • CLI do Azure. Você também pode executar comandos da CLI do Azure no Azure Cloud Shell.
  • Uma conta do Azure com uma assinatura ativa. Cria uma conta gratuitamente.
  • Permissões para criar grupos de recursos, aplicações funcionais, identidades geridas, recursos do Microsoft Foundry, implementações de modelos, pools de sessões do Azure Container Apps, Espaços de Nomes do Conector e ligações na sua subscrição.
  • Para permitir a entrega de e-mails, precisa de uma conta do Microsoft 365 com a qual possa iniciar sessão, que possa enviar e-mails e que possa utilizar como endereço de destinatário para verificar o resultado do agente.

Inicializar o projeto

Use o azd init comando para criar um projeto local a partir do repositório de exemplos.

  1. No Visual Studio Code, abre uma pasta ou espaço de trabalho onde queres criar o teu projeto.

  2. No Terminal, execute este azd init comando:

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

    Este comando retira os ficheiros do projeto do repositório de amostras serverless agents e inicializa o projeto na pasta atual. A opção -e identifica o ambiente atual azd, que controla o estado da implementação e é utilizada nos nomes dos recursos do Azure.

  3. Ative a entrega de emails definindo o endereço de email do destinatário usado pelo agente temporizador. Mais tarde neste guia de início rápido, tem de iniciar sessão numa conta do Microsoft 365 para autorizar a ligação do Microsoft 365 Outlook que envia o e-mail.

    azd env set TO_EMAIL <recipient@example.com>
    

    Substitua <recipient@example.com> pelo seu próprio endereço de email, ou por outro destinatário permitido pelas políticas de email da sua organização. Algumas organizações restringem o email baseado em conector a destinatários internos ou bloqueiam destinatários externos, por isso enviar a mensagem de teste a si próprio é a opção mais fiável.

    Note

    A entrega por email é opcional no exemplo. Se ignorar esta configuração, azd up não cria o namespace do conector, a ligação ao Microsoft 365 Outlook nem o servidor MCP gerido. O agente temporizador continua a correr e devolve o resumo na resposta final para que possas verificar a execução nos logs ou no Application Insights.

Revise o projeto

Antes de implementar, revê os ficheiros do projeto que definem a aplicação de agente sem servidor:

Ficheiro ou pasta Purpose
src/main.agent.md Define o agente de chat e ativa endpoints incorporados para a interface de chat de depuração. Este agente pode usar a execução de código Python em sandbox e não utiliza o servidor MCP gerido do Microsoft 365 Outlook.
src/daily_microsoft_blog_summary.agent.md Define o agente de resumo do blogue da Microsoft despoletado por temporizador. A matéria inicial YAML declara o disparador do temporizador, e o corpo de marcação contém as instruções do agente.
src/agents.config.yaml Define os padrões de execução em toda a aplicação, incluindo a implementação do modelo e o endpoint do pool de sessões dinâmicas do Azure Container Apps usado pelos agentes na aplicação.
src/mcp.json Lista os servidores MCP remotos disponíveis para os agentes. Neste modelo, src é a raiz do projeto da aplicação funcional, e este ficheiro inclui o endpoint gestor do servidor MCP para Microsoft 365 Outlook quando a entrega de email está ativada.
infra/ Contém os ficheiros Bicep utilizados por azd para aprovisionar a aplicação de funções, o armazenamento, a monitorização, os recursos do Foundry, a implantação do modelo, o pool de sessões, os recursos opcionais do Connector Namespace e a configuração de identidade.
src/function_app.py Ficheiro bootstrap obrigatório para o host do Functions. Normalmente não precisas de editar este ficheiro.

O agente desencadeado pelo temporizador é definido em daily_microsoft_blog_summary.agent.md. O cabeçalho define a programação do temporizador, e as instruções em Markdown dizem ao agente para recolher publicações recentes do blogue da Microsoft, criar um resumo e enviar um e-mail quando o TO_EMAIL estiver configurado.

Publicar no Azure

Use azd up para provisionar Azure recursos e implementar a aplicação de funções.

  1. No Terminal, execute este comando a partir da raiz do projeto inicializado:

    azd up
    
  2. Quando solicitado, selecione a subscrição do Azure e a localização a usar para o grupo de recursos.

    O template utiliza as predefinições de implementação do modelo Microsoft Foundry, a menos que personalize os parâmetros do Bicep.

Após a conclusão do comando, a aplicação é implementada numa nova aplicação de funções no Azure. A saída de implementação inclui ligações para os recursos criados.

Autorizar a ligação

Quando TO_EMAIL está definido, a implementação cria um espaço de nomes do conector com uma ligação ao Microsoft 365 Outlook e um servidor MCP gerido. Esta configuração permite que o agente temporizador envie emails através de ferramentas de conectores sem código API personalizado do Outlook. Antes de o agente poder enviar um email, autorize a ligação iniciando sessão numa conta Microsoft 365 que possa enviar emails.

Se não definiste TO_EMAIL, salta esta secção.

  1. No portal do Azure, procure por Connector Namespace.

  2. Abra o recurso Namespace do Connector criado por azd. O recurso está no grupo de recursos criado por azd, cujo nome começa por rg- e inclui o nome do ambiente que escolheste durante azd init (serverless-agents se usaste o comando de exemplo).

    Selecionar o recurso abre o portal Connector Namespaces, uma experiência separada para navegar e gerir as ligações, triggers e servidores MCP no namespace.

  3. No portal Namespaces do Conector, localize o conector Microsoft 365 Outlook e, em seguida, abra a conexão criada pela implementação.

  4. Selecione Autenticar e depois inicie sessão com a conta Microsoft 365 que pode enviar email.

Após a autenticação ser concluída com êxito, a identidade gerida da aplicação de funções pode chamar o servidor MCP gerido, que utiliza a ligação autorizada para enviar e-mails.

Use o agente de chat de depuração

O exemplo inclui um agente de chat que pode usar execução de código Python através do pool de sessões dinâmicas do Azure Container Apps. A interface do chat serve de superfície de depuração para testar a aplicação agente implementada.

Depois de o azd up estar concluído, abra o endpoint da aplicação de funções mostrado na saída da implementação e, em seguida, aceda a /agents/main/. Quando a interface de chat é carregada, solicita uma chave de função para poder chamar o endpoint de chat do agente.

Obtenha a tecla de função padrão da aplicação:

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

Cole a chave devolvida no campo de prompt da interface de chat.

Tente perguntar ao agente de chat uma questão que beneficie de informação pública atual ou de execução de código. Por exemplo, pergunte a What's the weather in Seattle right now? ou Compare the current weather in Seattle and New York.

O agente de chat não usa o servidor MCP gerido Microsoft 365 Outlook. O envio por e-mail é utilizado apenas pelo agente de resumo do blog desencadeado por temporizador.

Executar o agente de temporização a pedido

O agente é executado automaticamente de acordo com a programação do temporizador. Para testar imediatamente, execute manualmente a função ativada pelo temporizador a partir do portal Azure.

  1. No portal Azure, abra a aplicação de funções criada por azd.

  2. Na lâmina Visão Geral , selecione Funções e depois selecione a função agente ativada pelo temporizador chamada daily_microsoft_blog_summary.

  3. Selecione Código + Teste.

  4. Selecione Logs para abrir o fluxo de logs desta função.

  5. Selecione Testar/Executar, deixe o corpo do pedido como {}, e depois selecione Executar.

O pedido devolve uma resposta aceite e a execução da função começa em segundo plano.

Monitorizar a execução

Voltar ao painel de Registos em Código + Teste para a função ativada pelo temporizador. Os registos mostram mensagens de execução de funções e de tempo de execução. Dependendo do nível do log de execução, também podes ver atividade de modelos e ferramentas.

Também pode usar o Application Insights para rever a execução após a ingestão da telemetria:

  1. No menu esquerdo da aplicação de funções, selecione Application Insights.

  2. Abra o recurso associado Application Insights.

  3. Use a Pesquisa de Transações ou os Registos para encontrar a execução que começou quando executou manualmente a função.

A execução está concluída quando os registos mostram que a execução da função foi concluída com sucesso. Se a entrega de e-mails estiver ativada e a ligação ao Microsoft 365 Outlook estiver autorizada, verifique a caixa de entrada do destinatário à procura do resumo do blogue da Microsoft. Caso contrário, reveja a resposta final do agente nos registos de funções ou nos Insights de Aplicação.

Limpeza de recursos

Quando terminares, usa este comando para eliminar a function app e os recursos relacionados do Azure:

azd down