ai-agents-for-beginners

Використання агентних протоколів (MCP, A2A і NLWeb)

Agentic Protocols

(Натисніть на зображення вище, щоб переглянути відеоурок)

Зі зростанням використання 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-агент може викликати для виконання операції. Наприклад, сервіс погоди може надати інструмент «отримати погоду», або сервер електронної комерції — інструмент «купити товар». MCP-сервери публікують назву інструменту, його опис та схему введення/виведення у списку своїх можливостей.

• Ресурси: це дані або документи тільки для читання, які MCP-сервер може надати, а клієнти можуть отримати за запитом. Прикладами є вміст файлів, записи баз даних або лог-файли. Ресурси можуть бути текстовими (наприклад, код або JSON) або бінарними (зображення, PDF).

• Підказки: це заздалегідь визначені шаблони, які пропонують готові підказки для організації складніших робочих процесів.

Переваги MCP

MCP дає значні переваги для AI-агентів:

• Динамічний пошук інструментів: Агенти можуть динамічно отримувати список доступних інструментів від сервера разом із їх описами. Це на відміну від традиційних API, які часто потребують статичного кодування інтеграцій, і будь-яка зміна API вимагає оновлення коду. MCP пропонує підхід «інтегруй один раз», що забезпечує більшу адаптивність.

• Інтероперабельність між LLM: MCP працює з різними LLM, забезпечуючи гнучкість у зміні основних моделей для оцінки кращої продуктивності.

• Стандартизована безпека: MCP включає стандартний метод автентифікації, що спрощує масштабування при додаванні доступу до кількох MCP-серверів. Це простіше, ніж керувати різними ключами та типами автентифікації для різних традиційних API.

Приклад MCP

MCP Diagram

Уявімо, що користувач хоче забронювати рейс за допомогою 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-сервер ділиться списком інструментів, Карта агента містить:

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

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

Артефакт

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

Черга подій

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

Переваги A2A

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

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

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

Приклад A2A

A2A Diagram

Розглянемо наш сценарій бронювання подорожі, але цього разу з використанням 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 обробляють ці структуровані дані, створюють embedding і зберігають їх у локальній або віддаленій векторній базі.

  2. Природномовний запит (людина): Користувач заходить на сайт і замість навігації меню вводить у чаті: «Знайди сімейний готель у Гонолулу з басейном на наступний тиждень».

  3. Обробка NLWeb: Додаток NLWeb отримує цей запит, передає його LLM для розуміння і одночасно шукає у векторній базі відповідні готелі.

  4. Точні результати: LLM допомагає інтерпретувати результати пошуку у базі, виділяє кращі варіанти за критеріями «для сімей», «басейн» і «Гонолулу», а потім формує відповідь природною мовою. Важливо, що відповідь базується на реальних готелях з каталогу сайту, уникаючи вигаданих даних.

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

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

Приєднуйтесь до Microsoft Foundry Discord, щоб познайомитися з іншими учнями, відвідати консультації й отримати відповіді на питання щодо AI-агентів.

Ресурси

Попередній урок

AI агенти в продакшні

Наступний урок

Інженерія контексту для AI агентів


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