(Нажмите на изображение выше, чтобы посмотреть видео этого урока)
По мере роста использования 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 работает по клиент-серверной архитектуре, а основные компоненты:
• Хосты — приложения с LLM (например, редактор кода VSCode), которые инициируют соединения с MCP-сервером.
• Клиенты — компоненты внутри хост-приложения, поддерживающие однонаправленные соединения с серверами.
• Серверы — легковесные программы, предоставляющие определённые функциональные возможности.
В протоколе есть три ключевых примитива — это возможности MCP-сервера:
• Инструменты: отдельные действия или функции, которые AI-агент может вызвать для выполнения операции. Например, сервис погоды может предоставить инструмент «получить погоду», или сервер электронной коммерции — «купить товар». MCP-серверы рекламируют название каждого инструмента, описание и схему входных/выходных данных в списке своих возможностей.
• Ресурсы: данные только для чтения или документы, которые MCP-сервер может предоставить, и клиенты могут запрашивать их по требованию. Примеры: содержимое файлов, записи базы данных или журналы. Ресурсы могут быть текстовыми (например, код или JSON) или бинарными (например, изображения или PDF).
• Подсказки: заранее определённые шаблоны, предлагающие рекомендации для более сложных рабочих процессов.
MCP предлагает значительные преимущества для AI-агентов:
• Динамическое обнаружение инструментов: агенты могут динамически получать список доступных инструментов от сервера с описаниями того, что они делают. Это контрастирует с традиционными API, которые часто требуют статического кодирования интеграций, и любые изменения API требуют обновлений кода. MCP предлагает подход «подключился один раз», что повышает адаптивность.
• Интероперабельность между LLM: MCP работает с разными LLM, обеспечивая гибкость для переключения основных моделей с целью повышения производительности.
• Стандартизированная безопасность: MCP включает стандартный метод аутентификации, улучшая масштабируемость при добавлении доступа к дополнительным MCP-серверам. Это проще, чем управление разными ключами и типами аутентификации для различных традиционных API.

Представьте, что пользователь хочет забронировать рейс с помощью AI-помощника на базе MCP.
Соединение: AI помощник (MCP-клиент) подключается к MCP-серверу, предоставленному авиакомпанией.
Обнаружение инструментов: Клиент спрашивает MCP-сервер авиакомпании: «Какие инструменты у вас есть?» Сервер возвращает инструменты, такие как «поиск рейсов» и «бронирование рейсов».
Вызов инструмента: Вы просите помощника: «Пожалуйста, найдите рейс из Портленда в Гонолулу». AI помощник, используя свой LLM, определяет, что нужно вызвать инструмент «поиск рейсов» и передает соответствующие параметры (откуда, куда) серверу MCP.
Выполнение и ответ: MCP-сервер, выступая в роли обёртки, выполняет фактический вызов внутреннего API бронирования авиакомпании. Затем он получает информацию о рейсе (например, JSON-данные) и отправляет её обратно AI помощнику.
Дальнейшее взаимодействие: AI помощник показывает варианты рейсов. После выбора рейса помощник может вызвать инструмент «бронировать рейс» на том же MCP-сервере, завершив бронирование.
В то время как MCP сосредоточен на подключении LLM к инструментам, протокол Agent-to-Agent (A2A) делает шаг дальше, обеспечивая коммуникацию и сотрудничество между разными AI-агентами. A2A связывает AI-агентов из разных организаций, сред и технологических стэков для выполнения общей задачи.
Рассмотрим компоненты и преимущества A2A, а также пример его применения в нашем туристическом приложении.
A2A сосредоточен на обеспечении общения между агентами и совместном выполнении подзадач пользователя. Каждый компонент протокола этому способствует:
Подобно тому, как MCP-сервер делится списком инструментов, Карточка агента содержит:
Исполнитель агента отвечает за передачу контекста пользовательского чата удалённому агенту, который нуждается в этом, чтобы понять задачу для выполнения. В A2A-сервере агент использует собственный Большой Языковой Модель (LLM) для обработки входящих запросов и выполнения задач с помощью своих внутренних инструментов.
После того как удалённый агент завершает запрошенную задачу, результат его работы создаётся в виде артефакта. Артефакт содержит результат работы агента, описание выполненного, и текстовый контекст, передаваемый через протокол. После отправки артефакта соединение с удалённым агентом закрывается до следующего запроса.
Этот компонент используется для обработки обновлений и передачи сообщений. Особенно важен в продуктивных агентных системах, чтобы соединение между агентами не прерывалось до завершения задачи, особенно когда выполнение занимает продолжительное время.
• Улучшенное сотрудничество: позволяет агентам разных поставщиков и платформ взаимодействовать, обмениваться контекстом и работать вместе, обеспечивая бесшовную автоматизацию между традиционно разъединёнными системами.
• Гибкость выбора моделей: каждый A2A агент может сам выбрать LLM для обслуживания своих запросов, что позволяет использовать оптимизированные или специально настроенные модели, в отличие от единого LLM в некоторых сценариях MCP.
• Встроенная аутентификация: аутентификация интегрирована прямо в протокол A2A, обеспечивая надёжную защиту взаимодействий агентов.

