Skip to content

Latest commit

 

History

History
333 lines (248 loc) · 22 KB

File metadata and controls

333 lines (248 loc) · 22 KB

Вступ до Протоколу Контексту Моделі (MCP): Чому це важливо для масштабованих AI-додатків

Вступ до Протоколу Контексту Моделі

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

Генеративні AI-додатки є великим кроком вперед, оскільки вони часто дозволяють користувачам взаємодіяти з додатком за допомогою природних мовних запитів. Однак, коли більше часу та ресурсів вкладається в такі додатки, важливо забезпечити легку інтеграцію функціональностей і ресурсів таким чином, щоб додаток було легко розширювати, щоб він міг працювати з кількома моделями та враховувати різні особливості моделей. Іншими словами, створення генеративних AI-додатків легко почати, але з їх зростанням і ускладненням необхідно визначити архітектуру і, ймовірно, покладатися на стандарт, щоб забезпечити побудову додатків у послідовний спосіб. Тут на допомогу приходить MCP, щоб організувати процес і надати стандарт.


🔍 Що таке Протокол Контексту Моделі (MCP)?

Протокол Контексту Моделі (MCP) — це відкритий стандартизований інтерфейс, який дозволяє великим мовним моделям (LLM) безперешкодно взаємодіяти із зовнішніми інструментами, API та джерелами даних. Він забезпечує послідовну архітектуру для розширення функціональності AI-моделей за межі їх навчальних даних, створюючи розумніші, масштабованіші та більш чутливі AI-системи.


🎯 Чому стандартизація в AI має значення

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

  • Уніфікації інтеграції моделей з інструментами
  • Зменшенню кількості нестабільних, одноразових рішень
  • Можливості співіснування кількох моделей від різних постачальників в одній екосистемі

Примітка: Хоча MCP позиціонує себе як відкритий стандарт, наразі немає планів стандартизувати MCP через існуючі органи стандартизації, такі як IEEE, IETF, W3C, ISO чи будь-які інші.


📚 Навчальні цілі

До кінця цієї статті ви зможете:

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

💡 Чому Протокол Контексту Моделі (MCP) змінює правила гри

🔗 MCP вирішує проблему фрагментації у взаємодії AI

До MCP інтеграція моделей з інструментами вимагала:

  • Кастомного коду для кожної пари інструмент-модель
  • Нестандартизованих API для кожного постачальника
  • Частих збоїв через оновлення
  • Поганої масштабованості з додаванням нових інструментів

✅ Переваги стандартизації MCP

Перевага Опис
Інтероперабельність LLM безперешкодно працюють з інструментами різних постачальників
Послідовність Уніфікована поведінка на різних платформах та інструментах
Повторне використання Інструменти, створені один раз, можуть використовуватися в різних проектах
Прискорена розробка Зменшення часу розробки завдяки стандартизованим інтерфейсам "підключи і працюй"

🧱 Огляд архітектури MCP на високому рівні

MCP дотримується моделі клієнт-сервер, де:

  • Хости MCP запускають AI-моделі
  • Клієнти MCP ініціюють запити
  • Сервери MCP надають контекст, інструменти та можливості

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

  • Ресурси – Статичні або динамічні дані для моделей
  • Запити – Попередньо визначені робочі процеси для керованої генерації
  • Інструменти – Виконувані функції, такі як пошук, обчислення
  • Вибірка – Агентна поведінка через рекурсивні взаємодії

Як працюють сервери MCP

Сервери MCP працюють наступним чином:

  • Потік запиту:
    1. Запит ініціюється кінцевим користувачем або програмним забезпеченням, що діє від його імені.
    2. Клієнт MCP надсилає запит до Хоста MCP, який керує виконанням AI-моделі.
    3. AI-модель отримує запит користувача і може запросити доступ до зовнішніх інструментів або даних через один або кілька викликів інструментів.
    4. Хост MCP, а не сама модель, взаємодіє з відповідними Серверами MCP за допомогою стандартизованого протоколу.
  • Функціональність Хоста MCP:
    • Реєстр інструментів: Підтримує каталог доступних інструментів та їх можливостей.
    • Аутентифікація: Перевіряє дозволи на доступ до інструментів.
    • Обробник запитів: Обробляє вхідні запити інструментів від моделі.
    • Форматувальник відповідей: Структурує вихідні дані інструментів у формат, зрозумілий моделі.
  • Виконання Серверів MCP:
    • Хост MCP маршрутизує виклики інструментів до одного або кількох Серверів MCP, кожен з яких надає спеціалізовані функції (наприклад, пошук, обчислення, запити до баз даних).
    • Сервери MCP виконують свої відповідні операції та повертають результати до Хоста MCP у послідовному форматі.
    • Хост MCP форматує та передає ці результати до AI-моделі.
  • Завершення відповіді:
    • AI-модель включає вихідні дані інструментів у фінальну відповідь.
    • Хост MCP надсилає цю відповідь назад до Клієнта MCP, який доставляє її кінцевому користувачу або викликаючому програмному забезпеченню.
