(Кликнете върху изображението по-горе, за да гледате видео на този урок)
С нарастването на използването на 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 работи на база клиент-сървър архитектура и основните компоненти са:
• Хостове са LLM приложения (например редактор на код като VSCode), които стартират връзките към MCP сървър.
• Клиенти са компоненти в хост приложението, които поддържат връзки един към един със сървъри.
• Сървъри са леки програми, които предоставят конкретни възможности.
В протокола са включени три основни примитива, които са възможностите на MCP сървър:
• Инструменти: Това са дискретни действия или функции, които AI агент може да извиква, за да изпълни дадено действие. Например, служба за прогноза на времето може да предостави инструмент “get weather”, или e-commerce сървър - инструмент “purchase product”. MCP сървърите рекламират името, описанието и схемата на входно-изходните данни на всеки инструмент в списъка с възможности.
• Ресурси: Това са само за четене елементи от данни или документи, които MCP сървър може да предостави и клиентите могат да го изискват при поискване. Примери са съдържанието на файлове, записи в база данни или лог файлове. Ресурсите могат да бъдат текстови (като код или JSON) или бинарни (като изображения или PDF).
• Подканващи шаблони (Prompts): Това са предварително дефинирани шаблони с предложени подканвания, позволяващи по-сложни работни потоци.
MCP предлага значителни предимства за AI агенти:
• Динамично откриване на инструменти: Агентите могат динамично да получават списък с налични инструменти от сървър заедно с описания какво правят. Това се различава от традиционните API, които често изискват статично кодиране за интеграции, което означава, че всяка промяна на API налага актуализация на кода. MCP предлага подход “интегрирай веднъж”, водещ до по-голяма гъвкавост.
• Съвместимост между различни LLM: MCP работи с различни LLM, осигурявайки гъвкавост да сменяте основния модел за по-добра производителност.
• Стандартизирана сигурност: MCP включва стандартен метод за удостоверяване, подобрявайки мащабируемостта при добавяне на достъп до допълнителни MCP сървъри. Това е по-просто от управлението на различни ключове и типове удостоверяване за разнообразни традиционни API.

Представете си, че потребител иска да резервира полет чрез AI асистент, захранван от MCP.
Връзка: AI асистентът (MCP клиент) се свързва със MCP сървър, предоставен от авиокомпания.
Откриване на инструменти: Клиентът пита MCP сървъра на авиокомпанията: “Какви инструменти имате на разположение?” Сървърът отговаря с инструменти като “търсене на полети” и “резервация на полети”.
Извикване на инструмент: След това питате AI асистента: “Моля, намери полет от Портланд до Хонолулу.” AI асистентът, използвайки своя LLM, установява, че трябва да извика инструмента “търсене на полети” и предава релевантните параметри (откъде, къде) на MCP сървъра.
Изпълнение и отговор: MCP сървърът, действащ като обвивка, прави реалното повикване на вътрешния API за резервации на авиокомпанията. След това получава информацията за полета (напр. JSON данни) и я изпраща обратно на AI асистента.
Допълнително взаимодействие: AI асистентът представя опциите за полети. След като изберете полет, асистентът може да извика инструмента “резервирай полет” на същия MCP сървър, завършвайки резервацията.
Докато MCP се фокусира върху свързването на LLM с инструменти, протоколът Agent-to-Agent (A2A) отива една крачка по-напред, като позволява комуникация и сътрудничество между различни AI агенти. A2A свързва AI агенти от различни организации, среди и технологични платформи за изпълнение на обща задача.
Ще разгледаме компонентите и ползите от A2A, както и пример как може да се приложи в нашето приложение за пътувания.
A2A се фокусира върху позволяване на комуникация между агенти и тяхната съвместна работа за изпълнение на подзадача на потребителя. Всеки компонент на протокола допринася за това:
Подобно на това как MCP сървър споделя списък с инструменти, Карта на агента има:
Изпълнителят на агента отговаря за предаването на контекста на потребителския чат до отдалечения агент, който се нуждае от това, за да разбере задачата за изпълнение. В A2A сървър, един агент използва собствен LLM, за да анализира входящите заявки и да изпълнява задачи чрез собствените си вътрешни инструменти.
След като отдалеченият агент изпълни исканата задача, неговият краен продукт се създава като артефакт. Артефактът съдържа резултата от работата на агента, описание на изпълненото и текстов контекст, който се предава през протокола. След като артефактът бъде изпратен, връзката с отдалечения агент се затваря до следващо използване.
Този компонент се използва за обработка на актуализации и предаване на съобщения. Особено е важен в продукционни агентни системи, за да се предотврати прекъсване на връзката между агенти преди завършване на задачата, особено когато изпълнението може да отнеме по-дълго време.
• Подобрено сътрудничество: Позволява на агенти от различни доставчици и платформи да взаимодействат, да споделят контекст и да работят заедно, улеснявайки безпроблемна автоматизация между традиционно изолирани системи.
• Гъвкавост при избора на модел: Всеки A2A агент може да избере кой LLM да използва за обслужване на своите заявки, позволявайки оптимизирани или усъвършенствани модели за всеки агент, за разлика от единичната LLM връзка в някои MCP сценарии.
• Вградена автентикация: Автентикацията е интегрирана директно в A2A протокола, предоставяйки здрава рамка за сигурност при взаимодействие между агенти.

