Создание рабочих процессов агента с помощью Microsoft Agent Framework

· 3 мин чтения

Введение

Если вы читали мои предыдущие публикации об Agent Framework от Microsoft, вы знаете, как создавать отдельных агентов и даже групповые чаты с несколькими агентами. Но в реальных сценариях вам часто требуется что-то более структурированное — рабочий процесс, в котором агенты выполняются в определенном порядке, передают результаты друг другу и обрабатывают логику ветвления на основе результатов.

Именно это дают вам возможности рабочего процесса в Agent Framework. Вместо того, чтобы бросать агентов в групповой чат и надеяться, что они это поймут, вы определяете явные шаги, зависимости и поток данных между агентами.

Что такое рабочие процессы агента?

Думайте о рабочих процессах агентов как о конвейере. Каждый шаг обрабатывается специализированным агентом, а результаты одного шага передаются на следующий. Вы можете выполнять шаги последовательно, параллельно или условно в зависимости от результатов.

Несколько примеров:

  • Контроллер контента: Исследование → Черновик → Обзор → Публикация.
  • Обработка данных: Извлечение → Преобразование → Проверка → Загрузка.
  • Поддержка клиентов: Классифицировать → Маршрут → Ответ → Последующие действия.

Предварительные условия

Убедитесь, что у вас установлены последние версии пакетов Agent Framework:

dotnet add package Microsoft.SemanticKernel
dotnet add package Microsoft.SemanticKernel.Agents.Core

И настроена конечная точка Azure OpenAI или OpenAI.

Построение последовательного рабочего процесса

Давайте построим рабочий процесс создания контента с тремя агентами: исследователем, писателем и редактором.

Определение агентов

[[[ТОК_1]]]

Выполнение последовательно

Самый простой рабочий процесс является последовательным — каждый агент обрабатывает выходные данные предыдущего:

[[[ТОК_2]]]

Каждый агент получает накопленный контекст, обрабатывает его, и результат переходит на следующий шаг.

Параллельное выполнение

Иногда агенты могут работать независимо. Например, вы можете захотеть исследовать несколько подтем одновременно:

[[[ТОК_3]]]

Затем вы можете передать все исследовательские обзоры одному агенту-писателю, чтобы создать один связный пост.

Условное ветвление

Реальные рабочие процессы требуют решений. Возможно, вам нужен этап проверки качества, который направляется обратно автору, если сообщение недостаточно хорошее:

[[[ТОК_4]]]

Этот шаблон очень полезен. Средство проверки качества действует как шлюз, и рабочий процесс повторяется до тех пор, пока результат не станет достаточно хорошим или не достигнет максимального предела версии.

Добавление плагинов к агентам рабочих процессов

Агенты в рабочих процессах могут использовать плагины так же, как и автономные агенты. Здесь все становится действительно мощно — агенты могут вызывать API, запрашивать базы данных или выполнять операции с файлами в рамках своего рабочего процесса:

var researcherWithTools = new ChatCompletionAgent
{
    Name = "Researcher",
    Instructions = "Research the topic using available tools. Summarize findings.",
    Kernel = kernel
};

// Add a web search plugin
kernel.Plugins.AddFromType<WebSearchPlugin>();

// Add a database plugin
kernel.Plugins.AddFromObject(new DatabasePlugin(connectionString), "Database");

[[[ТОК_6]]]

Обработка ошибок в рабочих процессах

Когда вы объединяете несколько агентов, обработка ошибок становится критически важной. Вы не хотите, чтобы один неудачный шаг незаметно привел к сбою всего рабочего процесса:

[[[ТОК_7]]]

Лучшие практики

Построив несколько рабочих процессов агентов, я узнал следующее:- Соблюдайте четкость инструкций — каждый агент должен хорошо выполнять одну задачу. Не пытайтесь сделать агента, использующего швейцарский армейский нож.

  • Ограничить контекст — не передавайте всю историю разговоров каждому агенту. Давайте каждому шагу только то, что ему нужно.
  • Устанавливайте ограничения на версии — циклы контроля качества хороши, но могут работать вечно, если вы не будете осторожны. Всегда имейте максимальное количество итераций.
  • Записывайте все — результаты работы агента могут быть непредсказуемыми. Регистрируйте ввод и вывод каждого шага для отладки.
  • Используйте параллельное выполнение с умом — это ускоряет работу, но следите за ограничениями скорости API и стоимостью токенов.
  • Сначала протестируйте модели меньшего размера. Разработайте и протестируйте логику рабочего процесса с помощью GPT-3.5, прежде чем переходить на GPT-4o для производства.

Заключение

Рабочие процессы агентов позволяют создавать сложные многоэтапные конвейеры искусственного интеллекта, в которых каждый агент является специалистом. Начните с последовательных рабочих процессов, добавьте параллельное выполнение, где шаги независимы, и используйте условное ветвление для контроля качества. Шаблоны можно компоновать — как только вы освоите их, вы сможете создать довольно сложную систему автоматизации.

Приятного кодирования!

Ресурсы