logo
0
0
WeChat Login
leestott<leestott@users.noreply.github.com>
🌐 Update translations via Co-op Translator

Използване на агентни протоколи (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 агентите.

Обяснение как всеки протокол улеснява комуникацията и взаимодействието между LLMs, инструменти и други агенти.

Разпознаване на различните роли, които всеки протокол играе при изграждането на сложни агентни системи.

Model Context Protocol

Model Context Protocol (MCP) е отворен стандарт, който предоставя стандартизиран начин за приложенията да предоставят контекст и инструменти на LLMs. Това позволява "универсален адаптер" към различни източници на данни и инструменти, към които AI агентите могат да се свързват по последователен начин.

Нека разгледаме компонентите на MCP, ползите в сравнение с директното използване на API и пример за това как AI агентите могат да използват MCP сървър.

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

MCP работи на архитектура клиент-сървър, а основните компоненти са:

Хостове са LLM приложения (например редактор на код като VSCode), които инициират връзките към MCP сървър.

Клиенти са компоненти в хост приложението, които поддържат едно към едно връзки със сървъри.

Сървъри са леки програми, които предоставят специфични възможности.

Протоколът включва три основни примитива, които представляват възможностите на MCP сървър:

Инструменти: Това са отделни действия или функции, които AI агент може да извика, за да изпълни дадено действие. Например, услуга за прогноза за времето може да предостави инструмент "получи прогноза", или сървър за електронна търговия може да предостави инструмент "закупи продукт". MCP сървърите рекламират името, описанието и схемата за вход/изход на всеки инструмент в списъка си с възможности.

Ресурси: Това са данни или документи само за четене, които MCP сървър може да предостави, а клиентите могат да ги извличат при поискване. Примери включват съдържание на файлове, записи в база данни или лог файлове. Ресурсите могат да бъдат текстови (като код или JSON) или бинарни (като изображения или PDF файлове).

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

Ползи от MCP

MCP предлага значителни предимства за AI агентите:

Динамично откриване на инструменти: Агенти могат динамично да получават списък с наличните инструменти от сървър заедно с описания на техните функции. Това е в контраст с традиционните API, които често изискват статично кодиране за интеграции, което означава, че всяка промяна в API налага актуализации на кода. MCP предлага подход "интегрирай веднъж", което води до по-голяма адаптивност.

Интероперативност между LLMs: MCP работи с различни LLMs, предоставяйки гъвкавост за смяна на основните модели за по-добра производителност.

Стандартизирана сигурност: 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 се фокусира върху свързването на LLMs с инструменти, Agent-to-Agent (A2A) протоколът отива една стъпка по-напред, като позволява комуникация и сътрудничество между различни AI агенти. A2A свързва AI агенти от различни организации, среди и технологични платформи, за да изпълнят обща задача.

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

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

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

Карта на агента

Подобно на това как MCP сървър споделя списък с инструменти, карта на агента съдържа:     ◦ Името на агента.
    ◦ Описание на общите задачи, които изпълнява.
    ◦ Списък със специфични умения с описания, които помагат на други агенти (или дори на човешки потребители) да разберат кога и защо биха искали да извикат този агент.
    ◦ Текущият URL адрес на крайна точка на агента.
    ◦ Версията и възможностите на агента, като стрийминг отговори и push известия.

Изпълнител на агента

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

Артефакт

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

Опашка за събития

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

Ползи от A2A

Подобрено сътрудничество: Позволява на агенти от различни доставчици и платформи да взаимодействат, споделят контекст и работят заедно, улеснявайки безпроблемната автоматизация в традиционно несвързани системи.

Гъвкавост при избора на модел: Всеки A2A агент може да реши кой LLM да използва за обслужване на своите заявки, позволявайки оптимизирани или фино настроени модели за всеки агент, за разлика от единна LLM връзка в някои MCP сценарии.

Вградена автентикация: Автентикацията е интегрирана директно в A2A протокола, предоставяйки стабилна рамка за сигурност за взаимодействията между агентите.

Пример за A2A

Диаграма на A2A

Нека разширим нашия сценарий за резервация на пътуване, но този път използвайки A2A.

  1. Заявка от потребител към мултиагент: Потребител взаимодейства с "Туристически агент" A2A клиент/агент, например казвайки: "Моля, резервирай цялото пътуване до Хонолулу за следващата седмица, включително полети, хотел и кола под наем."

  2. Оркестрация от туристическия агент: Туристическият агент получава тази сложна заявка. Той използва своя LLM, за да анализира задачата и да определи, че трябва да взаимодейства с други специализирани агенти.

  3. Комуникация между агентите: Туристическият агент използва A2A протокола, за да се свърже с подчинени агенти, като "Агент за авиокомпании", "Агент за хотели" и "Агент за коли под наем", които са създадени от различни компании.

  4. Делегирано изпълнение на задачи: Туристическият агент изпраща специфични задачи на тези специализирани агенти (например "Намери полети до Хонолулу", "Резервирай хотел", "Наеми кола"). Всеки от тези специализирани агенти, използвайки свои собствени LLMs и инструменти (които могат да бъдат MCP сървъри), изпълнява своята специфична част от резервацията.

  5. Обобщен отговор: След като всички подчинени агенти завършат своите задачи, туристическият агент компилира резултатите (детайли за полета, потвърждение за хотела, резервация за кола под наем) и изпраща изчерпателен, стилен отговор обратно на потребителя.

Natural Language Web (NLWeb)

Уебсайтовете отдавна са основният начин за потребителите да достъпват информация и данни в интернет.

Нека разгледаме различните компоненти на NLWeb, ползите от NLWeb и пример за това как работи NLWeb, като разгледаме нашето приложение за пътуване.

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

  • NLWeb приложение (основен код на услугата): Системата, която обработва въпроси на естествен език. Тя свързва различните части на платформата, за да създаде отговори. Можете да я мислите като двигателя, който задвижва функциите на естествен език на уебсайт.

  • NLWeb протокол: Това е основен набор от правила за взаимодействие на естествен език с уебсайт. Той връща отговори във формат JSON (често използвайки Schema.org). Целта му е да създаде проста основа за "AI Web", по същия начин, по който HTML направи възможно споделянето на документи онлайн.

  • MCP сървър (крайна точка на Model Context Protocol): Всяка настройка на NLWeb също работи като MCP сървър. Това означава, че може да споделя инструменти (като метод "питай") и данни с други AI системи. На практика това прави съдържанието и възможностите на уебсайта използваеми от AI агенти, позволявайки на сайта да стане част от по-широката "екосистема на агентите".

  • Модели за вграждане: Тези модели се използват за преобразуване на съдържанието на уебсайта в числови представяния, наречени вектори (вграждания). Тези вектори улавят значението по начин, който компютрите могат да сравняват и търсят. Те се съхраняват в специална база данни, а потребителите могат да изберат кой модел за вграждане искат да използват.

  • Векторна база данни (механизъм за извличане): Тази база данни съхранява вгражданията на съдържанието на уебсайта. Когато някой зададе въпрос, NLWeb проверява векторната база данни, за да намери най-релевантната информация. Тя предоставя бърз списък с възможни отговори, подредени по сходство. NLWeb работи с различни системи за съхранение на вектори като Qdrant, Snowflake, Milvus, Azure AI Search и Elasticsearch.

NLWeb чрез пример

NLWeb

Разгледайте отново нашия уебсайт за резервации на пътувания, но този път, захранван от NLWeb.

  1. Въвеждане на данни: Съществуващите продуктови каталози на уебсайта за пътувания (например списъци с полети, описания на хотели, туристически пакети) се форматират с помощта на Schema.org или се зареждат чрез RSS емисии. Инструментите на NLWeb поглъщат тези структурирани данни, създават вграждания и ги съхраняват в локална или отдалечена векторна база данни.

  2. Запитване на естествен език (човек): Потребител посещава уебсайта и вместо да навигира през менюта, въвежда в чат интерфейс: "Намери ми семеен хотел в Хонолулу с басейн за следващата седмица".

  3. Обработка от NLWeb: Приложението NLWeb получава това запитване. То изпраща запитването към LLM за разбиране и едновременно търси в своята векторна база данни за релевантни хотелски списъци.

  4. Точни резултати: LLM помага за интерпретацията на резултатите от търсенето в базата данни, идентифицира най-добрите съвпадения въз основа на критериите "семеен", "басейн" и "Хонолулу" и след това форматира отговор на естествен език. Важно е, че отговорът се отнася до реални хотели от каталога на уебсайта, избягвайки измислена


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