ai-agents-for-beginners

Багатоагентний дизайн

(Натисніть на зображення вище, щоб переглянути відео цього уроку)

Шаблони проєктування багатоагентних систем

Як тільки ви починаєте працювати над проєктом, який включає кілька агентів, вам потрібно буде розглянути багатоагентний шаблон проєктування. Проте може бути не одразу зрозуміло, коли слід перейти до багатоагентної архітектури і які переваги це дає.

Вступ

У цьому уроці ми прагнемо відповісти на такі питання:

Навчальні цілі

Після цього уроку ви повинні вміти:

Яка загальна картина?

Багатоагентні системи — це шаблон проєктування, який дозволяє кільком агентам працювати разом для досягнення спільної мети.

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

Сценарії, де доречно використовувати багатоагентні системи

Отже, які сценарії є хорошим варіантом для використання багатоагентних систем? Відповідь — є багато сценаріїв, де застосування кількох агентів є корисним, особливо в таких випадках:

Переваги використання кількох агентів замість одного агента

Система з одним агентом може добре працювати для простих завдань, але для складніших завдань використання кількох агентів може надати кілька переваг:

Розгляньмо приклад — забронюємо поїздку для користувача. Система з одним агентом повинна була б обробляти всі аспекти процесу бронювання поїздки: пошук рейсів, бронювання готелів та оренду автомобілів. Щоб досягти цього з одним агентом, агенту довелося б мати інструменти для обробки всіх цих завдань. Це могло б призвести до складної і монолітної системи, яку важко підтримувати і масштабувати. Натомість багатоагентна система могла б мати різних агентів, спеціалізованих на пошуку рейсів, бронюванні готелів і оренді автомобілів. Це зробило б систему більш модульною, простішою в обслуговуванні та масштабованою.

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

Складові реалізації багатоагентного шаблону проєктування

Перш ніж ви зможете реалізувати багатоагентний шаблон проєктування, вам потрібно зрозуміти складові, з яких складається цей шаблон.

Зробімо це більш конкретним, знову розглянувши приклад бронювання поїздки для користувача. У цьому випадку складові включали б:

Видимість взаємодій багатоагентної системи

Важливо мати видимість того, як кілька агентів взаємодіють один з одним. Ця видимість є суттєвою для налагодження, оптимізації та забезпечення ефективності системи в цілому. Щоб досягти цього, вам потрібні інструменти і методи для відстеження активностей та взаємодій агентів. Це може бути у вигляді інструментів логування та моніторингу, інструментів візуалізації та метрик продуктивності.

Наприклад, у випадку бронювання поїздки для користувача, ви могли б мати приладну панель, яка показує стан кожного агента, уподобання та обмеження користувача, а також взаємодії між агентами. Ця панель може показувати дати подорожі користувача, рейси, рекомендовані агентом пошуку рейсів, готелі, рекомендовані агентом бронювання готелів, і орендні автомобілі, рекомендовані агентом оренди авто. Це надало б вам чітке уявлення про те, як агенти взаємодіють між собою і чи виконуються уподобання та обмеження користувача.

Розглянемо кожен із цих аспектів детальніше.

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

Розглянемо деякі конкретні шаблони, які можна використовувати для створення багатоагентних застосунків. Ось кілька цікавих шаблонів, які варто розглянути:

Груповий чат

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

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

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

Груповий чат

Передача завдання

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

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

У цьому шаблоні кожен агент представляє завдання або крок у робочому процесі, і агенти можуть передавати завдання іншим агентам на основі заздалегідь визначених правил.

Передача завдання

Спільне фільтрування

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

Чому варто, щоб кілька агентів співпрацювали — бо кожен агент може мати різну експертизу і може по-різному сприяти процесу рекомендацій.

Розглянемо приклад, де користувач хоче отримати рекомендацію щодо найкращої акції для купівлі на фондовому ринку.

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

Сценарій: процес повернення коштів

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

Агенти, специфічні для процесу повернення коштів:

Нижче наведені деякі агенти, які можуть бути залучені в процес повернення коштів:

Загальні агенти:

Ці агенти можуть використовуватись в інших частинах вашого бізнесу.

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

Завдання

Спроєктуйте багатоагентну систему для процесу підтримки клієнтів. Визначте агенти, залучені в цей процес, їхні ролі та обов’язки, а також те, як вони взаємодіють один з одним. Розгляньте як агенти, специфічні для процесу підтримки клієнтів, так і загальні агенти, які можна використовувати в інших частинах вашого бізнесу.

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

Порада: Подумайте про різні етапи процесу підтримки клієнтів, а також врахуйте агентів, потрібних для будь-якої системи.

Solution

Solution

Knowledge checks

Question: When should you consider using multi-agents?

Solution quiz

Summary

In this lesson, we’ve looked at the multi-agent design pattern, including the scenarios where multi-agents are applicable, the advantages of using multi-agents over a singular agent, the building blocks of implementing the multi-agent design pattern, and how to have visibility into how the multiple agents are interacting with each other.

Got More Questions about the Multi-Agent Design Pattern?

Join the Microsoft Foundry Discord to meet with other learners, attend office hours and get your AI Agents questions answered.

Additional resources

Previous Lesson

Planning Design

Next Lesson

Metacognition in AI Agents


Відмова від відповідальності: Цей документ було перекладено за допомогою сервісу ШІ-перекладу Co-op Translator. Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ мовою оригіналу слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння чи неправильні тлумачення, що виникли внаслідок використання цього перекладу.