Competências alojadas no Funções do Azure

O Funções do Azure hosted skills é um modelo de programação para construir capacidades inteligentes orientadas a eventos e alojadas na cloud no Funções do Azure. Defines o comportamento com Markdown, instruções em linguagem natural e configuração declarativa. Pode integrar competências alojadas com as suas aplicações através de triggers e bindings do Funções do Azure, ou trazer o seu próprio código como ferramentas quando necessário.

Importante

As habilidades hospedadas do Funções do Azure estão atualmente em pré-visualização. Funcionalidades, nomes de configuração e conectores suportados podem mudar antes da disponibilidade geral.

Uma aplicação de competências alojada no Funções do Azure é uma aplicação de funções que utiliza o modelo de programação de competências alojado. Contém tarefas de IA definidas em .agent.md ficheiros, e as tarefas podem opcionalmente usar orientações Markdown reutilizáveis a partir de SKILL.md ficheiros. Neste artigo, competências alojadas referem-se ao modelo de programação, tarefa a uma unidade individual executável, e competência à orientação reutilizável do Markdown.

Scenarios

As competências alojadas no Funções do Azure funcionam melhor para cargas de trabalho de IA orientadas por eventos e ricas em ferramentas. Cenários comuns incluem:

  • Tarefas HTTP que recebem um pedido, chamam ferramentas e devolvem uma resposta estruturada.
  • Tarefas agendadas que executam relatórios diários, resumos, fluxos de trabalho de limpeza ou reconciliação.
  • Tarefas de fila ou de mensagens que processam itens de trabalho que necessitam de raciocínio do modelo ou de chamadas a ferramentas.
  • Tarefas de alteração de dados que reagem a ficheiros, registos ou linhas de base de dados novos ou alterados.
  • Tarefas acionadas por conectores que reagem a eventos provenientes de conectores geridos, como mensagens do Teams, correio do Outlook ou eventos de calendário.

Dica

Para experimentar competências alojadas no Funções do Azure, consulte Construir uma aplicação de IA orientada a eventos com competências alojadas no Funções do Azure. Ao usar um azd modelo, pode ter uma aplicação funcional implementada no Azure em minutos.

Por que usar Funções para as suas aplicações de IA?

As cargas de trabalho de IA em produção precisam de mais do que um prompt e um modelo. Precisam de formas fiáveis para iniciar o trabalho, ligar para sistemas externos, persistir o histórico de conversas, executar código não confiável em segurança, autenticar sem segredos, emitir telemetria e escalar a pedido.

O Functions fornece um modelo de computação orientado a eventos para estas preocupações operacionais. As competências alojadas no Funções do Azure aplicam esse mesmo modelo ao teu código de IA. Os benefícios incluem:

  • As tarefas de IA são a unidade de trabalho. Cada tarefa é definida num ficheiro separado .agent.md com configuração declarativa e instruções em linguagem natural.
  • Os eventos iniciam tarefas. As funções desencadeiam tarefas de IA a partir de agendamentos, pedidos HTTP, mensagens de fila, alterações de blobs, eventos da Grade de Eventos, mensagens do Service Bus e outros eventos suportados.
  • As funcionalidades configuram-se primeiro, recorrendo a código apenas quando necessário. Pode configurar as tarefas para usar servidores MCP remotos, servidores MCP hospedados em espaços de nomes de conectores, competências e execuções de código isoladas. Escreve as tuas próprias ferramentas baseadas em Python para lógica específica de aplicações.
  • O alojamento do Funções do Azure está integrado. As competências alojadas no Funções do Azure suportam os planos Flex Consumption, Premium e Dedicated (App Service). O Flex Consumption oferece dimensionamento até zero, faturação por segundo e dimensionamento automático. Todos os planos suportam identidade gerida, integração com redes virtuais e Application Insights.
  • A canalização operacional é tratada por si. O runtime gere a descoberta de tarefas, registo de gatilhos, montagem de ferramentas, histórico de sessões e endpoints opcionais incorporados.

Funciona com outras plataformas de IA da Microsoft