Рассмотрим наш сценарий бронирования путешествия, но теперь с использованием A2A.
Запрос пользователя к мультиагенту: пользователь взаимодействует с клиентом/агентом A2A «Туристический агент», например: «Пожалуйста, забронируй поездку в Гонолулу на следующую неделю, включая перелёты, отель и аренду автомобиля».
Оркестрация туристическим агентом: Туристический агент получает этот сложный запрос. Он использует свой LLM, чтобы понять задачу и определить, что нужно взаимодействовать с другими специализированными агентами.
Межагентная коммуникация: Туристический агент подключается по протоколу A2A к нижестоящим агентам, таким как «Агент авиакомпании», «Агент отеля» и «Агент проката автомобилей», созданным разными компаниями.
Делегирование задач: Туристический агент отправляет конкретные задания этим специализированным агентам (например, «найти рейсы в Гонолулу», «забронировать отель», «взять напрокат автомобиль»). Каждый из этих агентов запускает свои LLM и использует свои инструменты (которые сами могут быть MCP-серверами) для выполнения своей части бронирования.
Консолидированный ответ: После завершения всех задач нижестоящими агентами Туристический агент собирает результаты (детали рейса, подтверждение отеля, бронирование автомобиля) и отправляет пользователю полный ответ в формате чата.
Веб-сайты давно являются основным способом доступа пользователей к информации и данным в интернете.
Рассмотрим разные компоненты NLWeb, преимущества NLWeb и пример работы NLWeb на нашем туристическом приложении.
Приложение NLWeb (основной сервисный код): система, которая обрабатывает вопросы на естественном языке. Оно связывает части платформы для создания ответов. Можно считать его движком, приводящим в действие функции естественного языка на веб-сайте.
Протокол NLWeb: это базовый набор правил для взаимодействия на естественном языке с сайтом. Он отправляет ответы в формате JSON (часто используя Schema.org). Его цель — создать простую основу для «AI Web», подобно тому, как HTML позволяет делиться документами онлайн.
MCP сервер (конечная точка Model Context Protocol): каждая настройка NLWeb также работает как MCP-сервер. Это значит, что она может расшаривать инструменты (например, метод ask) и данные с другими AI-системами. На практике это делает контент и возможности сайта доступными для AI-агентов, позволяя сайту стать частью более широкой «экосистемы агентов».
Модели встраивания (Embedding Models): эти модели используются для преобразования контента сайта в числовые представления, называемые векторами (встраиваниями). Эти векторы обобщают смысл так, чтобы компьютер мог их сравнивать и искать. Они хранятся в специальной базе данных, и пользователь может выбрать, какую модель встраивания использовать.
Векторная база данных (механизм поиска): база данных хранит встраивания контента сайта. Когда поступает вопрос, NLWeb проверяет векторную базу для быстрого поиска наиболее релевантной информации. Она возвращает быстрый список возможных ответов, ранжированных по степени похожести. NLWeb совместим с разными системами векторного хранения, такими как Qdrant, Snowflake, Milvus, Azure AI Search и Elasticsearch.

Рассмотрим наш сайт бронирования путешествий, но теперь на базе NLWeb.
Загрузка данных: существующие каталоги продуктов сайта путешествий (например, списки рейсов, описания отелей, турпакеты) форматируются с использованием Schema.org или загружаются через RSS-ленты. Инструменты NLWeb поглощают эти структурированные данные, создают встраивания и сохраняют их в локальной или удалённой векторной базе данных.
Вопрос на естественном языке (человек): пользователь заходит на сайт и вместо навигации по меню вводит в чат: «Найдите для меня семейный отель в Гонолулу с бассейном на следующую неделю».
Обработка в NLWeb: приложение NLWeb получает запрос. Оно отправляет запрос в LLM для понимания и одновременно ищет в своей векторной базе релевантные отели.
Точные результаты: LLM помогает интерпретировать результаты поиска из базы данных, выявить лучшие совпадения по критериям «семейный», «бассейн», «Гонолулу» и формирует ответ на естественном языке. Важно, что ответ ссылается на реальные отели из каталога сайта, избегая выдуманных данных.
Взаимодействие AI-агента: благодаря тому, что NLWeb выступает MCP-сервером, внешний AI-туристический агент может подключаться к экземпляру NLWeb сайта. AI-агент может использовать метод MCP ask, чтобы прямо задать сайту вопрос: ask("Есть ли в районе Гонолулу веганские рестораны, рекомендованные отелем?"). Экземпляр NLWeb обработает это, используя свою базу данных ресторанов (если таковая загружена), и вернёт структурированный JSON-ответ.
Присоединяйтесь к Microsoft Foundry Discord, чтобы встретиться с другими учащимися, посетить офисные часы и получить ответы на ваши вопросы об AI-агентах.
Отказ от ответственности:
Этот документ был переведен с помощью службы автоматического перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для критически важной информации рекомендуется использовать профессиональный перевод, выполненный человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.