---
title: MCP Architecture and Component Interactions
description: A diagram showing the flows of the components in MCP.
---
graph TD
    Client[MCP Client/Application] -->|Sends Request| H[MCP Host]
    H -->|Invokes| A[AI Model]
    A -->|Tool Call Request| H
    H -->|MCP Protocol| T1[MCP Server Tool 01: Web Search]
    H -->|MCP Protocol| T2[MCP Server Tool 02: Calculator tool]
    H -->|MCP Protocol| T3[MCP Server Tool 03: Database Access tool]
    H -->|MCP Protocol| T4[MCP Server Tool 04: File System tool]
    H -->|Sends Response| Client

    subgraph "MCP Host Components"
        H
        G[Tool Registry]
        I[Authentication]
        J[Request Handler]
        K[Response Formatter]
    end

    H <--> G
    H <--> I
    H <--> J
    H <--> K

    style A fill:#f9d5e5,stroke:#333,stroke-width:2px
    style H fill:#eeeeee,stroke:#333,stroke-width:2px
    style Client fill:#d5e8f9,stroke:#333,stroke-width:2px
    style G fill:#fffbe6,stroke:#333,stroke-width:1px
    style I fill:#fffbe6,stroke:#333,stroke-width:1px
    style J fill:#fffbe6,stroke:#333,stroke-width:1px
    style K fill:#fffbe6,stroke:#333,stroke-width:1px
    style T1 fill:#c2f0c2,stroke:#333,stroke-width:1px
    style T2 fill:#c2f0c2,stroke:#333,stroke-width:1px
    style T3 fill:#c2f0c2,stroke:#333,stroke-width:1px
    style T4 fill:#c2f0c2,stroke:#333,stroke-width:1px
Loading

👨‍💻 Як створити сервер MCP (з прикладами)

Сервери MCP дозволяють розширювати можливості LLM, надаючи дані та функціональність.

Готові спробувати? Ось SDK для різних мов і/або стеків з прикладами створення простих серверів MCP:


🌍 Реальні випадки використання MCP

MCP відкриває широкий спектр застосувань, розширюючи можливості AI:

Застосування Опис
Інтеграція корпоративних даних Підключення LLM до баз даних, CRM або внутрішніх інструментів
Агентні AI-системи Дозволяє автономним агентам доступ до інструментів і робочих процесів прийняття рішень
Мультимодальні додатки Об'єднання текстових, графічних і аудіоінструментів в одному AI-додатку
Інтеграція даних у реальному часі Додавання актуальних даних до AI-взаємодій для більш точних і сучасних результатів

🧠 MCP = Універсальний стандарт для AI-взаємодій

Протокол Контексту Моделі (MCP) виступає універсальним стандартом для AI-взаємодій, подібно до того, як USB-C стандартизував фізичні з'єднання для пристроїв. У світі AI MCP забезпечує послідовний інтерфейс, дозволяючи моделям (клієнтам) безперешкодно інтегруватися із зовнішніми інструментами та постачальниками даних (серверами). Це усуває необхідність у різноманітних кастомних протоколах для кожного API або джерела даних.


💡 Сприяє доступу до знань

Окрім надання інструментів, MCP також сприяє доступу до знань. Він дозволяє додаткам надавати контекст великим мовним моделям (LLM), підключаючи їх до різних джерел даних. Наприклад, сервер MCP може представляти репозиторій документів компанії, дозволяючи агентам отримувати відповідну інформацію за запитом. Інший сервер може виконувати конкретні дії, такі як надсилання електронних листів або оновлення записів. З точки зору агента, це просто інструменти, які він може використовувати — деякі інструменти повертають дані (контекст знань), а інші виконують дії. MCP ефективно керує обома.


👉 Приклад: Масштабоване рішення для агентів

---
title: Scalable Agent Solution with MCP
description: A diagram illustrating how a user interacts with an LLM that connects to multiple MCP servers, with each server providing both knowledge and tools, creating a scalable AI system architecture
---
graph TD
    User -->|Prompt| LLM
    LLM -->|Response| User
    LLM -->|MCP| ServerA
    LLM -->|MCP| ServerB
    ServerA -->|Universal connector| ServerB
    ServerA --> KnowledgeA
    ServerA --> ToolsA
    ServerB --> KnowledgeB
    ServerB --> ToolsB

    subgraph Server A
        KnowledgeA[Knowledge]
        ToolsA[Tools]
    end

    subgraph Server B
        KnowledgeB[Knowledge]
        ToolsB[Tools]
    end
