
(Кликните на слику изнад да бисте погледали видео о овој лекцији)
Шаблони дизајна више агената
Чим почнете да радите на пројекту који укључује више агената, мораћете да размислите о шаблону дизајна више агената. Међутим, можда неће одмах бити јасно када треба прећи на више агената и које су предности.
Увод
У овој лекцији ћемо покушати да одговоримо на следећа питања:
- Који су сценарији у којима се примењује више агената?
- Које су предности коришћења више агената уместо само једног агента који обавља више задатака?
- Који су грађевни елементи за имплементацију шаблона дизајна више агената?
- Како имамо видљивост у то како више агената међусобно комуницира?
Циљеви учења
Након ове лекције треба да будете у стању да:
- Препознате сценарије у којима се примењује више агената
- Препознате предности коришћења више агената уместо једног агента.
- Разумете грађевне елементе имплементације шаблона дизајна више агената.
Која је шира слика?
Више агената је шаблон дизајна који омогућава да више агената ради заједно да би постигли заједнички циљ.
Овај шаблон се широко користи у разним областима, укључујући роботику, аутономне системе и дистрибуирано рачунарство.
Сценарији где је примена више агената прикладна
Дакле, који су сценарији добар случај за употребу више агената? Одговор је да постоји много сценарија где је коришћење више агената корисно, нарочито у следећим случајевима:
- Велика оптерећења: Велика оптерећења могу се поделити на мање задатке и доделити различитим агентима, што омогућава паралелну обраду и брже завршетак. Пример за то је велики задатак обраде података.
- Комплексни задаци: Комплексни задаци, као и велика оптерећења, могу се разложити на мање подсакупине и доделити различитим агентима, од којих сваки специјализује одређени аспект задатка. Добар пример је у случају аутономних возила где различити агенти управљају навигацијом, детекцијом препрека и комуникацијом са другим возилима.
- Разноврсна стручност: Различити агенти могу имати разноврсну стручност, што им омогућава да ефикасније управљају различитим аспектима задатка него један агент. За овај случај, добар пример је здравствена заштита где агенти могу управљати дијагностиком, плановима лечења и праћењем пацијената.
Предности коришћења више агената уместо једног агента
Систем са једним агентом може добро радити за једноставне задатке, али за сложеније задатке коришћење више агената може пружити неколико предности:
- Специјализација: Сваки агент може бити специјализован за одређени задатак. Недостатак специјализације код једног агента значи да имате агента који може све, али се може збунити шта да ради када се суочи са сложеним задатком. На пример, може на крају обављати задатак за који није најбоље оспособљен.
- Шкалабилност: Лакше је скалирати системе додавањем више агената него преоптерећењем једног агента.
- Отпорност на грешке: Ако један агент не успе, други могу наставити са радом, обезбеђујући поузданост система.
Узмимо за пример да резервишемо путовање за корисника. Систем са једним агентом морао би да управља свим аспектима процеса резервације путовања, од проналажења летова до резервације хотела и изнајмљивања аутомобила. Да би то постигао са једним агентом, агент би требао имати алате за руковање свим овим задацима. То може довести до сложеног и монолитног система који је тешко одржавати и скалирати. Мулти-агентни систем, с друге стране, могао би имати различите агенте специјализоване за проналажење летова, резервацију хотела и возила за изнајмљивање. То би учинило систем модуларнијим, лакшим за одржавање и скалабилним.
Упоредите то са туристичком агентуром која ради као породична продавница у односу на туристичку агентуру која ради као франшиза. Породична продавница би имала једног агента који управља свим аспектима резервације путовања, док би франшиза имала различите агенте који управљају различитим аспектима процеса резервације.
Грађевни елементи имплементације шаблона дизајна више агената
Пре него што можете имплементирати шаблон дизајна више агената, морате разумети грађевне елементе који сачињавају тај шаблон.
Учинимо ово конкретнијим поновним погледом на пример резервације путовања за корисника. У овом случају, грађевни елементи би укључивали:
- Комуникација агената: Агенти за проналажење летова, резервацију хотела и изнајмљивање аутомобила морају комуницирати и делити информације о преференцијама и ограничењима корисника. Морате одлучити о протоколима и методама те комуникације. Конкретно, то значи да агент за проналажење летова мора комуницирати са агентом за резервацију хотела како би се осигурало да је хотел резервисан за исте датуме као и лет. То значи да агенти морају међусобно делити информације о датумима путовања корисника, тј. морате одлучити који агенти деле информације и како те информације деле.
- Механизми координације: Агенти морају координисати своје радње како би осигурали да су преференције и ограничења корисника испуњени. Корисник може имати преференцију да жели хотел близу аеродрома, док ограничење може бити да су возила за изнајмљивање доступна само на аеродрому. То значи да агент за резервацију хотела мора координисати са агентом за изнајмљивање аутомобила како би се осигурало да су преференције и ограничења корисника испуњени. Овде морате одлучити како агенти координишу своје радње.
- Архитектура агената: Агенти морају имати унутрашњу структуру за доношење одлука и учење из интеракција са корисником. То значи да агент за проналажење летова мора имати унутрашњу структуру за одлучивање о томе које летове да препоручи кориснику. Овде морате одлучити како агенти доносе одлуке и уче из интеракција са корисником. Примери могу бити да агент за проналажење летова може користити модел машинског учења да препоручи летове кориснику на основу његових претходних преференција.
- Видљивост у интеракције више агената: Морате имати видљивост у то како више агената међусобно комуницира. То значи да морате имати алате и технике за праћење активности и интеракција агената. Ово може бити у виду алата за бележење и мониторинг, алата за визуализацију и метрика перформанси.
- Обрасци више агената: Постоје различити обрасци за имплементацију мулти-агентних система, као што су централизоване, децентрализоване и хибридне архитектуре. Морате одлучити који шаблон најбоље одговара вашем случају употребе.
- Човек у петљи: У већини случајева ћете имати човека у процесу и треба да упутите агенте када да траже људску интервенцију. Ово може бити у виду корисника који тражи одређени хотел или лет који агенти нису препоручили или траже потврду пре резервације лета или хотела.
Видљивост у интеракције више агената
Важна је видљивост у томе како више агената комуницира један с другим. Ова видљивост је неопходна за отклањање грешака, оптимизацију и осигурање укупне ефикасности система. Да бисте то постигли, потребни су вам алати и технике за праћење активности и интеракција агената. Ово може бити у облику алата за бележење и надгледање, алата за визуализацију и метрика перформанси.
На пример, у случају резервације путовања за корисника, могли бисте имати контролни панел који приказује статус сваког агента, преференције и ограничења корисника, као и интеракције између агената. Тај контролни панел може приказати датуме путовања корисника, летове које је препоручио агент за летове, хотеле које је препоручио агент за хотел и возила за изнајмљивање која је препоручио агент за аутомобиле. Ово би вам пружило јасан преглед како агенти међусобно комуницирају и да ли се испуњавају преференције и ограничења корисника.
Погледајмо детаљније сваки од ових аспеката.
- Алатке за бележење и надгледање: Желите да се свака радња коју агент предузме региструје. Запис у дневнику може садржати информације о агенту који је извео радњу, самој радњи, времену када је радња извршена и резултату те радње. Ове информације се затим могу користити за отклањање грешака, оптимизацију и друге сврхе.
- Алатке за визуализацију: Алатке за визуализацију могу помоћи да лакше увидите интеракције између агената на интуитивнији начин. На пример, могли бисте имати граф који показује проток информација између агената. Ово може помоћи у идентификовању уских грла, неефикасности и других проблема у систему.
- Метрике перформанси: Метрике перформанси могу помоћи да пратите ефикасност мулти-агентног система. На пример, могли бисте пратити време потребно за завршетак задатка, број завршених задатака у јединици времена и тачност препорука које агенти дају. Ове информације могу помоћи у идентификовању области за побољшање и оптимизацију система.
Обрасци више агената
Хајде да погледамо неке конкретне шаблоне које можемо користити за креирање мулти-агент апликација. Ево неколико занимљивих шаблона вредних разматрања:
Групни ћаскање
Овај шаблон је користан када желите да направите апликацију за групни чет у којој више агената могу комуницирати један са другим. Типични случајеви употребе овог шаблона укључују тимску сарадњу, корисничку подршку и друштвене мреже.
У овом шаблону, сваки агент представља корисника у групном чету, а поруке се размењују између агената користећи протокол за слање порука. Агенти могу слати поруке групном чету, примати поруке из групног чета и одговарати на поруке других агената.
Овај шаблон се може имплементирати користећи централизовану архитектуру где се све поруке прослеђују преко централизованог сервера или децентрализовану архитектуру где се поруке размењују директно.

