Дата публикации
ai_products

Microsoft запустила серверless‑рантайм для AI‑агентов в Azure Functions (паблик превью)

Что нового

Microsoft открыла публичный превью Azure Functions serverless agents runtime — нового способа запускать AI‑агентов в Azure Functions как полноценную нагрузку, а не как «надстройку» над кодом.

Ключевые изменения:

  • Markdown‑first модель разработки
    Агент — это один файл .agent.md. Вверху — YAML‑метаданные с триггером и настройками, ниже — обычный markdown‑текст с инструкциями для агента на естественном языке.

  • Агенты как первый класс граждан в Azure Functions
    Вы описываете поведение в markdown, а не пишете обвязку вокруг SDK, очередей и сервисов. Триггеры, масштабирование, логирование и идентификация работают так же, как для обычных функций.

  • Поддержка большинства триггеров Azure Functions
    Из коробки доступны:

    • HTTP
    • Timer
    • Queue
    • Service Bus
    • Event Hubs
    • Cosmos DB
    • Blob Storage
    • Event Grid
      Плюс новые триггеры на основе подключений: сообщения в Microsoft Teams, почта и события календаря в Outlook.
  • Интеграция с 1400+ Azure connectors через MCP
    Любое подключение, у которого включён MCP‑endpoint, можно использовать как «инструмент» агента: отправлять почту, постить в Teams, создавать записи в SaaS‑системах, читать данные — без ручной работы с аутентификацией и API.

  • Встроенная поддержка MCP
    Агенты могут:

    • вызывать внешние MCP‑серверы как инструменты;
    • сами выступать MCP‑сервером для других агентов и клиентов.
  • Изолированные сессии для кода и браузера
    Код и браузер (через Playwright) запускаются в Azure Container Apps dynamic sessions. Каждая сессия агента изолирована от других.

  • Общий конфиг для всех агентов в приложении

    • agents.config.yaml — системные инструменты и модель по умолчанию;
    • mcp.json — список MCP‑серверов (включая MCP‑совместимые Azure‑коннекторы);
    • /tools — пользовательские Python‑инструменты;
    • /skills — переиспользуемые фрагменты промптов.
  • Провайдеры моделей из коробки
    Поддерживаются Microsoft Foundry, Azure OpenAI и OpenAI. Конкретные деплойменты вы указываете в конфиге.

  • Экономика serverless
    Запуск на плане Flex Consumption: масштабирование до нуля, биллинг по секундам, управляемая идентичность, VNet‑интеграция, Application Insights и знакомые DevOps‑инструменты для деплоя.

Как это работает

Агент = один .agent.md файл

Базовая идея: агент — это единица работы. Вы описываете, что он делает, а инфраструктура Azure Functions отвечает за как он запускается и масштабируется.

Пример: агент, который каждый день собирает техновости и отправляет дайджест по почте.

---
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. Scour the web for today's top tech news headlines. Use reputable sources;
   Include links to the original articles.
2. Summarize the top stories in a concise, well-formatted HTML email body.
3. Email the summary to $TO_EMAIL with the subject "Daily Tech News Summary"
   followed by today's date.

Что здесь происходит:

  • В YAML‑шапке описан триггер timer_trigger с cron‑расписанием 0 0 15 * * * — агент запускается каждый день в 15:00 (UTC).
  • Текст ниже — промпт, который видит модель: что искать, как форматировать, куда отправлять.
  • $TO_EMAIL — переменная окружения/настройка, которую вы задаёте в конфигурации функции.

Вы кладёте этот файл в приложение Azure Functions, деплоите — и агент начинает работать по расписанию. Никакого кода для HTTP‑клиентов, SMTP или Playwright внутри файла не требуется.

Общая конфигурация агентов

Поведение всех агентов в одном Function App можно настраивать общими файлами рядом с .agent.md:

  1. agents.config.yaml — системные инструменты и модель по умолчанию.
# agents.config.yaml
system_tools:
  dynamic_sessions_code_interpreter:
    endpoint: $ACA_SESSION_POOL_ENDPOINT

model: $AZURE_OPENAI_DEPLOYMENT

Здесь:

  • dynamic_sessions_code_interpreter — системный инструмент, который запускает код в Azure Container Apps dynamic sessions. Endpoint берётся из переменной $ACA_SESSION_POOL_ENDPOINT.
  • model указывает деплоймент Azure OpenAI, который будет использоваться по умолчанию всеми агентами.
  1. mcp.json — список MCP‑серверов, доступных агентам.
// mcp.json
{
  "servers": {
    "office365": {
      "type": "http",
      "url": "$MICROSOFT_365_CONNECTION_MCP_ENDPOINT",
      "auth": {
        "scope": "https://apihub.azure.com/.default"
      }
    }
  }
}

