ai-agents-for-beginners

Многоагентный дизайн

(Нажмите на изображение выше, чтобы просмотреть видео этого урока)

Многоагентные шаблоны проектирования

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

Введение

В этом уроке мы постараемся ответить на следующие вопросы:

Цели обучения

После этого урока вы должны уметь:

Какова общая картина?

Многоагентные системы — это шаблон проектирования, который позволяет нескольким агентам работать вместе для достижения общей цели.

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

Сценарии, где применимы многоагентные системы

Итак, в каких сценариях имеет смысл использовать многоагентные системы? Ответ: существует много сценариев, где применение нескольких агентов полезно, особенно в следующих случаях:

Преимущества использования нескольких агентов по сравнению с единичным агентом

Система с одним агентом может хорошо работать для простых задач, но для более сложных задач использование нескольких агентов даёт ряд преимуществ:

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

Сравните это с туристическим агентством в формате семейного бизнеса и туристическим агентством, работающим по франшизе. В семейном бизнесе один агент обрабатывал бы все аспекты процесса бронирования поездки, тогда как во франшизе разные агенты обрабатывают разные аспекты процесса бронирования.

Строительные блоки реализации шаблона многоагентной системы

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

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

Видимость взаимодействий между агентами

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

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

Давайте рассмотрим каждый из этих аспектов подробнее.

Шаблоны многоагентных систем

Давайте перейдём к некоторым конкретным шаблонам, которые можно использовать для создания многоагентных приложений. Вот несколько интересных шаблонов, которые стоит рассмотреть:

Групповой чат

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

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

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

Групповой чат

Передача

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

Типичные случаи использования включают клиентскую поддержку, управление задачами и автоматизацию рабочих процессов.

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

Передача

Коллаборативная фильтрация

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

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

Возьмём пример, где пользователь хочет рекомендацию лучшей акции для покупки на фондовом рынке.

Рекомендация

Сценарий: процесс возврата средств

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

Агенты, специфичные для процесса возврата:

Ниже приведены некоторые агенты, которые могут быть задействованы в процессе возврата:

Общие агенты:

Эти агенты могут использоваться в других частях вашего бизнеса.

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

Задание

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

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

СОВЕТ: Подумайте о разных этапах процесса поддержки клиентов, а также о агентах, необходимых для любой системы.

Solution

Решение

Knowledge checks

Question: When should you consider using multi-agents?

Solution quiz

Summary

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

Got More Questions about the Multi-Agent Design Pattern?

Присоединяйтесь к Microsoft Foundry Discord, чтобы пообщаться с другими учащимися, посетить часы консультаций и получить ответы на вопросы по AI-агентам.

Additional resources

Previous Lesson

Planning Design

Next Lesson

Метапознание в AI-агентах


Отказ от ответственности: Этот документ был переведён с помощью сервиса машинного перевода на основе ИИ Co-op Translator. Несмотря на наши усилия по обеспечению точности, просим учитывать, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на исходном языке следует считать авторитетным источником. Для критически важной информации рекомендуется обратиться к профессиональному переводу, выполненному человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.