Пренос задатка
Овај шаблон је користан када желите да направите апликацију у којој више агената могу преносити задатке један другоме.
Типични случајеви употребе овог шаблона укључују корисничку подршку, управљање задацима и аутоматизацију радних токова.
У овом шаблону, сваки агент представља задатак или корак у радном току, и агенти могу преносити задатке другим агентима на основу унапред дефинисаних правила.

Колаборативно филтрирање
Овај шаблон је користан када желите да направите апликацију у којој више агената може сарађивати да би препоручили корисницима.
Зашто бисте желели да више агената сарађује, јесте зато што сваки агент може имати различиту стручност и може допринети процесу препорука на различите начине.
Узмимо за пример да корисник жели препоруку које акције је најбоље купити на берзи.
- Стручњак за индустрију: Један агент може бити стручњак за одређену индустрију.
- Техничка анализа: Други агент може бити стручњак за техничку анализу.
- Фундаментална анализа: и још један агент може бити стручњак за фундаменталну анализу. Сарадњом, ови агенти могу пружити потпунију препоруку кориснику.

Сценарио: Процес повраћаја новца
Размотрите сценарио у којем купац покушава да добије повраћај новца за производ, у том процесу може бити укључено доста агената, али хајде да их поделимо на агенте специфичне за овај процес и опште агенте који се могу користити у другим процесима.
Агенти специфични за процес повраћаја новца:
Следе неки агенти који могу бити укључени у процес повраћаја:
- Агент купца: Овај агент представља купца и одговоран је за иницирање процеса повраћаја.
- Агент продаваца: Овај агент представља продавца и одговоран је за обраду повраћаја.
- Агент плаћања: Овај агент представља процес плаћања и одговоран је за повраћај уплате купцу.
- Агент решавања спорова: Овај агент представља процес решавања и одговоран је за решавање свих проблема који се појаве током процеса повраћаја.
- Агент усаглашености: Овај агент представља процес усаглашености и одговоран је за осигурање да процес повраћаја буде у складу са прописима и политикама.
Општи агенти:
Ови агенти се могу користити у другим деловима вашег пословања.
- Агент испоруке: Овај агент представља процес испоруке и одговоран је за слање производа назад продавцу. Овај агент се може користити и у процесу повраћаја и у општој испоруци производа при куповини.
- Агент повратних информација: Овај агент представља процес повратних информација и одговоран је за прикупљање повратних информација од купаца. Повратне информације могу се добијати у било ком тренутку, не само током процеса повраћаја.
- Агент ескалације: Овај агент представља процес ескалације и одговоран је за ескалацију проблема на виши ниво подршке. Овај тип агента можете користити за било који процес где је потребно ескалирати проблем.
- Агент обавештавања: Овај агент представља процес обавештавања и одговоран је за слање обавештења купцу у различитим фазама процеса повраћаја.
- Агент аналитике: Овај агент представља процес аналитике и одговоран је за анализу података везаних за процес повраћаја.
- Агент ревизије: Овај агент представља процес ревизије и одговоран је за ревизију процеса повраћаја како би се осигурало да се правилно спроводи.
- Агент извештавања: Овај агент представља процес извештавања и одговоран је за генерисање извештаја о процесу повраћаја.
- Агент знања: Овај агент представља процес знања и одговоран је за одржавање базе знања са информацијама везаним за процес повраћаја. Тај агент може бити упућен и у повраћаје и у друге делове вашег пословања.
- Агент безбедности: Овај агент представља процес безбедности и одговоран је за обезбеђивање сигурности процеса повраћаја.
- Агент квалитета: Овај агент представља процес квалитета и одговоран је за осигурање квалитета процеса повраћаја.
Навели смо доста агената и за специфичан процес повраћаја и за опште агенте који се могу користити у другим деловима вашег пословања. Надамо се да вам ово даје идеју како можете одлучити које агенте ћете користити у мулти-агентном систему.
Задатак
Дизајнирајте мулти-агентни систем за процес корисничке подршке. Идентификујте агенте укључене у процес, њихове улоге и одговорности и како међусобно комуницирају. Размотрите како агенте специфичне за процес корисничке подршке, тако и опште агенте који се могу користити у другим деловима вашег пословања.
Промислите пре него што прочитате следеће решење, можда вам треба више агената него што мислите.
САВЕТ: Размислите о различитим фазама процеса корисничке подршке и такође узмите у обзир агенте потребне за било који систем.
Решење
Решење
Провера знања
Питање: Када треба размотрити коришћење више агената?
Квиз решења
Резиме
У овој лекцији, погледали смо образац дизајна са више агената, укључујући сценарије у којима су више агената применљиви, предности коришћења више агената у односу на једног агента, основне елементе за имплементацију обрасца дизајна са више агената и како имати увид у то како више агената међусобно комуницирају.
Имате још питања о обрасцу дизајна са више агената?
Придружите се Microsoft Foundry Discord да упознате друге ученике, присуствујете канцеларијским часовима и добијете одговоре на ваша питања о AI агенатима.
Додатни ресурси
Претходна лекција
Планирање дизајна
Следећа лекција
Метакогниција у AI агенатима
Одрицање од одговорности:
Овај документ је преведен коришћењем AI преводилачке услуге Co-op Translator. Иако тежимо тачности, молимо вас да имате на уму да аутоматизовани преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални људски превод. Не преузимамо одговорност за било каква неспоразума или погрешна тумачења која проистекну из употребе овог превода.