ai-agents-for-beginners

Коришћење агентних протокола (MCP, A2A и NLWeb)

Agentic Protocols

(Кликните на слику изнад да бисте погледали видео о овом часу)

Како расте употреба AI агената, тако расте потреба за протоколима који обезбеђују стандардизацију, безбедност и подржавају отворене иновације. У овом часу ћемо обрадити 3 протокола која настоје да задовоље ову потребу - Модел Контекст Протокол (MCP), Агент до Агента (A2A) и Природни Језички Веб (NLWeb).

Увод

У овом часу ћемо обрадити:

• Како MCP омогућава AI агентима приступ спољним алатима и подацима за обављање корисничких задатака.

• Како A2A омогућава комуникацију и сарадњу између различитих AI агената.

• Како NLWeb доноси интерфејсе природног језика на било који веб сајт, омогућавајући AI агенатима да открију и интерагују са садржајем.

Циљеви учења

• Идентификовати основну сврху и предности MCP, A2A и NLWeb у контексту AI агената.

• Објаснити како сваки протокол олакшава комуникацију и интеракцију између LLM-ова, алата и других агената.

• Препознати различите улоге које сваки протокол има у изградњи сложених агентних система.

Модел Контекст Протокол

Модел Контекст Протокол (MCP) је отворени стандард који пружа стандардан начин да апликације обезбеде контекст и алате LLM-овима. Ово омогућава “универзални адаптер” за различите изворе података и алате на које се AI агенти могу доследно повезивати.

Погледајмо компоненте MCP-а, предности у односу на директну употребу API-ја и пример како би AI агенти могли користити MCP сервер.

Основне компоненте MCP-а

MCP функционише на клијент-сервер архитектури и основне компоненте су:

• Домаћини су LLM апликације (на пример уређивач кода као што је VSCode) које покрећу везе са MCP сервером.

• Клијенти су компоненти унутар домаћинске апликације које одржавају везу један-на-један са серверима.

• Сервери су лагани програми који екпонирају специфичне могућности.

У протоколу су укључене три основне примитиве које су могућности MCP сервера:

• Алатке: Ово су дискретне радње или функције које AI агент може позвати да изврши неку акцију. На пример, сервис за временску прогнозу може екпонрирати алатку “узми време”, или сервер е-трговине може екпонрирати алатку “купити производ”. MCP сервери оглашавају име, опис и шему улаза/излаза сваког алата у листи својих могућности.

• Ресурси: Ово су подаци само за читање или документи које MCP сервер може обезбедити, а клијенти их могу преузимати по потреби. Примери укључују садржај фајлова, записе из базе података или лог фајлове. Ресурси могу бити текстуални (као код или JSON) или бинарни (као слике или PDF-ови).

• Подстицаји (Prompts): Ово су унапред дефинисани шаблони који пружају предложене упите, омогућавајући сложеније радне токове.

Предности MCP-а

MCP пружа значајне предности за AI агенте:

• Динамичко откривање алата: Агенти могу динамички добити листу доступних алата са сервера уз описе њихових функција. Ово је супротно традиционалним API-јима који често захтевају статичко кодирање за интеграције, што значи да свака промена API-ја захтева измену кода. MCP нуди приступ “интегриши једном”, што води већој прилагодљивости.

• Интероперабилност између LLM-ова: MCP ради преко различитих LLM-ова, пружајући флексибилност за промену основних модела у циљу бољег перформанса.

• Стандаризована Безбедност: MCP укључује стандардни метод аутентикације, што побољшава скалабилност при додавању приступа додатним MCP серверима. Ово је једноставније од управљања различитим кључевима и типовима аутентикације за разне традиционалне API-је.

Пример MCP-а

MCP Diagram

Замислите да корисник жели да резервише лет користећи AI асистента који користи MCP.

  1. Повезивање: AI асистент (MCP клијент) се повезује са MCP сервером који пружа авио-компанија.

  2. Откривање алата: Клијент пита MCP сервер авио-компаније: “Које алате имате на располагању?” Сервер одговара алатима као што су “претрага летова” и “резервација лета”.

  3. Позивање алата: Корисник каже AI асистенту: “Молим те пронађи лет од Портланда до Хонолулуја.” AI асистент, користећи свој LLM, идентификује да треба да позове алатку “претрага летова” и прослеђује релевантне параметре (полазак, одредиште) MCP серверу.

  4. Извршење и одговор: MCP сервер, као омотач, врши стварни позив унутрашњем API-ју авио-компаније. Затим прима информације о лету (нпр. JSON податке) и шаље их назад AI асистенту.

  5. Даља интеракција: AI асистент приказује опције летова. Када корисник изабере лет, асистент може позвати алатку “резервација лета” на истом MCP серверу и завршити резервацију.

Протокол Агент-Агент (A2A)

Док се MCP фокусира на повезивање LLM-ова са алатима, Протокол Агент-Агент (A2A) иде корак даље омогућавајући комуникацију и сарадњу између различитих AI агената. A2A повезује AI агенте из различитих организација, окружења и технолошких стека да би заједнички обавили задатак.

Обрадићемо компоненте и предности A2A, као и пример како се он може применити у нашој апликацији за путовања.

Основне компоненте A2A

A2A се фокусира на омогућавање комуникације између агената и њиховог заједничког рада на делу корисничког задатка. Свака компонента протокола доприноси томе:

Карта агента

Слично као што MCP сервер дели листу алата, Карта агента садржи:

Извршилац агента

Извршилац агента је одговоран за прослеђивање контекста корисничког ћаскања удаљеном агенту, који му је потребан да разуме задатак који треба да се обави. У A2A серверу, агент користи свој сопствени велики језички модел (LLM) да анализира долазне захтеве и извршава задатке користећи своје унутрашње алате.

Артефакт

Када удаљени агент заврши тражени задатак, његов радни производ је направљен као артефакт. Артефакт садржи резултат рада агента, опис онога што је урађено и текстуални контекст који се шаље кроз протокол. Након слања артефакта, веза са удаљеним агентом се затвара до следеће потребе.

Ред догађаја

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

Предности A2A

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

• Флексибилност избора модела: Сваки A2A агент може одлучити који LLM користи за обраду својих захтева, омогућавајући оптимизоване или специјализоване моделе по агенту, за разлику од једне LLM везе у неким MCP сценаријима.

• Уграђена аутентикација: Аутентикација је директно интегрисана у A2A протокол, пружајући робустан безбедносни оквир за интеракције агената.

Пример A2A

A2A Diagram

Проширимо наш сценарио резервације путовања, али овог пута користећи A2A.

  1. Кориснички захтев ка мулти-агенту: Корисник комуницира са “Агентом за путовања” који је A2A клијент/агент, можда кажући: “Молим те резервиши цело путовање до Хонолулуа за следећу недељу, укључујући летове, хотел и изнајмљивање аутомобила”.

  2. Оркестрација од стране агента за путовања: Агент за путовања прихвата овај сложени захтев. Користи свој LLM да разуме задатак и одреди да мора да сарађује са другим специјализованим агентима.

  3. Комуникација између агената: Агент за путовања користи A2A протокол да се повеже са агенти као што су “Aгента авио-компаније”, “Хотел агента” и “Агента за изнајмљивање аутомобила” које су направиле различите компаније.

  4. Делегирано извршење задатака: Агент за путовања шаље конкретне задатке овим специјализованим агентима (нпр. “Пронађи летове за Хонолулу”, “Резервиши хотел”, “Изнајми аутомобил”). Сваки од ових специјализованих агената, који користе своје LLM-ове и сопствене алате (који могу бити сами MCP сервери), обавља свој део резервације.

  5. Консолидовани одговор: Када сви агенти заврше своје задатке, Агент за путовања саставља резултате (подаци о летовима, потврде за хотел, резервације аутомобила) и шаље свеобухватан одговор у облику ћаскања кориснику.

Природни Језички Веб (NLWeb)

Веб сајтови су дуго били примарни начин за кориснике да приступају информацијама и подацима преко интернета.

Погледајмо различите компоненте NLWeb-а, његове предности и пример како наш NLWeb ради кроз нашу апликацију за путовања.

Компоненте NLWeb-а

NLWeb пример

NLWeb

Размотримо поново наш веб сајт за резервацију путовања, али овог пута покреће га NLWeb.

  1. Унос података: Постојећи каталози производа са веб сајта за путовања (нпр. листе летова, описи хотела, туристички пакети) су форматирани користећи Schema.org или се учитавају преко RSS фидова. Инструменти NLWeb-а уносе ове структуиране податке, креирају embedding-е и чувају их у локалној или удаљеној векторској бази података.

  2. Питање на природном језику (човек): Корисник посећује веб сајт и уместо да прелистава меније, куца у интерфејсу за ћаскање: “Пронађи ми породично пријатан хотел у Хонолулуу са базеном за следећу недељу”.

  3. Обрада NLWeb-а: NLWeb апликација прима овај упит. Шаље упит LLM-у за разумевање и истовремено претражује своју векторску базу података за релевантне листе хотела.

  4. Прецизни резултати: LLM помаже у тумачењу резултата претраге из базе, идентификује најбоље подударајуће критеријуме „породично пријатан“, „базен“ и „Хонолулу“, и форматира одговор природним језиком. Кључно је да одговор се односи на стварне хотеле из каталога сајта, избегавајући измишљене информације.

  5. Интеракција са AI агентом: Пошто NLWeb служи као MCP сервер, спољни AI туристички агент такође може да се повеже на ову NLWeb инстанцу сајта. AI агент може користити ask MCP методу да директно пита сајт: ask("Постоје ли неки ресторани прилагођени веганима у Хонолулуу које хотел препоручује?"). NLWeb би обрадио ово корисћењем своје базе података о ресторанима (ако је учитана) и вратио структурирани JSON одговор.

Имате још питања о MCP/A2A/NLWeb?

Придружите се Microsoft Foundry Discord да упознате друге ученике, присуствујете радним сатима и добијете одговоре на ваша питања у вези AI агената.

Ресурси

Претходни час

AI Агенти у продукцији

Следећи час

Инжењеринг контекста за AI агенте


Изјава о одрицању одговорности: Овај документ је преведен коришћењем услуге за аутоматски превод Co-op Translator. Иако тежимо тачности, имајте у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитативним извором. За критичне информације препоручује се професионални људски превод. Нисмо одговорни за било каква неспоразума или погрешна тумачења која произилазе из коришћења овог превода.