Нека разширим нашия сценарий за резервация на пътувания, но този път използвайки A2A.
Потребителска заявка към мултиагент: Потребителят комуникира с “Агент за пътувания” – A2A клиент/агент, например казвайки: “Моля, резервирай пълно пътуване до Хонолулу за следващата седмица, включително полети, хотел и автомобил под наем”.
Оркестрация от Агента за пътувания: Агентът за пътувания получава тази сложна заявка. Той използва своя LLM, за да анализира задачата и да определи, че трябва да взаимодействат с други специализирани агенти.
Комуникация между агенти: След това Агентът за пътувания използва A2A протокола, за да се свърже с нискониво агенти, като “Авиоагент”, “Хотелен агент” и “Агент за коли под наем”, които са създадени от различни компании.
Делегирано изпълнение на задачи: Агентът за пътувания изпраща конкретни задачи на тези специализирани агенти (например „Намери полети до Хонолулу“, „Резервирай хотел“, „Наеми кола“). Всеки от тези агенти, използвайки свои LLM и инструменти (които сами може да са MCP сървъри), изпълнява своята конкретна част от резервацията.
Консолидиран отговор: След като всички агенти долу приключат задачите си, Агентът за пътувания събира резултатите (детайли за полети, потвърждения за хотел и резервация на кола) и изпраща изчерпателен, чат-стил отговор обратно към потребителя.
Уебсайтовете отдавна са основен начин, по който потребителите получават достъп до информация и данни в интернет.
Нека разгледаме различните компоненти на NLWeb, ползите от NLWeb и пример как работи нашето NLWeb, като разгледаме нашето приложение за пътувания.
NLWeb приложение (основен код на услугата): Системата, която обработва въпроси на естествен език. Тя свързва различните части на платформата за да създава отговори. Можете да я смятате за двигателя, който захранва естествено-езиковите функции на даден уебсайт.
Протокол NLWeb: Това е основен набор от правила за естествено езиково взаимодействие с уебсайт. Той връща отговори във формат JSON (често използващ Schema.org). Целта му е да създаде проста основа за „AI Уеб“, подобно на това как HTML направи възможно споделянето на документи онлайн.
MCP сървър (крайна точка Model Context Protocol): Всяка инсталация на NLWeb работи и като MCP сървър. Това означава, че може да споделя инструменти (като метод „ask“) и данни с други AI системи. На практика това прави съдържанието и възможностите на сайта достъпни за AI агенти, позволявайки на сайта да стане част от по-широката „агентна екосистема“.
Модели за вграждане (Embedding Models): Тези модели се използват, за да превърнат съдържанието на уебсайта в числови представяния, наречени вектори (вграждания). Тези вектори улавят смисъл по начин, по който компютрите могат да сравняват и търсят. Те се съхраняват в специална база данни, а потребителите могат да изберат кой модел за вграждане искат да използват.
Векторна база данни (механизъм за извличане): Тази база данни съхранява вградените вектори на съдържанието на уебсайта. Когато някой зададе въпрос, NLWeb проверява векторната база, за да намери най-подходящата информация бързо. Тя дава бърз списък с възможни отговори, подредени по сходство. NLWeb работи с различни системи за съхранение като Qdrant, Snowflake, Milvus, Azure AI Search и Elasticsearch.

Помислете отново за нашия уебсайт за резервация на пътувания, но този път захранван от NLWeb.
Въвеждане на данни: Съществуващите продуктови каталози на туристическия сайт (например списъци с полети, описания на хотели, пакетни турове) са форматирани с Schema.org или заредени чрез RSS емисии. Инструментите на NLWeb въвеждат тези структурирани данни, създават вграждания и ги съхраняват в локална или отдалечена векторна база данни.
Запитване на естествен език (човек): Потребител посещава сайта и, вместо да разглежда менюта, въвежда в чат интерфейс: „Намери ми хотел, подходящ за семейства в Хонолулу с басейн за следващата седмица“.
Обработка от NLWeb: NLWeb приложението получава това запитване. То го изпраща на LLM за разбиране и едновременно търси в своята векторна база данни за релевантни хотелски обяви.
Точни резултати: LLM помага да се интерпретират резултатите от търсенето, да се открият най-добрите попадения на база критерии “подходящ за семейства”, „басейн“ и „Хонолулу“, и форматира естествено-езиков отговор. Критичното е, че отговорът се позовава на истински хотели от каталога на сайта, без измислена информация.
Взаимодействие с AI агент: Тъй като NLWeb функционира като MCP сървър, външен AI туристически агент може да се свърже с NLWeb инстанцията на този сайт. AI агентът може да използва MCP метода ask, за да направи директен запитване към сайта: ask("Има ли в района на Хонолулу вегански ресторанти, препоръчани от хотела?"). NLWeb ще обработи това, използвайки своята база данни с ресторанти (ако е заредена), и ще върне структуриран JSON отговор.
Присъединете се към Microsoft Foundry Discord, за да се срещнете с други учащи, да участвате в офис часове и да получите отговори на вашите въпроси за AI агенти.
Контекстово инженерство за AI агенти
Отказ от отговорност: Този документ е преведен с помощта на AI преводачески услуга Co-op Translator. Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.