A popularização do desenvolvimento de agentes de IA baseados em configurações simples — utilizando arquivos AGENTS.md, definições de chamadas de skills e o Model Context Protocol (MCP) — transformou a produtividade do time de engenharia local, rodando diretamente no VS Code ou via Copilot CLI. Contudo, o desafio de viabilizar a colaboração e a escalabilidade desses agentes em produção é constante.
Recentemente, o time do Azure introduziu uma funcionalidade que permite hospedar esses projetos de agentes declarativos diretamente no Azure Functions. Esta abordagem é arquiteturalmente interessante porque mantém a consistência: o "código-fonte" que você valida no seu ambiente local (GitHub Copilot) é o mesmo que você promove para o ambiente de nuvem, reduzindo a fricção no ciclo de vida do desenvolvimento.
Do Desenvolvimento Local à Nuvem
A estrutura do projeto permanece familiar e centrada em arquivos de configuração:
src/
├── AGENTS.md # Instruções e personalidade do agente
├── .github/skills/ # Skills reutilizáveis
├── .vscode/mcp.json # Configurações do servidor MCP
└── tools/ # Scripts em Python personalizados
Essa estrutura, ao ser provisionada no Azure, é interpretada pelo GitHub Copilot SDK, que atua como um harness capaz de expor o agente como um serviço de API HTTP escalável e um servidor MCP compatível.
Deploy com um Único Comando
A experiência de deployment foi otimizada para o uso da Azure Developer CLI (azd). Ao executar azd up, o CLI automatiza o empacotamento do app do agente e aprovisiona os recursos necessários.
Um ponto de atenção para arquitetos FinOps: durante essa configuração, é fundamental selecionar o modelo de linguagem (LLM) adequado (via GitHub ou Microsoft Foundry), visto que o custo operacional e a latência dependerão diretamente da escolha desse serviço. O sistema também configura automaticamente um Azure File Share para persistir o histórico de chat, garantindo que o estado da sessão seja preservado em cenários de scale-out.
Endpoints e Integrações
Além da interface de chat embutida, o Azure Functions gera automaticamente dois pontos de entrada essenciais:
- Chat Endpoint: Um HTTP trigger em
/agent/chatpara invocações REST, com suporte a streaming (SSE), facilitando a integração em aplicações front-end proprietárias. - MCP Server: Disponível em
/runtime/webhooks/mcp, permite que seu editor local (VS Code) consuma o agente hospedado na nuvem, unificando o ambiente de desenvolvimento local com recursos de infraestrutura remota.
Extensibilidade: Python sem Framework
Uma facilidade para times de engenharia é a possibilidade de injetar ferramentas personalizadas simplesmente adicionando arquivos Python dentro de src/tools/. O runtime do Azure Functions encarrega-se do registro e execução da ferramenta. Se o agente exigir bibliotecas externas, basta declará-las no src/requirements.txt.
Agentes Orientados a Eventos
A transição para Azure Functions permite que os agentes transcendam o modelo simples de pergunta-resposta. É possível, por exemplo, utilizar triggers como temporizadores (timer) na configuração AGENTS.md:
---
functions:
- name: morningBriefing
trigger: timer
schedule: "0 0 8 * * *"
prompt: "Check the latest build status and summarize any new critical issues."
---
Isso transforma o agente em um worker autônomo, capaz de monitorar pipelines de CI/CD ou bases de conhecimento de forma proativa.
Embora estejamos tratando de uma feature em fase experimental, a proposta de unificar a definição de agentes com as ferramentas de orquestração do Azure é um passo importante para quem busca reduzir o tempo de latência entre a ideia (código) e o valor entregue (execução em nuvem).
Para instruções de implementação e testes, consulte o repositório oficial: https://github.com/Azure-Samples/functions-markdown-agent
Artigo originalmente publicado em Azure Updates - Latest from Azure Charts.