В этом руководстве мы создадим наглядную демонстрацию современного дизайна MCP, сосредоточив внимание на трёх основных идеях: коммуникации без состояния, строгой проверке на уровне SDK и асинхронных длительных операциях.
Мы реализуем минимальный протокол, подобный MCP, используя структурированные конверты, подписанные запросы и инструменты проверки Pydantic, чтобы показать, как агенты и службы могут безопасно взаимодействовать без использования постоянных сеансов.
Основные этапы
1. Настройка основных утилит, необходимых во всей системе, включая вспомогательные средства для работы со временем, генерацию UUID, каноническую сериализацию JSON и криптографическое подписание.
2. Определение структурированных форматов конвертов MCP и ответов, которым следует каждое взаимодействие. Мы применяем строгие схемы с помощью Pydantic, чтобы гарантировать отклонение некорректных или неожиданных полей на раннем этапе.
3. Объявление проверенных моделей ввода и вывода для каждого инструмента, предоставляемого сервером. Мы используем ограничения Pydantic, чтобы чётко указать, что каждый инструмент принимает и возвращает.
Используемые инструменты
- `asyncio` для асинхронного программирования.
- `time` для работы со временем.
- `json` для работы с JSON.
- `uuid` для генерации UUID.
- `hmac` и `hashlib` для криптографического подписания.
- `dataclasses` для создания классов данных.
- `pydantic` для проверки моделей.
Пример кода
«`python
import asyncio, time, json, uuid, hmac, hashlib
from dataclasses import dataclass
from typing import Any, Dict, Optional, Literal, List
from pydantic import BaseModel, Field, ValidationError, ConfigDict
«`
Заключение
Мы показали, как MCP развивается из простого интерфейса вызова инструментов в надёжный протокол, подходящий для реальных систем. Мы начали задачи асинхронно и опрашивали результаты, не блокируя выполнение, обеспечили чёткие контракты с помощью проверки схем и полагались на сообщения без сохранения состояния и подписанные сообщения для обеспечения безопасности и гибкости. Вместе эти шаблоны демонстрируют, как современные системы в стиле MCP поддерживают надёжные рабочие процессы агентов, готовые к использованию на предприятиях, оставаясь при этом простыми, прозрачными и лёгкими в расширении.
Проверьте полный код здесь. Подписывайтесь на нас в Twitter и присоединяйтесь к нашему сообществу в ML SubReddit с более чем 100 000 участников и подписывайтесь на нашу рассылку. А если вы в Telegram, присоединяйтесь к нам и там!
1. Какие основные идеи лежат в основе создания протокола в стиле MCP без состояния, защищённого и асинхронного для масштабируемых рабочих процессов агентов?
Ответ:
В основе создания протокола в стиле MCP без состояния, защищённого и асинхронного для масштабируемых рабочих процессов агентов лежат три основные идеи:
* коммуникация без состояния;
* строгая проверка на уровне SDK;
* асинхронные длительные операции.
2. Какие инструменты используются для реализации минимального протокола, подобного MCP?
Ответ:
Для реализации минимального протокола, подобного MCP, используются следующие инструменты:
* `asyncio` для асинхронного программирования;
* `time` для работы со временем;
* `json` для работы с JSON;
* `uuid` для генерации UUID;
* `hmac` и `hashlib` для криптографического подписания;
* `dataclasses` для создания классов данных;
* `pydantic` для проверки моделей.
3. Какие этапы включает в себя процесс создания протокола в стиле MCP?
Ответ:
Процесс создания протокола в стиле MCP включает в себя следующие этапы:
1. Настройка основных утилит, необходимых во всей системе, включая вспомогательные средства для работы со временем, генерацию UUID, каноническую сериализацию JSON и криптографическое подписание.
2. Определение структурированных форматов конвертов MCP и ответов, которым следует каждое взаимодействие.
3. Объявление проверенных моделей ввода и вывода для каждого инструмента, предоставляемого сервером.