Loading

🔄 Розширені сценарії MCP з інтеграцією LLM на стороні клієнта

Окрім базової архітектури MCP, існують розширені сценарії, де як клієнт, так і сервер містять LLM, що дозволяє більш складні взаємодії. На наступній схемі Клієнтський додаток може бути IDE з набором MCP-інструментів, доступних для використання LLM:

---
title: Advanced MCP Scenarios with Client-Server LLM Integration
description: A sequence diagram showing the detailed interaction flow between user, client application, client LLM, multiple MCP servers, and server LLM, illustrating tool discovery, user interaction, direct tool calling, and feature negotiation phases
---
sequenceDiagram
    autonumber
    actor User as 👤 User
    participant ClientApp as 🖥️ Client App
    participant ClientLLM as 🧠 Client LLM
    participant Server1 as 🔧 MCP Server 1
    participant Server2 as 📚 MCP Server 2
    participant ServerLLM as 🤖 Server LLM
    
    %% Discovery Phase
    rect rgb(220, 240, 255)
        Note over ClientApp, Server2: TOOL DISCOVERY PHASE
        ClientApp->>+Server1: Request available tools/resources
        Server1-->>-ClientApp: Return tool list (JSON)
        ClientApp->>+Server2: Request available tools/resources
        Server2-->>-ClientApp: Return tool list (JSON)
        Note right of ClientApp: Store combined tool<br/>catalog locally
    end
    
    %% User Interaction
    rect rgb(255, 240, 220)
        Note over User, ClientLLM: USER INTERACTION PHASE
        User->>+ClientApp: Enter natural language prompt
        ClientApp->>+ClientLLM: Forward prompt + tool catalog
        ClientLLM->>-ClientLLM: Analyze prompt & select tools
    end
    
    %% Scenario A: Direct Tool Calling
    alt Direct Tool Calling
        rect rgb(220, 255, 220)
            Note over ClientApp, Server1: SCENARIO A: DIRECT TOOL CALLING
            ClientLLM->>+ClientApp: Request tool execution
            ClientApp->>+Server1: Execute specific tool
            Server1-->>-ClientApp: Return results
            ClientApp->>+ClientLLM: Process results
            ClientLLM-->>-ClientApp: Generate response
            ClientApp-->>-User: Display final answer
        end
    
    %% Scenario B: Feature Negotiation (VS Code style)
    else Feature Negotiation (VS Code style)
        rect rgb(255, 220, 220)
            Note over ClientApp, ServerLLM: SCENARIO B: FEATURE NEGOTIATION
            ClientLLM->>+ClientApp: Identify needed capabilities
            ClientApp->>+Server2: Negotiate features/capabilities
            Server2->>+ServerLLM: Request additional context
            ServerLLM-->>-Server2: Provide context
            Server2-->>-ClientApp: Return available features
            ClientApp->>+Server2: Call negotiated tools
            Server2-->>-ClientApp: Return results
            ClientApp->>+ClientLLM: Process results
            ClientLLM-->>-ClientApp: Generate response
            ClientApp-->>-User: Display final answer
        end
    end
Loading

🔐 Практичні переваги MCP

Ось практичні переваги використання MCP:

  • Актуальність: Моделі можуть отримувати актуальну інформацію за межами їх навчальних даних
  • Розширення можливостей: Моделі можуть використовувати спеціалізовані інструменти для завдань, для яких вони не були навчені
  • Зменшення галюцинацій: Зовнішні джерела даних забезпечують фактичну основу
  • Конфіденційність: Чутливі дані можуть залишатися в безпечному середовищі, а не бути вбудованими в запити

📌 Основні висновки

Ось основні висновки щодо використання MCP:

  • MCP стандартизує взаємодію AI-моделей з інструментами та даними
  • Сприяє розширюваності, послідовності та інтероперабельності
  • MCP допомагає зменшити час розробки, покращити надійність і розширити можливості моделей
  • Архітектура клієнт-сервер дозволяє створювати гнучкі, розширювані AI-додатки

🧠 Вправа

Подумайте про AI-додаток, який вас цікавить.

  • Які зовнішні інструменти або дані могли б покращити його можливості?
  • Як MCP може зробити інтеграцію простішою та надійнішою?

Додаткові ресурси


Що далі

Далі: Глава 1: Основні концепції

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