As competências alojadas no Funções do Azure são complementares a outras ofertas de IA da Microsoft e podem ser usadas em conjunto. O seu ponto ideal é construir capacidades inteligentes alojadas na cloud e orientadas por eventos no Funções do Azure através de um modelo de programação acessível. As competências hospedadas podem expor capacidades através de HTTP ou MCP para serem utilizadas por outras aplicações, agentes e estruturas de teste para agentes.

Escolha a funcionalidade Azure que melhor se adapta ao seu cenário:

Scenario Option
Expor funções determinísticas como ferramentas para outro cliente de IA extensão MCP do Funções do Azure
Orquestração de longa duração, com várias etapas e aprovações com intervenção humana Durable Functions
Criar e gerir agentes de IA sem alojamento personalizado Microsoft Foundry ou Copilot Studio

Definição do projeto

Uma aplicação de competências hospedada no Funções do Azure é um projeto padrão de aplicação de funções em Python v2, implementado juntamente com ficheiros específicos de runtime. Os seguintes ficheiros de projeto são sempre necessários para aplicações de funções em Python:

File Purpose
function_app.py Importa create_function_app() e devolve a aplicação de Funções do Azure configurada.
host.json Configura o host do Funções do Azure.
requirements.txt Inclui o pacote de runtime de skills alojado e quaisquer dependências específicas de Python da aplicação.

Para mais informações, consulte o guia de referência para programadores do Funções do Azure para aplicações Python.

Ficheiros de execução do agente

O runtime descobre estes ficheiros e pastas, que são implementados com o projeto da aplicação:

Ficheiro ou pasta Purpose
*.agent.md Define tarefas de IA. O front matter em YAML configura a tarefa, e o corpo em Markdown constitui as instruções. O teu projeto deve ter pelo menos um .agent.md ficheiro.
agents.config.yaml (Opcional) Define as predefinições de runtime para toda a aplicação, como o modelo, o timeout e as definições da sandbox.
mcp.json Define os servidores HTTP MCP remotos que as tarefas de IA podem usar como ferramentas, incluindo ferramentas de ligação para ações como enviar emails ou trabalhar com o Teams.
tools/ (Opcional) Contém quaisquer ferramentas Python personalizadas que crie para fornecer capacidades que não sejam já fornecidas por servidores MCP, ligações, competências ou execuções em sandbox.
skills/ (Opcional) Contém recursos reutilizáveis de instruções SKILL.md que as tarefas de IA podem carregar conforme necessário.

Cada ficheiro .agent.md utiliza um cabeçalho YAML seguido de instruções em Markdown. Este exemplo define uma tarefa de IA ativada por temporizador que se executa diariamente às 15h (UTC):

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

A secção introdutória especifica como a tarefa é invocada. O corpo em Markdown é o bloco de instruções que o ambiente de execução passa ao modelo durante a execução. A substituição de variáveis de ambiente permite que instruções e valores de configuração referenciam definições de aplicação, como $TO_EMAIL.

Cada .agent.md ficheiro define uma tarefa de IA. O nome do ficheiro determina o nome da Azure Function e o segmento de rota dos pontos finais incorporados. O name campo é um nome de exibição para registos, etiquetas e documentação.

Para a lista completa de campos de ficheiros agentes, opções de configuração de aplicações e regras de substituição de variáveis, consulte a referência de competências hospedadas no Funções do Azure.

Processo de arranque da aplicação

Quando o anfitrião do Functions carrega a aplicação, o método create_function_app deteta ficheiros .agent.md, servidores MCP, capacidades e ferramentas personalizadas no projeto. Valida a configuração, reúne as ferramentas para cada tarefa e regista os gatilhos e endpoints necessários.

Quando um gatilho é ativado, o runtime constrói a tarefa com as suas instruções resolvidas, modelo, ferramentas e histórico de sessões, executando-a depois usando o Microsoft Agent Framework.

Ativar tarefas de IA a partir de eventos

