Rate this post

Сегодня мы погружаемся во что-то совершенно новое и действительно захватывающее для всех .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).

Подготовка проекта

Теперь мы создадим последовательный рабочий процесс перевода, используя четыре агента:

  1. French Translator Agent — переводит английский на французский;

  2. Spanish Translator Agent — переводит английский на испанский;

  3. Quality Reviewer Agent — проверяет оба перевода на точность и тон;

  4. Summary Agent — объединяет результаты в итоговый отчёт.

Это простой пример, но он чётко демонстрирует, как несколько агентов могут сотрудничать.

Я уже создал консольное приложение .NET 9. Сначала очищу файл Program.cs.

Установка необходимых пакетов

Далее установим пакеты Microsoft Agent Framework.

Откройте NuGet Package Manager и выполните поиск следующих библиотек:

  1. Microsoft.Agents.AI — установите этот пакет.

  2. Microsoft.Agents.AI.Workflows — помогает строить и связывать агентов через рабочие процессы.

  3. 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.

Это означает, что агенты будут выполняться по очереди:

  1. French Translator

  2. Spanish Translator

  3. Quality Reviewer

  4. Summary Agent

В конце вызываем .AsAgentAsync(), чтобы объединить всю цепочку в одного агента, с которым можно взаимодействовать напрямую.

Внутри фреймворка результат одного агента автоматически передаётся следующему — так создаётся единый конвейер взаимодействия.

Запуск рабочего процесса

Теперь добавим ввод текста от пользователя для теста.

Попросим пользователя ввести английское предложение и передадим его агенту через workflowAgent.Run(userInput).

Текст пройдёт весь конвейер:

  1. French Translator

  2. Spanish Translator

  3. Reviewer

  4. 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 для более глубокого анализа или улучшенного перевода.