ai-agents-for-beginners

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

Agentic Protocols

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

У міру поширення використання агентів ШІ зростає потреба у протоколах, які забезпечують стандартизацію, безпеку та підтримують відкриті інновації. У цьому уроці ми розглянемо 3 протоколи, які прагнуть задовольнити цю потребу — Model Context Protocol (MCP), Agent to Agent (A2A) та Natural Language Web (NLWeb).

Вступ

У цьому уроці ми розглянемо:

• Як MCP дозволяє агентам ШІ отримувати доступ до зовнішніх інструментів і даних для виконання завдань користувача.

• Як A2A забезпечує комунікацію та співпрацю між різними агентами ШІ.

• Як NLWeb надає інтерфейси природної мови для будь-якого вебсайту, дозволяючи агентам ШІ знаходити та взаємодіяти з контентом.

Цілі навчання

Визначити основну мету та переваги MCP, A2A та NLWeb у контексті агентів ШІ.

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

Визнати різні ролі, які кожен протокол відіграє у побудові складних агентних систем.

Model Context Protocol

Model Context Protocol (MCP) — це відкритий стандарт, що забезпечує стандартизований спосіб для додатків надавати контекст та інструменти для LLM. Це дає змогу мати «універсальний адаптер» до різних джерел даних і інструментів, з якими агенти ШІ можуть підключатися послідовним способом.

Розглянемо компоненти MCP, переваги у порівнянні з прямим використанням API та приклад того, як агенти ШІ можуть використовувати сервер MCP.

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

MCP працює на основі клієнт-серверної архітектури, а основні компоненти такі:

Хости — це LLM-додатки (наприклад, редактор коду VSCode), які ініціюють підключення до сервера MCP.

Клієнти — це компоненти всередині хост-додатка, які підтримують однозначні підключення з серверами.

Сервери — це легкі програми, які відкривають конкретні функції.

У протоколі вбудовані три основні примітиви, які є можливостями MCP-сервера:

Інструменти: це окремі дії або функції, які агент ШІ може викликати для виконання дії. Наприклад, сервіс погоди може відкривати інструмент “отримати погоду”, або сервер електронної комерції може пропонувати інструмент “купити товар”. Сервери MCP рекламують ім’я інструменту, опис та схему вводу/виводу у списку можливостей.

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

Запити (Prompts): це заздалегідь визначені шаблони, які надають рекомендовані запити, дозволяючи складніші робочі процеси.

Переваги MCP

MCP пропонує значні переваги для агентів ШІ:

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

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

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

Приклад MCP

MCP Diagram

Уявімо, що користувач хоче забронювати рейс за допомогою помічника ШІ, який працює на базі MCP.

  1. Підключення: Помічник ШІ (клієнт MCP) підключається до сервера MCP, який надається авіакомпанією.

  2. Виявлення інструментів: Клієнт запитує у сервера MCP авіакомпанії: «Які у вас є інструменти?» Сервер відповідає інструментами, як-от “пошук рейсів” та “бронирование рейсів”.

  3. Виклик інструменту: Користувач просить помічника ШІ: «Будь ласка, знайди рейс з Портленда до Гонолулу». Помічник ШІ, використовуючи свій LLM, визначає, що потрібно викликати інструмент “пошук рейсів” і передає відповідні параметри (відправлення, призначення) серверу MCP.

  4. Виконання та відповідь: Сервер MCP, виконуючи роль обгортки, робить фактичний виклик до внутрішнього API бронювання авіакомпанії. Потім він отримує інформацію про рейс (наприклад, дані у форматі JSON) і відсилає її назад помічнику ШІ.

  5. Подальша взаємодія: Помічник ШІ показує варіанти рейсів. Після вибору рейсу асистент може викликати інструмент “бронирование рейсу” на тому самому сервері MCP, завершуючи бронювання.

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

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

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

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

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

Agent Card

Подібно до того, як сервер MCP ділиться списком інструментів, Agent Card має:

Agent Executor

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

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

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

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

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

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

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

Ресурси

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

Агенти ШІ у виробництві

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

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


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