Microsoft Agent Framework 1.0 — один pip install вместо Semantic Kernel и AutoGen, и ваши MCP-серверы теперь работают из .NET
Microsoft Agent Framework 1.0 — один pip install вместо Semantic Kernel и AutoGen, и ваши MCP-серверы теперь работают из .NET
Microsoft наконец объединила Semantic Kernel и AutoGen в один фреймворк. 3 апреля вышла версия 1.0 со стабильными API для Python и .NET, встроенной поддержкой MCP, мульти-агентной оркестрацией и коннекторами для Claude, GPT, Gemini и Ollama. На GitHub уже 9 356 звёзд, 766 открытых issue и 71 релиз.
TL;DR: Microsoft Agent Framework 1.0 объединяет Semantic Kernel и AutoGen в один пакет.
pip install agent-framework, 5 строк кода, и у вас мульти-агентная система с MCP и A2A протоколом, поддержкой любой модели от Claude до Ollama. Работает даже на Raspberry Pi 3b.
Два года Microsoft держала два отдельных фреймворка: Semantic Kernel для enterprise-интеграций, AutoGen для мульти-агентных исследований. Хотите и то, и другое? Собирайте Франкенштейна из двух библиотек с несовместимыми API. С версией 1.0 это закончилось.
Что внутри
Agent Framework объединяет пять вещей, которые раньше требовали отдельных библиотек.
Коннекторы. Azure OpenAI, OpenAI, Anthropic Claude, Amazon Bedrock, Google Gemini и Ollama. Все реализуют единый интерфейс IChatClient из Microsoft.Extensions.AI. Смена провайдера — одна строка кода.
Мульти-агентная оркестрация. Паттерны из Microsoft Research: sequential, concurrent, handoff, group chat и Magentic-One. Обкатаны в исследованиях, перенесены из AutoGen.
MCP из коробки. Агенты динамически находят и вызывают инструменты с любого MCP-сервера. Написали MCP-сервер для Claude Code? Он заработает с Agent Framework без единого изменения.
A2A протокол. Агенты из разных фреймворков координируются через структурированные сообщения. Python-агент передаёт задачу .NET-агенту и обратно.
DevUI. Визуальный отладчик для agent workflow. Видно, какой агент что вызвал, в каком порядке, с какими данными. Вместо print() и гадания по логам.
5 строк до первого агента
Python:
# pip install agent-framework import asyncio from agent_framework import Agent from agent_framework.foundry import FoundryChatClient from azure.identity import AzureCliCredential async def main(): agent = Agent( client=FoundryChatClient(credential=AzureCliCredential()), name="CodeReviewer", instructions="Ты — сеньор-ревьюер. Находишь баги и проблемы.", ) print(await agent.run("Проверь этот код на утечки памяти...")) asyncio.run(main())
.NET:
// dotnet add package Microsoft.Agents.AI.OpenAI
using OpenAI;
var agent = new OpenAIClient("your-api-key")
.GetChatClient("gpt-5.4-mini")
.AsIChatClient()
.CreateAIAgent(
instructions: "You are a senior .NET architect. Be concise.");
Console.WriteLine(
await agent.RunAsync("Design a retry policy for SQL failures."));
Хотите Ollama вместо OpenAI? Меняете одну строку на OllamaConnector(model="llama3.2"). Весь остальной код остаётся тем же.
MCP-серверы: ваши инвестиции окупаются вдвойне
До MCP написать инструмент для нескольких AI-фреймворков означало N реализаций для N фреймворков. MCP свёл это к одной. А то, что Microsoft включила поддержку MCP в свой 1.0 релиз, переводит протокол из категории "интересный эксперимент" в "отраслевой стандарт".
Конкретный workflow:
- Написали MCP-сервер для Claude Code (допустим, доступ к базе)
- Прототипируете мульти-агентный workflow в Agent Framework с Ollama (бесплатно, без API-ключей)
- Тестируете оркестрацию и tool-вызовы
- Переключаете коннектор на Claude для продакшена
Не жжёте токены Claude на этапе разработки. Другой экономический цикл.
Мульти-агентная оркестрация: от handoff до графов
HandOff — простейший паттерн. Агент-триажер определяет, кому передать задачу:
var workflow = AgentWorkflowBuilder
.CreateHandoffBuilderWith(triage)
.WithHandoffs(triage, [clerk, archivist, secretary, researcher])
.WithHandoff(researcher, triage,
"Hand back to Triage when done.")
.EmitAgentResponseEvents(true)
.Build();
Graph-based workflow на уровень выше. Агенты соединяются в граф с потоками данных, чекпоинтами и time-travel (откат к любой точке выполнения). Human-in-the-loop тоже встроен: workflow ставится на паузу, ждёт одобрения человека, продолжает.
Автор поста на Хабре собрал домашнего AI-помощника за выходные: интерфейс через Telegram, память на SQLite, банда из пяти агентов. Всё крутится на Raspberry Pi 3b.
Подводные камни
766 открытых issues на GitHub для версии 1.0. Вот конкретные проблемы.
MCP-интеграция сырая. MCPStdioTool.call_tool зависает, если MCP-сервер отправляет resource-уведомления во время вызова инструмента (#4896). MCP-клиент уходит в бесконечный цикл, если сервер не поддерживает метод ping (#4940). В streaming-режиме mcp_server_tool_result просто не доставляется (#4814).
Параллельные запросы ломают hosted-сэмплы. Hosted agent sample переиспользует один экземпляр workflow для всех запросов и падает под нагрузкой (#4766). Планируете хостить агентов за API? Готовьтесь к сюрпризам.
Streaming с OpenRouter не работает. Ошибка tool role without preceding tool_calls при работе через OpenRouter (#5105). Стек не ограничен Azure? Тестируйте заранее.
Compaction strategies содержат баги (#4991). Стратегии сжатия контекста работают некорректно, что может привести к потере информации при длинных диалогах.
Альтернативы
-
LangGraph (LangChain) — тоже graph-based оркестрация, зрелая экосистема с большим комьюнити. Python-only, .NET нет. Требует LangChain-экосистему: если уже используете LangChain, переход минимален. Если нет, это дополнительная зависимость.
-
CrewAI — role-based мульти-агенты с упрощённым API. Быстрее разобраться, чем в Agent Framework. Python-only, меньше enterprise-фич (нет middleware, нет DevUI). Хорош для прототипов и небольших проектов.
-
Google ADK (Agent Development Kit) — поддерживает A2A, плотная интеграция с Gemini и GCP. Если весь стек на Google Cloud, логичный выбор. Экосистема пока уступает Microsoft по размеру.
Вердикт
Если вы пишете на .NET и строите мульти-агентные системы, Agent Framework 1.0 сейчас единственный серьёзный вариант с нативной поддержкой. Не нужно больше выбирать между Semantic Kernel и AutoGen. Встроенный MCP означает, что ваши Claude Code инструменты переиспользуются без изменений.
Для Python-разработчиков в экосистеме LangChain переход неочевиден. LangGraph зрелее, комьюнити больше.
766 open issues на 1.0 = фреймворк сырой. Для прототипов и пет-проектов годится уже сейчас. Для продакшена подождите пару патч-релизов, особенно если рассчитываете на MCP streaming.
Как попробовать
- Установите:
pip install agent-frameworkилиdotnet add package Microsoft.Agents.AI - Начните с Ollama (бесплатно): используйте
OllamaConnector(model="llama3.2")для прототипирования - Подключите существующий MCP-сервер:
MCPToolClient(server_url="http://localhost:8000") - Попробуйте HandOff workflow с двумя агентами (примеры на GitHub)
- Документация: learn.microsoft.com/en-us/agent-framework и GitHub