Коли використовувати MCP, а коли A2A — і чому зазвичай потрібні обидва

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

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

Що насправді робить наш AI-додаток?

Почнемо з нашого AI-додатку. Якщо йдеться про генеративний AI, тоді наш додаток взаємодіє з мовною моделлю.
Це може бути як велика мовна модель (LLM), так і менша. Такі моделі були попередньо навчені на величезних масивах даних і, використовуючи розподіли ймовірностей, генерують один токен за іншим, створюючи відповіді.

  • Наш додаток надсилає їй промпт (запит), а модель повертає відповідь.

Але треба пам’ятати:

  • Ці мовні моделі навчені на кінцевому масиві знань.
  • У них є часова межа, тобто вони знають лише дані до певної дати.
  • Вони генерують відповіді виключно на основі своїх навчальних даних і того, що ви вкладете у промпт.

Як розширити знання моделі за допомогою RAG

Щоб наш додаток був справді корисним, часто потрібно надати LLM додаткові знання — інформацію, якої вона не може знати зі свого навчання.

Для цього використовують retrieval-augmented generation (RAG), що може включати спеціалізовані методи на кшталт graph RAG, які зосереджені на зв’язках між даними.

  • Ми можемо мати векторну базу даних, яка допомагає знаходити релевантну інформацію за змістом запиту.
  • Ця база стає корпусом знань, до якого можна звертатися, щоб доповнити промпт для LLM.

Наприклад:

«Створи короткий виклад цього наукового дослідження.»

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

Додавання інструментів у роботу

Окрім додаткових даних, ми можемо захотіти надати LLM доступ до інструментів.

  • Для цього ми описуємо інструмент у промпті:

«Цей інструмент може виконувати XYZ; ти можеш попросити мене запустити його, а я надішлю результат.»

Але тут виникають проблеми:

  1. Кожен інструмент і джерело знань має свій власний спосіб комунікації.
    Наш додаток має знати, як з ними спілкуватися, які протоколи використовувати, як інтерпретувати результати та навіть як описати їх для LLM.
  2. Інакше постачальникам довелося б писати спеціальний код для кожної платформи чи додатку, що дорого й неефективно.

MCP: Model Context Protocol

І тут на допомогу приходить Model Context Protocol (MCP).

Що таке MCP?

  • Це стандартизований спосіб, за допомогою якого AI-додаток взаємодіє з різними джерелами знань та інструментами.
  • Він навіть може надавати інформацію про рекомендовані структури промптів, щоб працювати з ним ефективніше.

Як працює MCP?

Він використовує архітектуру клієнт-сервер:

  • Ваш додаток має MCP-клієнт.
  • Для кожного конкретного інструменту чи джерела знань є MCP-сервер.
  • Клієнт спілкується із сервером через MCP-протокол, а сервер знає, як працювати зі своєю системою (наприклад, базою даних чи API інструменту).

Це означає:

  • Ваш додаток повинен знати лише MCP.
  • Вам не потрібно розбиратися у протоколах кожного окремого інструменту — все це абстраговано.

Для постачальників:

  • Достатньо написати один MCP-сервер для свого ресурсу замість десятків плагінів під кожну платформу.

Локальні vs віддалені MCP-сервери та безпека

  • MCP-сервери можуть працювати локально (наприклад, у контейнері) або віддалено (через TLS та server-sent events).
  • Спочатку у специфікації MCP не було автентифікації, але тепер це виправлено:
    • MCP-сервери працюють як OAuth resource servers, тож можна використовувати стандартні провайдери, такі як Entra ID, Okta або будь-який OAuth-сумісний IDP для безпечної токен-автентифікації.

Reflection: як дізнатися, що доступно

Сильна сторона MCP — це reflection:

  • Ваш додаток може запитати у MCP-клієнта:

«Що ти вмієш робити?»

  • MCP-сервер відповість:
    • Які ресурси (структуровані дані, документи для RAG) він надає.
    • Які інструменти пропонує.
    • Які шаблони промптів готовий надати.

Отже:

  • Ви можете додати це у system prompt для LLM і повідомити її:

«Ось інструменти та знання, що доступні.»

І тоді модель зрозуміє:

«Виклич цей інструмент із такими параметрами.»

Підсумок: навіщо потрібен MCP?

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

Практично будь-який серйозний AI-додаток сьогодні буде працювати з зовнішніми даними чи інструментами, тому майже всі використовуватимуть MCP.

А як щодо агентів? A2A (Agent to Agent)

А тепер уявімо, що ваш AI-додаток — це не просто додаток, а агент.

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

Але якщо агент виконує конкретне завдання, він часто має співпрацювати з іншими агентами, щоб завершити роботу.

Роль A2A

Уявімо таке:

  • Агент A має підсумувати документ, а потім запланувати зустріч.
  • Він може викликати Агента B для підсумку документа, а потім Агента C, щоб запланувати зустріч з ключовими пунктами.

Тут виникають два питання:

  1. Як Агент A дізнається, що вміють Агенти B та C?
  2. Як вони можуть безпечно та ефективно спілкуватися?

І ось тут допомагає A2A.

  • A2A — це JSON-протокол (зазвичай JSON-RPC 2.0 через HTTPS) для взаємодії агентів.
  • Він стандартизує:
    • Як агенти дізнаються про можливості один одного.
    • Як вони автентифікуються та спілкуються.

Agent Cards: цифрові візитівки

Коли два агенти підключаються, вони обмінюються agent cards:

  • Там міститься:
    • Ім’я агента та його версія.
    • Його навички та можливості (чи підтримує стрімінг, push-нотифікації тощо).
    • Механізми автентифікації.

Agent card зазвичай розміщена на well-known URL, що робить onboarding простим.

Взаємодія на основі завдань

  • Агенти спілкуються навколо завдань, обмінюючись повідомленнями, які можуть містити:
    • Текст, зображення, аудіо, відео, структуровані дані (JSON).
  • Вони можуть ділитися контекстом, співпрацювати у кілька ходів і виконувати довгі асинхронні завдання.

Після завершення вони обмінюються artifacts — фінальними результатами.

Отже, коли використовувати MCP, а коли A2A?

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

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

На практиці ви майже завжди використовуватимете обидва:

  • MCP — для підключення до інструментів і джерел даних.
  • A2A — для координації з іншими агентами.

Завершальні думки

Не сприймайте це як вибір між MCP чи A2A. Вони виконують різні завдання:

  • MCP: інтегрує ваш додаток або агента з інструментами та знаннями.
  • A2A: дозволяє агентам знаходити, розуміти та працювати один з одним.

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

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

2023 без 5хв сінгулярність, нам всім п*зда
2025 без 3хв сінгулярність, нам тільки потрібно 100500 протоколів для сінгулярності, 100500 мцп-серверів, 100500тисяч токенів у вікні, 100500 мегават, вайбкодерам п*зда

Підписатись на коментарі