Здесь описан MCP‑сервер office365, который даёт доступ к Microsoft 365 через HTTP‑endpoint. Аутентификация строится на scope https://apihub.azure.com/.default.

Функция использует managed identity для доступа к этому endpoint. Вам не нужно хранить и прокручивать секреты.

  1. Папки /tools и /skills
  • /tools — ваши Python‑инструменты, которые агенты могут вызывать как функции.
  • /skills — переиспользуемые куски промптов.

Все эти элементы опциональны. Если они есть, любой агент в приложении может их использовать. При необходимости вы можете переопределить настройки в самом .agent.md файле через метаданные.

Триггеры и события

Serverless‑рантайм опирается на существующий каталог триггеров Azure Functions. Вы можете запускать агентов:

  • по HTTP‑запросу;
  • по таймеру;
  • по сообщениям в Queue или Service Bus;
  • по событиям из Event Hubs и Event Grid;
  • при изменениях в Cosmos DB или Blob Storage;
  • по сообщениям в Microsoft Teams;
  • по входящим письмам и событиям календаря в Outlook.

С точки зрения разработчика, вы просто меняете trigger.type и аргументы в YAML‑шапке агента.

Инструменты и внешние сервисы

Через Azure connectors и MCP агенты получают доступ к более чем 1400 внешним системам:

  • почта (Microsoft 365 и другие через коннекторы);
  • мессенджеры и коллаборативные сервисы (Teams и др.);
  • CRM, ERP и прочие SaaS;
  • базы данных и аналитические хранилища.

Алгоритм:

  1. Настраиваете connection в Azure.
  2. Включаете для него MCP‑endpoint.
  3. Добавляете его в mcp.json как сервер.
  4. Агент начинает вызывать его как инструмент, без прямой работы с токенами и SDK.

Исполнение кода и браузер

Для задач вроде обхода сайтов или сложной логики вы можете подключить:

  • code interpreter в Azure Container Apps dynamic sessions;
  • Playwright‑браузер в тех же динамических сессиях.

Каждая сессия агента изолирована. Это снижает риски при выполнении стороннего кода и упрощает масштабирование.

Интерфейсы доступа

Для агентов автоматически доступны:

  • встроенный чат‑UI (для взаимодействия через веб‑интерфейс);
  • HTTP API (для интеграции с приложениями и бэкендами);
  • MCP‑endpoint (агент сам может быть MCP‑сервером).

Дополнительный код для этого не нужен — всё входит в рантайм.

Что это значит для вас

Для кого это полезно

Serverless‑рантайм в Azure Functions хорошо подходит, если вы:

  • уже используете Azure Functions и хотите добавить AI‑агентов без отдельной инфраструктуры;
  • строите фоновую автоматизацию: дайджесты, мониторинг, reconciliation между системами;
  • хотите реагировать на события: сообщения, письма, алерты, изменения в БД;
  • связываете несколько SaaS‑систем в единый сценарий: CRM → почта → мессенджер → база.

Примеры задач, которые можно собрать за минуты:

  • Ежедневный брифинг, который по таймеру сканирует веб, собирает новости и отправляет сводку в Outlook.
  • Чат‑агент в Microsoft Teams, который отвечает на вопросы команды и ходит за данными в подключённые системы.
  • Дежурный агент, который при инциденте опрашивает логи в Azure Data Explorer и присылает отчет, что произошло.

Где рантайм особенно уместен

  1. Регулярные фоновые процессы

    • ежедневные/еженедельные отчёты;
    • мониторинг метрик и логов;
    • сверка данных между системами.
  2. Реакция на события

    • новые письма от клиентов;
    • сообщения в Teams‑канале поддержки;
    • новые записи или изменения в базе.
  3. Интеграция SaaS‑ландшафта
    Один агент может:

    • получить команду из Teams;
    • найти клиента в Salesforce‑подобной системе через коннектор;
    • отправить письмо через Microsoft 365;
    • обновить запись в базе.
  4. Единый бэкенд для чат‑интерфейсов
    Вы можете сделать HTTP‑точку входа или использовать встроенный чат‑UI, а под капотом вызывать те же агенты, которые работают по таймеру или событиям.

Где продукт не подойдёт

  • Если вы не используете Azure и не планируете переходить, рантайм мало поможет: он тесно завязан на экосистему Azure Functions и Azure connectors.
  • Если вам нужна строгая on‑prem‑инфраструктура без облака, этот вариант не подойдёт.
  • Для задач с жёсткими требованиями к латентности в миллисекундах и без внешних интеграций проще написать обычную функцию или сервис без LLM‑агента.

