ai-agents-for-beginners

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

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

Како употреба AI агената расте, тако расте и потреба за протоколима који обезбеђују стандардизацију, сигурност и подржавају отворене иновације. У овом лекцији, покрићемо три протокола која имају за циљ да испуне ову потребу - 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-ови).

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

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

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

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

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

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

MCP Пример

MCP Дијаграм

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

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

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

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

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

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

Agent-to-Agent Protocol (A2A)

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

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

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

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

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

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

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

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

Артефакт

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

Ред догађаја

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

Предности A2A

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

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

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

A2A Пример

A2A Дијаграм

Проширимо наш сценарио резервације путовања, али овог пута користећи 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 помаже у интерпретацији резултата претраге из базе података, идентификује најбоље подударности на основу критеријума “прилагођен породицама,” “базен,” и “Хонолулу,” и затим форматира одговор на природ


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