ai-agents-for-beginners

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

Agentic Protocols

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

Како расте коришћење 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

Model Context Protocol (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 асистента „Молим те, претражи лет од Портланда до Хонолулуа.“ Асистент, користећи свој LLM, препознаје да треба да позове алатку „претражи летове“ и прослеђује релевантне параметре (почетак, одредиште) MCP серверу.

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

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

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

Док MCP фокусира на повезивање LLM-ова са алаткама, Agent-to-Agent (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 протокол да се повеже са нижестепеним агентима као што су „авио агент“, „агент хотела“ и „агент изнајмљивања аутомобила“ које су створиле различите компаније.

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

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

Natural Language Web (NLWeb)

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

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

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

Пример NLWeb-а

NLWeb

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

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

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

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

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

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

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

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

Ресурси

Претходна лекција

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

Следећа лекција

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


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