Содержание
Microsoft Agent Framework — это SDK от Microsoft (апрель 2026, версия 1.0) для создания, оркестрации и развёртывания AI-агентов на Python и .NET. Он объединил две предыдущие линии разработки Microsoft: AutoGen (фреймворк для мультиагентных разговоров) и Semantic Kernel (интеграция LLM в корпоративные приложения). Теперь это единый пакет с поддержкой MCP-инструментов, handoff-оркестрации, графовых workflow и human-in-the-loop.
Если коротко: Framework даёт декораторы @agent, @tool, @workflow и готовые примитивы для мультиагентных сценариев — без необходимости писать state-графы вручную или настраивать очередность вызовов через промпты. По данным Microsoft, SDK уже используют в пилотах более 500 корпоративных клиентов на Azure. Open-source часть пакета распространяется под лицензией MIT и насчитывает 11 500+ звёзд на GitHub.
Установка и первый агент
Для работы с Microsoft Agent Framework нужен Python 3.10 или новее. Установка — одной командой:
pip install agent-framework
Пакет ставит ядро SDK, включая базовые классы агентов, декораторы, поддержку MCP и checkpointing. Для работы с конкретным LLM-провайдером понадобится дополнительный пакет. На момент апреля 2026 Microsoft поддерживает OpenAI, Azure OpenAI, Anthropic, Google Gemini и локальные модели через Ollama. Подключается провайдер так:
pip install agent-framework-openai # OpenAI / Azure OpenAI
pip install agent-framework-ollama # Локальные модели через Ollama
Вот как выглядит простейший агент, который отвечает на вопросы пользователя:
from agent_framework import Agent
agent = Agent(
name="assistant",
instructions="Ты полезный ассистент. Отвечай кратко и по делу."
)
response = agent.run("Расскажи про Microsoft Agent Framework")
print(response)
Это минимальный пример. За кулисами Agent выполняет LLM-вызов с переданными инструкциями и возвращает ответ. Уже на этом этапе Framework автоматически обрабатывает историю диалога (контекстное окно), управляет лимитом токенов и логирует каждый шаг.
Для тех, кто переходит с AutoGen, Microsoft выпустила официальный гайд по миграции. Там же — туториалы для .NET (C#), если ваша инфраструктура завязана на Azure и экосистему Microsoft.
Архитектура: агенты, инструменты и workflow
Microsoft Agent Framework построен вокруг трёх базовых сущностей: Agent (агент), Tool (инструмент) и Workflow (рабочий процесс). Они же — первые три декоратора, которые вы встретите в документации.
@agent — превращает функцию в AI-агента. Агент получает инструкцию (system prompt) и может вызывать инструменты. Инстанс агента хранит историю диалога и управляет контекстом:
from agent_framework import agent
@agent
def support_agent(query: str) -> str:
"""Ты — агент поддержки. Отвечай по базе знаний."""
return query
@tool — регистрирует функцию как внешний инструмент, который агент может вызывать. Framework сам генерирует JSON-схему для LLM по type hints:
from agent_framework import tool
@tool
def get_order_status(order_id: str) -> dict:
"""Получить статус заказа по ID."""
# Здесь — запрос к CRM / API
return {"order_id": order_id, "status": "shipped", "eta": "2026-06-25"}
@workflow — определяет последовательность шагов. Это может быть простой последовательный вызов или сложный граф с условной маршрутизацией. Workflow гарантирует порядок выполнения, поддерживает checkpointing (возможность прервать и возобновить) и может включать human-in-the-loop:
from agent_framework import workflow
@workflow
def order_processing(order_id: str):
status = get_order_status(order_id)
if status["status"] == "shipped":
return send_delivery_notification(order_id)
else:
return escalate_to_manager(order_id)
Визуально архитектура типичного мультиагентного сценария на Agent Framework выглядит так: входящий запрос попадает на Triage Agent, который определяет сложность задачи. Простой запрос обрабатывает Assistant Agent напрямую. Сложный — передаётся Orchestrator (реализация Magentic-One), который распределяет подзадачи между специализированными агентами. Все агенты используют MCP для доступа к внешним инструментам.
Workflow — ключевое отличие от подхода LangGraph, где вы пишете StateGraph вручную. В Agent Framework workflow — это высокоуровневая абстракция: декоратор, под капотом преобразующий функцию в граф с управлением состояниями. Для типовых сценариев (опрос клиента, обработка заказа, генерация контента) этого достаточно. Для специфической логики с нетривиальными переходами — существует низкоуровневый API WorkflowBuilder, который даёт полный контроль.
MCP-интеграция
Model Context Protocol (MCP) — открытый стандарт Anthropic, который в 2026 году стал основным способом подключения инструментов к AI-агентам. В Microsoft Agent Framework MCP поддержан на уровне SDK: вы подключаете любой MCP-сервер (Gmail, Slack, Google Drive, Postgres, Stripe, базы данных) и агент автоматически получает доступ к его инструментам.
Подключение локального MCP-сервера выглядит так:
from agent_framework.mcp import MCPServer
server = MCPServer(
command="npx",
args=["-y", "@modelcontextprotocol/server-slack"],
env={"SLACK_BOT_TOKEN": "xoxb-..."}
)
Если используете Azure Foundry, можно подключить Hosted MCP — сервер работает на стороне облака, вы только указываете endpoint. Это удобно для enterprise-сценариев, где каждый MCP-сервер должен быть доступен нескольким агентам сразу.
Один агент может использовать несколько MCP-серверов одновременно — Framework сам разрешает конфликты имён инструментов и распределяет вызовы. Например, агент поддержки может одновременно работать с CRM (через MCP-сервер Salesforce), базой знаний (векторное хранилище) и почтовым сервером:
@agent
def support_agent(query: str) -> str:
"""Ты — агент поддержки."""
return query
support_agent.mcp_servers = [crm_server, kb_server, mail_server]
MCP Roadmap 2026 включает транспортную масштабируемость (WebSocket вместо STDIO), поддержку потоковой передачи данных и корпоративные механизмы аутентификации. Microsoft вошла в рабочую группу MCP и адаптирует протокол под Azure Enterprise — это означает, что Agent Framework будет одной из первых платформ с полной поддержкой MCP 2026.
Handoff: передача между агентами
Handoff — механика, при которой один агент передаёт управление другому. В Microsoft Agent Framework это реализовано через метод agent.handoff(). Типовой сценарий: Triage Agent принимает запрос, определяет категорию и передаёт специализированному агенту:
@agent
def triage_agent(query: str) -> str:
"""Определи тип запроса: support, billing или sales.
Передай соответствующему агенту через handoff."""
from agent_framework import Agent
support = Agent(name="support", instructions="Ты — техподдержка.")
billing = Agent(name="billing", instructions="Ты — биллинг.")
result = triage_agent.run("Не могу войти в аккаунт")
# Framework сам решает, что это support, и выполняет handoff
Handoff в Agent Framework — не просто передача текста. Вместе с управлением передаётся контекст диалога (история сообщений), активные инструменты и состояние workflow. Это принципиально отличает handoff от простого вызова одной функции из другой: принимающий агент видит весь предыдущий разговор и может продолжить с того же места.
В более сложных сценариях handoff используется внутри Workflow как шаг перехода между этапами. Например, workflow «онбординг клиента» включает handoff от квалификационного агента к KYC-агенту, затем к агенту подключения сервисов:
@workflow
def client_onboarding(client_id: str):
data = qualification_agent.run(client_id)
if data["verified"]:
kyc_result = kyc_agent.run(data)
return service_setup_agent.run(kyc_result)
else:
return human_review_trigger(data)
Magentic-One: мультиагентная оркестрация
Magentic-One — это встроенный шаблон оркестрации в Microsoft Agent Framework, основанный на исследовательской системе Magentic-One от AutoGen. Это готовая мультиагентная архитектура, которая автоматически распределяет сложные задачи между несколькими специализированными агентами без ручного описания маршрутов.
В Magentic-One четыре предопределённых роли:
Orchestrator — главный планировщик. Получает задачу, разбивает её на подзадачи, назначает агентов и контролирует выполнение. Если один из агентов вернул ошибку, Orchestrator может переназначить задачу другому или запросить уточнение у человека.
Research Agent — ищет информацию через MCP-инструменты (веб-поиск, базы знаний, документы). Возвращает структурированные данные.
Code Agent — пишет и выполняет код. Может работать с Python-скриптами, SQL-запросами, bash-командами. Песочница (sandbox) для выполнения кода — встроенная функция SDK.
Review Agent — проверяет результат. Сравнивает с критериями задачи, выявляет ошибки, предлагает исправления.
Чтобы запустить Magentic-One, нужно вызвать Orchestrator с задачей:
from agent_framework.orchestrators import MagenticOne
orchestrator = MagenticOne()
result = orchestrator.run("Проанализируй конкурентов в нише AI-агентов для поддержки и подготовь отчёт")
print(result)
Orchestrator сам решает, сколько агентов задействовать, в каком порядке и нужен ли human-in-the-loop. Для операций с деньгами или изменениями в боевых системах Magentic-One по умолчанию запрашивает подтверждение человека — это защита от случайных или ошибочных действий агента.
По данным Microsoft, Magentic-One на типовых задачах (генерация отчётов, анализ данных, написание кода) показывает сопоставимую или лучшую точность, чем ручная настройка графа из 4-5 агентов. При этом время разработки сокращается с дней до часов — вы описываете задачу на естественном языке, а Framework строит пайплайн сам.
Сравнение с LangGraph и CrewAI
Microsoft Agent Framework — не единственный игрок на рынке мультиагентных фреймворков. LangGraph (от LangChain) и CrewAI — его прямые конкуренты. Выбор между ними зависит от стека технологий, требований к контролю и готовой инфраструктуры.
CrewAI — самый быстрый старт. Вы описываете агентов, задачи и процессы декларативно, и через 20 строк кода получаете работающую мультиагентную систему. 54K звёзд на GitHub, сообщество огромное, документация на русском есть. Но CrewAI меньше подходит для production-сценариев с нетривиальной логикой: графы сложно кастомизировать, а детерминированность выполнения ниже, чем у LangGraph. Лучший сценарий — прототипы, контент-генерация, обработка лидов.
LangGraph — полный контроль. Вы пишете StateGraph вручную: описываете схему состояния, добавляете узлы (агенты или функции), настраиваете условные рёбра. LangGraph даёт максимальную гибкость — циклы, параллельное выполнение, человеческое подтверждение на любом шаге. LangChain экосистема (100K+ звёзд) предоставляет LangSmith для трассировки и LangServe для деплоя. Но стартовый порог выше: нужно понимать state-графы, писать классы состояния и обрабатывать ошибки вручную. Лучший сценарий — production-системы с критичной логикой, where контроль над каждым шагом важнее скорости разработки.
| Характеристика | Microsoft Agent Framework | LangGraph | CrewAI |
|---|---|---|---|
| Стек | Python + .NET | Python | Python |
| Парадигма | Декораторы + workflow | StateGraph (явные графы) | Agent / Task / Crew |
| MCP | Встроенная поддержка | Через LangChain MCP | Через инструменты |
| Handoff | Встроенный | Через conditional edges | Process-based |
| HITL | Checkpoint + resume | interrupt() | HumanInputTool |
| Песочница кода | Встроенная | Через инструменты | Через инструменты |
| Cloud-ready | Azure Foundry | LangServe | Docker / self-host |
| Лучший для | Enterprise .NET / Azure | Сложные state-системы | Быстрые прототипы |
Microsoft Agent Framework занимает свою нишу: там, где у заказчика уже есть инфраструктура Microsoft (Azure, .NET, Active Directory), и нужна глубокая интеграция. SDK также подходит командам, которые хотят получить production-ready мультиагентную систему без написания графов вручную — декораторы и Magentic-One заметно снижают порог входа. По сравнительному анализу 2026 года от независимых разработчиков, Framework опережает LangGraph по скорости разработки (3-5× быстрее для типовых сценариев) и не уступает по production-готовности.