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-агентів.

Пояснити, як кожен протокол сприяє комунікації та взаємодії між LLM, інструментами та іншими агентами.

Розпізнати унікальні ролі кожного протоколу у створенні складних агентних систем.

Протокол контексту моделі (MCP)

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-сервері, завершуючи бронювання.

Протокол "Агент до агента" (A2A)

У той час як MCP зосереджується на підключенні LLM до інструментів, Agent-to-Agent (A2A) протокол йде далі, забезпечуючи комунікацію та співпрацю між різними AI-агентами. A2A з'єднує AI-агентів із різних організацій, середовищ та технологічних стеків для виконання спільного завдання.

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

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

A2A зосереджується на забезпеченні комунікації між агентами та їхній співпраці для виконання підзавдання користувача. Кожен компонент протоколу сприяє цьому:

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

Подібно до того, як MCP-сервер ділиться списком інструментів, картка агента містить:     ◦ Назву агента.
    ◦ Опис загальних завдань, які він виконує.
    ◦ Список конкретних навичок із описами, щоб інші агенти (або навіть користувачі) розуміли, коли і чому варто звертатися до цього агента.
    ◦ Поточну URL-адресу кінцевої точки агента.
    ◦ Версію та можливості агента, такі як потокові відповіді та push-сповіщення.

Виконавець агента

Виконавець агента відповідає за передачу контексту чату користувача віддаленому агенту, щоб той міг зрозуміти завдання, яке потрібно виконати. У сервері A2A агент використовує власну модель LLM для аналізу вхідних запитів і виконання завдань за допомогою власних внутрішніх інструментів.

Артефакт

Після завершення віддаленим агентом запитуваного завдання створюється артефакт. Артефакт містить результат роботи агента, опис виконаного завдання та текстовий контекст, який передається через протокол. Після відправки артефакту з'єднання з віддаленим агентом закривається до наступної потреби.

Черга подій

Цей компонент використовується для обробки оновлень і передачі повідомлень. Це особливо важливо у виробничих системах, щоб запобігти закриттю з'єднання між агентами до завершення завдання, особливо якщо виконання завдання займає тривалий час.

Переваги A2A

Покращена співпраця: A2A дозволяє агентам від різних постачальників і платформ взаємодіяти, ділитися контекстом і працювати разом, забезпечуючи безперервну автоматизацію між традиційно роз'єднаними системами.

Гнучкість у виборі моделей: Кожен агент A2A може самостійно вибирати, яку LLM використовувати для обслуговування своїх запитів, що дозволяє оптимізувати або налаштовувати моделі для кожного агента.

Вбудована автентифікація: Автентифікація інтегрована безпосередньо у протокол A2A, забезпечуючи надійну систему безпеки для взаємодії агентів.

Приклад A2A

Діаграма A2A

Розширимо наш сценарій бронювання подорожі, але цього разу використаємо A2A.

  1. Запит користувача до мультиагента: Користувач взаємодіє з "Туристичним агентом" (клієнтом/агентом A2A), наприклад, кажучи: "Будь ласка, забронюй повну подорож до Гонолулу на наступний тиждень, включаючи рейси, готель і оренду авто".

  2. Оркестрація туристичним агентом: Туристичний агент отримує цей складний запит. Він використовує свій LLM для аналізу завдання та визначення необхідності взаємодії з іншими спеціалізованими агентами.

  3. Міжагентна комунікація: Туристичний агент використовує протокол A2A для підключення до спеціалізованих агентів, таких як "Авіаційний агент", "Готельний агент" і "Агент з оренди авто", створених різними компаніями.

  4. Делегування виконання завдань: Туристичний агент надсилає конкретні завдання цим спеціалізованим агентам (наприклад, "Знайди рейси до Гонолулу", "Забронюй готель", "Орендуй авто"). Кожен із цих спеціалізованих агентів, використовуючи свої LLM і внутрішні інструменти (які можуть бути MCP-серверами), виконує свою частину бронювання.

  5. Консолідована відповідь: Після завершення завдань усіма агентами туристичний агент збирає результати (деталі рейсу, підтвердження готелю, бронювання авто) і надсилає користувачеві комплексну відповідь у стилі чату.

Природна мова для вебу (NLWeb)

Вебсайти давно є основним способом доступу користувачів до інформації та даних в інтернеті.

Розглянемо різні компоненти NLWeb, його переваги та приклад роботи NLWeb на основі нашого додатку для подорожей.

Компоненти NLWeb

  • NLWeb-додаток (основний сервісний код): Система, яка обробляє запитання природною мовою. Вона з'єднує різні частини платформи для створення відповідей. Її можна уявити як двигун, що забезпечує функції природної мови на вебсайті.

  • Протокол NLWeb: Це набір базових правил для взаємодії природною мовою із вебсайтом. Він повертає відповіді у форматі JSON (часто використовуючи Schema.org). Його мета — створити просту основу для "AI-вебу", подібно до того, як 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 допомагає інтерпретувати результати пошуку з бази даних, визначити найкращі відповідності за критеріями "сімейний", "басейн" і "Гонолулу", а потім форматує відповідь природною мовою. Важливо, що відповідь посилається на реальні готелі з каталогу вебсайту, уникаючи вигаданих даних.

  5. Взаємодія AI-агента: Оскільки NLWeb працює як MCP-сервер, зовнішній AI-агент для подорожей також може підключитися до цього вебсайту через NLWeb. AI-агент може використовувати метод ask MCP для прямого запиту до вебсайту: ask("Чи є веганські ресторани в районі Гонолулу, рекомендовані готелем?"). Інстанція NLWeb обробить це, використовуючи свою базу даних інформації про ресторани (якщо вона завантажена), і поверне структуровану відповідь у форматі JSON.

Є ще запитання про MCP/A2A/NLWeb


Відмова від відповідальності:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.