Доступность и ограничения

  • Azure Functions serverless agents runtime сейчас в публичном превью. Это значит: продукт достаточно зрелый для экспериментов и пилотов, но не финализирован.
  • Работа идёт на плане Flex Consumption с оплатой по секундам и масштабированием до нуля.
  • Для доступа к Azure и Azure OpenAI из России могут потребоваться юридические и сетевые обходные решения, включая VPN и зарубежные аккаунты. Это критично учитывать при планировании.

Если вы строите корпоративную автоматизацию вокруг Microsoft 365, Teams и Azure, рантайм даёт удобный способ описывать агентов текстом и запускать их на тех же рельсах, что и обычные функции.

Место на рынке

Azure Functions serverless agents runtime занимает нишу агентов как serverless‑нагрузки внутри Azure.

Ключевые особенности на фоне других подходов к агентам:

  • Глубокая интеграция с Azure Functions
    Если ваш стек уже крутится в Azure, вы получаете: знакомые триггеры, мониторинг через Application Insights, управляемую идентичность, VNet‑интеграцию и единый пайплайн деплоя.

  • 1400+ Azure connectors как инструменты
    Большинство агентных фреймворков требуют писать код под каждый внешний сервис. Здесь вы создаёте connection, включаете MCP‑endpoint и описываете его в mcp.json.

  • Markdown‑first вместо кода‑first
    Вместо того чтобы писать много обвязки, вы создаёте один .agent.md файл. Для команд, где продакт‑менеджеры или аналитики участвуют в дизайне агентов, это снижает порог входа.

  • Модели как plug‑and‑play провайдеры
    Из коробки поддерживаются Microsoft Foundry, Azure OpenAI и OpenAI. Вы можете переключать деплойменты в конфиге, не меняя логику триггеров и интеграций.

Чего в анонсе нет:

  • конкретных бенчмарков по скорости ответа агентов;
  • сравнения стоимости с альтернативными решениями;
  • ограничений по размеру контекста и количеству токенов.

Поэтому оценивать производительность и стоимость придётся на собственных пилотах.

Как запустить

Ниже — ключевые файлы, которые понадобятся для старта, с сохранением примеров из анонса.

1. Опишите агента в .agent.md

---
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. Scour the web for today's top tech news headlines. Use reputable sources;
   Include links to the original articles.
2. Summarize the top stories in a concise, well-formatted HTML email body.
3. Email the summary to $TO_EMAIL with the subject "Daily Tech News Summary"
   followed by today's date.

Положите файл в проект Azure Functions. При деплое на Flex Consumption агент начнёт запускаться по расписанию.

2. Настройте системные инструменты и модель

# agents.config.yaml
system_tools:
  dynamic_sessions_code_interpreter:
    endpoint: $ACA_SESSION_POOL_ENDPOINT

model: $AZURE_OPENAI_DEPLOYMENT
  • Замените $ACA_SESSION_POOL_ENDPOINT на endpoint пула Azure Container Apps dynamic sessions.
  • Задайте $AZURE_OPENAI_DEPLOYMENT на нужный деплоймент Azure OpenAI или другой поддерживаемый провайдер.

3. Подключите Microsoft 365 (или другие сервисы) через MCP

// mcp.json
{
  "servers": {
    "office365": {
      "type": "http",
      "url": "$MICROSOFT_365_CONNECTION_MCP_ENDPOINT",
      "auth": {
        "scope": "https://apihub.azure.com/.default"
      }
    }
  }
}
  • $MICROSOFT_365_CONNECTION_MCP_ENDPOINT — MCP‑endpoint созданного вами Microsoft 365 connection в Azure.
  • Managed identity Function App используется для аутентификации, так что секреты в коде не нужны.

После этого агент сможет отправлять письма через Microsoft 365, не зная ничего о конкретном API.

4. (Опционально) Добавьте свои инструменты и «скиллы»

  • Создайте папку /tools и положите туда Python‑скрипты с функциями, которые хотите вызывать из агента.
  • Создайте /skills для переиспользуемых фрагментов промптов, например шаблонов писем или стандартных инструкций по тону.

Все агенты в Function App автоматически увидят эти инструменты и навыки, если вы не переопределите настройки локально в .agent.md.

Что дальше

Serverless agents runtime уже доступен в публичном превью, документация — по короткой ссылке aka.ms/azure-functions-agents-docs.

Microsoft активно дорабатывает рантайм на основе реальных сценариев. Если вы давно хотели собрать «умных» фоновых ботов вокруг Microsoft 365, Teams и Azure‑данных, сейчас удобный момент для пилота: инфраструктура Functions уже знакома, а агенты описываются в одном markdown‑файле.


Читайте также