O runtime suporta múltiplos gatilhos na tua aplicação, mas apenas um gatilho por ficheiro .agent.md. Uma definição de gatilho tem um type e um args objeto. O type identifica a associação do acionador, e args contém as definições específicas do acionador que configuram que evento inicia a tarefa de IA.

Padrões comuns de gatilho incluem:

Padrão Exemplo
Tarefa HTTP Receber uma solicitação, invocar ferramentas e devolver uma resposta estruturada.
Tarefa agendada Execute um fluxo de trabalho diário de criação de relatórios, resumo, limpeza ou reconciliação.
Tarefa de fila ou mensagem Processar itens de trabalho que necessitem de raciocínio de modelo ou chamadas de ferramentas.
Tarefa de armazenamento ou evento de base de dados Reagir a ficheiros, registos ou eventos alterados.
Tarefa acionada por conector Reagir a eventos de conectores geridos, como mensagens do Teams, correio do Outlook ou eventos de calendário suportados pelo conector.

Para obter detalhes sobre a configuração de acionadores, os tipos suportados e a args referência, consulte a referência de competências alojadas no Funções do Azure.

Ferramentas de IA suportadas

As competências alojadas do Funções do Azure suportam vários tipos de ferramentas. Começa com capacidades configuradas e usa ferramentas Python personalizadas para lógica específica da aplicação que não se encaixe nessas opções.

Servidores MCP remotos

Defina servidores HTTP remotos ou HTTP MCP transmitíveis em mcp.json. O runtime descobre estes servidores e disponibiliza as suas ferramentas para todas as tarefas de IA. Use servidores MCP remotos quando as tarefas precisarem de ligar a ferramentas alojadas por outro serviço ou compor capacidades através dos limites da aplicação.

Conectores do Azure

Os conectores permitem que tarefas de IA funcionem com serviços externos sem código cliente personalizado da API. Um Espaço de nomes do conector acolhe conexões, acionadores e servidores MCP para serviços como o Microsoft 365 Outlook, o Teams, o Salesforce, o SAP ou o SQL. Utilize acionadores de conector para iniciar tarefas a partir de eventos externos e ferramentas MCP do conector para invocar ações de serviço a partir das instruções da tarefa.

Competências

Guarde os recursos de prompt reutilizáveis na pasta skills/. Cada pasta de habilidades contém um SKILL.md ficheiro com um nome, descrição e instruções de marcação. O runtime descobre automaticamente competências e torna-as disponíveis para tarefas de IA. As competências ajudam a manter as instruções base pequenas, ao mesmo tempo que disponibilizam orientações específicas para cada domínio quando necessário.

Execução em sandbox

O ambiente de execução pode usar sessões dinâmicas do Azure Container Apps para fornecer às tarefas de IA uma ferramenta execute_python. Esta ferramenta executa Python num pool de sessões isolado, o que é útil para execução de código e análise de dados. Configure o ponto final do pool de sessões em agents.config.yaml.

Ferramentas personalizadas de Python

Usa ferramentas Python personalizadas para capacidades específicas da aplicação. Adicione ficheiros .py à pasta tools/ e decore funções com @tool do pacote de runtime. O runtime descobre e regista automaticamente estas ferramentas.

Para detalhes de configuração, tabelas de campos e exemplos de código para cada tipo de ferramenta, consulte a referência de competências hospedadas no Funções do Azure.

Sessões e estado

As interações com vários turnos precisam de histórico de sessões. No Azure, o tempo de execução armazena o histórico de sessões no Armazenamento de Blobs na conta da aplicação de funções AzureWebJobsStorage. Para desenvolvimento local, o runtime recorre ao histórico de sessões baseado em ficheiros. A execução em sandbox tem também em conta a sessão e utiliza sessões isoladas para execuções não relacionadas.

Observability

A partir da azure-functions-agents-runtime versão 0.1.0b6, o runtime inclui um conjunto de funcionalidades de observabilidade que ainda está em desenvolvimento ativo e sujeito a alterações.

Para os detalhes de configuração mais recentes, campos de telemetria e orientações de utilização, utilize a documentação do repositório em tempo de execução: