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 (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 помощник, используя свой 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. Консолидированный ответ: После завершения всех задач нижестоящими агентами Туристический агент собирает результаты (детали рейса, подтверждение отеля, бронирование автомобиля) и отправляет пользователю полный ответ в формате чата.

Естественный Языковой Веб (NLWeb)

Веб-сайты давно являются основным способом доступа пользователей к информации и данным в интернете.

Рассмотрим разные компоненты NLWeb, преимущества NLWeb и пример работы NLWeb на нашем туристическом приложении.

Компоненты NLWeb

Пример NLWeb

NLWeb

Рассмотрим наш сайт бронирования путешествий, но теперь на базе NLWeb.

  1. Загрузка данных: существующие каталоги продуктов сайта путешествий (например, списки рейсов, описания отелей, турпакеты) форматируются с использованием Schema.org или загружаются через RSS-ленты. Инструменты NLWeb поглощают эти структурированные данные, создают встраивания и сохраняют их в локальной или удалённой векторной базе данных.

  2. Вопрос на естественном языке (человек): пользователь заходит на сайт и вместо навигации по меню вводит в чат: «Найдите для меня семейный отель в Гонолулу с бассейном на следующую неделю».

  3. Обработка в NLWeb: приложение NLWeb получает запрос. Оно отправляет запрос в LLM для понимания и одновременно ищет в своей векторной базе релевантные отели.

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

  5. Взаимодействие AI-агента: благодаря тому, что NLWeb выступает MCP-сервером, внешний AI-туристический агент может подключаться к экземпляру NLWeb сайта. AI-агент может использовать метод MCP ask, чтобы прямо задать сайту вопрос: ask("Есть ли в районе Гонолулу веганские рестораны, рекомендованные отелем?"). Экземпляр NLWeb обработает это, используя свою базу данных ресторанов (если таковая загружена), и вернёт структурированный JSON-ответ.

Есть ещё вопросы по MCP/A2A/NLWeb?

Присоединяйтесь к Microsoft Foundry Discord, чтобы встретиться с другими учащимися, посетить офисные часы и получить ответы на ваши вопросы об AI-агентах.

Ресурсы


Отказ от ответственности:
Этот документ был переведен с помощью службы автоматического перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для критически важной информации рекомендуется использовать профессиональный перевод, выполненный человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.