Создание рабочих процессов агента с помощью Microsoft Agent Framework
Введение
Если вы читали мои предыдущие публикации об 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 для производства.
Заключение
Рабочие процессы агентов позволяют создавать сложные многоэтапные конвейеры искусственного интеллекта, в которых каждый агент является специалистом. Начните с последовательных рабочих процессов, добавьте параллельное выполнение, где шаги независимы, и используйте условное ветвление для контроля качества. Шаблоны можно компоновать — как только вы освоите их, вы сможете создать довольно сложную систему автоматизации.
Приятного кодирования!