Сегодня мы погружаемся во что-то совершенно новое и действительно захватывающее для всех .NET-разработчиков — это Microsoft Agent Framework. Этот предварительный релиз выводит интеграцию искусственного интеллекта и .NET на совершенно новый уровень.
В этом руководстве мы создадим переводчик, который будет переводить английский текст на французский и испанский, проверять качество переводов и формировать итоговый отчёт — всё это с помощью нескольких ИИ-агентов, работающих совместно.
Что такое агенты
Агент — это, по сути, ИИ-работник, который может думать, принимать решения и действовать, чтобы достичь цели. Представьте его как цифрового коллегу — у него есть конкретная задача, собственная «личность», и он может использовать инструменты или API при необходимости.
Согласно Microsoft, агент — это не просто система запрос–ответ. Он умеет:
-
рассуждать и планировать,
-
вызвать API,
-
использовать память,
-
взаимодействовать с другими агентами.
Это означает, что агенты могут координировать сложные процессы и выполнять задачи, которые обычно требуют множества отдельных систем.
Понимание рабочих процессов
Рабочий процесс (workflow) определяет, как агенты соединяются между собой и работают совместно для выполнения задачи. Его можно представить как блок-схему — сначала перевод, потом проверка, затем итог.
Рабочие процессы могут выполняться последовательно или параллельно, в зависимости от сценария. Они обеспечивают структуру и контроль, превращая случайные ответы ИИ в надёжные, воспроизводимые процессы.
Если коротко:
-
Агенты приносят интеллект — они понимают контекст, рассуждают и создают результат.
-
Рабочие процессы приносят структуру — определяют порядок, зависимости и ветвления.
Когда вы объединяете их, получаете команду взаимодействующих ИИ-агентов, способных достигать гораздо большего, чем одиночные вызовы модели. Например, один агент может переводить текст, другой — проверять его, а третий — подводить итоги. Всё это координируется определённым вами рабочим процессом.
Это похоже на то, как если бы большие языковые модели превратились в хорошо организованную программную систему, а не просто чат-бота.
Знакомство с Microsoft Agent Framework
Теперь поговорим о звезде сегодняшнего видео — Microsoft Agent Framework.
Это новый SDK с открытым исходным кодом от Microsoft, пока ещё находящийся в предварительной версии, который объединяет агентов, рабочие процессы, инструменты и память в единую платформу для разработчиков .NET и Python.
Он основан на идеях Semantic Kernel и Autogen, но был переработан, чтобы сделать создание многоагентных систем простым и масштабируемым.
С помощью этого фреймворка вы можете:
-
легко создавать агентов,
-
соединять их через типобезопасные рабочие процессы,
-
интегрировать Azure OpenAI или локальные модели,
-
выполнять шаги параллельно или с участием человека (human checkpoints).
Подготовка проекта
Теперь мы создадим последовательный рабочий процесс перевода, используя четыре агента:
-
French Translator Agent — переводит английский на французский;
-
Spanish Translator Agent — переводит английский на испанский;
-
Quality Reviewer Agent — проверяет оба перевода на точность и тон;
-
Summary Agent — объединяет результаты в итоговый отчёт.
Это простой пример, но он чётко демонстрирует, как несколько агентов могут сотрудничать.
Я уже создал консольное приложение .NET 9. Сначала очищу файл Program.cs
.
Установка необходимых пакетов
Далее установим пакеты Microsoft Agent Framework.
Откройте NuGet Package Manager и выполните поиск следующих библиотек:
-
Microsoft.Agents.AI
— установите этот пакет. -
Microsoft.Agents.AI.Workflows
— помогает строить и связывать агентов через рабочие процессы. -
Microsoft.Extensions.AI.OpenAI
— позволяет интегрировать модели OpenAI или размещённые на GitHub.
После установки все они появятся в разделе Dependencies вашего проекта. Теперь мы готовы реализовывать агентов и рабочий процесс.
Добавление клиента чата
Клиент чата позволяет агентам взаимодействовать с моделью ИИ.
В нашем случае используется модель GitHub — GPT-4.0 Mini
, лёгкая, но очень мощная, идеально подходящая для демонстраций. Чтобы получить к ней доступ, понадобится GitHub API key.
В предыдущем видео я показывал, как создать такие ключи — обязательно посмотрите, если вы этого ещё не сделали.
Этот клиент чата соединяет наше приложение .NET с моделью OpenAI, размещённой на GitHub, чтобы мы могли создавать агентов поверх неё.
Создание French Translator Agent
Наш первый агент — French Translator.
Он использует клиент чата, созданный ранее, и выполняет простую задачу — принимает английский текст и переводит его на французский.
Мы создаём экземпляр агента через класс ChatClientAgent
и называем его French Agent.
В параметрах указываем:
-
Name
= “French Agent” -
Instructions
= “Переводи любой предоставленный текст на французский язык, сохраняя естественность и точность.”
Готово — первый агент настроен.
Создание Spanish Translator Agent
Чтобы не писать всё заново, скопируйте код French Agent и внесите несколько изменений:
-
Переименуйте переменную в
SpanishAgent
; -
Задайте имя “Spanish Agent”;
-
Измените инструкции: “Ты — переводчик, который переводит текст на испанский язык.”
Теперь у нас есть два агента:
-
один для французского,
-
другой для испанского.
Создание Quality Reviewer Agent
Далее копируем код Spanish Agent и адаптируем его для Quality Reviewer Agent.
Переименовываем переменную в QualityReviewerAgent
и задаём имя “Quality Reviewer Agent”.
Чтобы сделать код чище, создаём отдельную строковую переменную с инструкцией:string qualityReviewerAgentInstructions = "...";
Этот агент будет проверять переводы и давать оценку качества с помощью простой системы рейтингов.
Создание Summary Agent
Теперь создаём Summary Agent по аналогии.
Копируем код Quality Reviewer Agent и вносим изменения:
-
Переименовываем переменную в
SummaryAgent
; -
Имя — “Summary Agent”.
Создаём новую строку summaryAgentInstructions
и прописываем назначение:
“Объедини все рецензии переводов в единый итоговый отчёт.”
Вот и всё — Summary Agent готов.
Построение рабочего процесса
Теперь нужно связать всех четырёх агентов в один процесс.
Создаём новый AI-агент WorkflowAgent
с помощью класса AgentWorkflowBuilder
и вызываем метод BuildSequential
.
Это означает, что агенты будут выполняться по очереди:
-
French Translator
-
Spanish Translator
-
Quality Reviewer
-
Summary Agent
В конце вызываем .AsAgentAsync()
, чтобы объединить всю цепочку в одного агента, с которым можно взаимодействовать напрямую.
Внутри фреймворка результат одного агента автоматически передаётся следующему — так создаётся единый конвейер взаимодействия.
Запуск рабочего процесса
Теперь добавим ввод текста от пользователя для теста.
Попросим пользователя ввести английское предложение и передадим его агенту через workflowAgent.Run(userInput)
.
Текст пройдёт весь конвейер:
-
French Translator
-
Spanish Translator
-
Reviewer
-
Summary Agent
Каждый этап обрабатывает результат и передаёт его дальше.
Для красивого вывода:
-
имя агента выводим жёлтым,
-
результат работы — зелёным.
Теперь запускаем приложение.
В консоли появится приглашение ко вводу. Введите, например, “Hello world” и нажмите Enter.
Вы увидите:
-
French Agent переведёт фразу на французский;
-
Spanish Agent — на испанский;
-
Quality Reviewer Agent проверит оба перевода на тон, грамматику и точность;
-
Summary Agent создаст краткий отчёт о качестве перевода.
Имена агентов будут отображаться жёлтым цветом, а их ответы — зелёным, что помогает наглядно отследить последовательность шагов.
Попробуйте ввести ещё несколько предложений — вы увидите, как каждый агент выполняет свою роль шаг за шагом, а весь процесс работает автоматически.
Заключение
Мы только что создали полноценный многоязычный конвейер перевода с использованием Microsoft Agent Framework.
Вот что мы сделали:
-
Создали четыре агента — French Translator, Spanish Translator, Quality Reviewer и Summary Agent;
-
Объединили их в последовательный рабочий процесс;
-
Наблюдали, как они совместно выполняют задачу от перевода до итогового отчёта.
Каждый агент отвечает за свою часть работы, а фреймворк берёт на себя всю координацию — от перевода до проверки и суммирования.
Этот пример демонстрирует, как легко можно спроектировать структурированные, взаимодействующие ИИ-системы прямо внутри .NET.
Вы можете расширить этот рабочий процесс:
-
добавить новые языки,
-
создать дополнительные этапы проверки,
-
интегрировать внешние API для более глубокого анализа или улучшенного перевода.