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

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).

Подканващи шаблони (Prompts): Това са предварително дефинирани шаблони с предложени подканвания, позволяващи по-сложни работни потоци.

Предимства на 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 сървър, завършвайки резервацията.

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

Докато MCP се фокусира върху свързването на LLM с инструменти, протоколът Agent-to-Agent (A2A) отива една крачка по-напред, като позволява комуникация и сътрудничество между различни AI агенти. A2A свързва AI агенти от различни организации, среди и технологични платформи за изпълнение на обща задача.

Ще разгледаме компонентите и ползите от A2A, както и пример как може да се приложи в нашето приложение за пътувания.

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

A2A се фокусира върху позволяване на комуникация между агенти и тяхната съвместна работа за изпълнение на подзадача на потребителя. Всеки компонент на протокола допринася за това:

Карта на агента (Agent Card)

Подобно на това как MCP сървър споделя списък с инструменти, Карта на агента има:

Изпълнител на агента (Agent Executor)

Изпълнителят на агента отговаря за предаването на контекста на потребителския чат до отдалечения агент, който се нуждае от това, за да разбере задачата за изпълнение. В A2A сървър, един агент използва собствен LLM, за да анализира входящите заявки и да изпълнява задачи чрез собствените си вътрешни инструменти.

Артефакт

След като отдалеченият агент изпълни исканата задача, неговият краен продукт се създава като артефакт. Артефактът съдържа резултата от работата на агента, описание на изпълненото и текстов контекст, който се предава през протокола. След като артефактът бъде изпратен, връзката с отдалечения агент се затваря до следващо използване.

Опашка от събития (Event Queue)

Този компонент се използва за обработка на актуализации и предаване на съобщения. Особено е важен в продукционни агентни системи, за да се предотврати прекъсване на връзката между агенти преди завършване на задачата, особено когато изпълнението може да отнеме по-дълго време.

Предимства на 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 помага да се интерпретират резултатите от търсенето, да се открият най-добрите попадения на база критерии “подходящ за семейства”, „басейн“ и „Хонолулу“, и форматира естествено-езиков отговор. Критичното е, че отговорът се позовава на истински хотели от каталога на сайта, без измислена информация.

  5. Взаимодействие с AI агент: Тъй като NLWeb функционира като MCP сървър, външен AI туристически агент може да се свърже с NLWeb инстанцията на този сайт. AI агентът може да използва MCP метода ask, за да направи директен запитване към сайта: ask("Има ли в района на Хонолулу вегански ресторанти, препоръчани от хотела?"). NLWeb ще обработи това, използвайки своята база данни с ресторанти (ако е заредена), и ще върне структуриран JSON отговор.

Имате ли още въпроси относно MCP/A2A/NLWeb?

Присъединете се към Microsoft Foundry Discord, за да се срещнете с други учащи, да участвате в офис часове и да получите отговори на вашите въпроси за AI агенти.

Ресурси

Предишен урок

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

Следващ урок

Контекстово инженерство за AI агенти


Отказ от отговорност: Този документ е преведен с помощта на AI преводачески услуга Co-op Translator. Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.