ai-agents-for-beginners

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

Агентски протоколи

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

Како расте употреба AI агената, расте и потреба за протоколима који обезбеђују стандардизацију, безбедност и подржавају отворене иновације. У овој лекцији покрићемо 3 протокола који настоје да задовоље ту потребу - Model Context Protocol (MCP), Agent to Agent (A2A) и Natural Language Web (NLWeb).

Увод

У овој лекцији ћемо покрити:

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

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

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

Циљеви учења

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

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

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

Протокол контекста модела

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

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

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

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

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

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

Сервери су лагани програми који излажу одређене могућности.

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

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

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

Промптови: То су унапред дефинисани шаблони који пружају предложене упите, омогућавајући сложеније радне токове.

Предности MCP

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

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

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

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

Пример MCP

MCP дијаграм

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

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

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

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

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

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

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

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

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

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

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

Картица агента

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

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

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

Артефакт

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

Ред чворова (Event Queue)

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

Предности A2A

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

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

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

Пример A2A

A2A дијаграм

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

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

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

  3. Међу-агентска комуникација: Травел Агент затим користи A2A протокол да се повезује са downstream агентима, као што су „Airline Agent“, „Hotel Agent“ и „Car Rental Agent“ које су креирале различите компаније.

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

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

Natural Language Web (NLWeb)

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

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

Компоненте NLWeb

NLWeb преко примера

NLWeb

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

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

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

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

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

  5. Интеракција AI агента: Пошто NLWeb служи као MCP сервер, спољашњи AI тревел агент може се повезати и на инстанцу NLWeb-а овог сајта. AI агент би потом могао да користи ask("Are there any vegan-friendly restaurants in the Honolulu area recommended by the hotel?"). NLWeb инстанца би ово обработила, користећи своју базу података о ресторанима (ако је учитана), и вратила структуриран JSON одговор.

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

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

Ресурси


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