Как создать протокол в стиле MCP без состояния, защищённый и асинхронный для масштабируемых рабочих процессов агентов

В этом руководстве мы создадим наглядную демонстрацию современного дизайна 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. Объявление проверенных моделей ввода и вывода для каждого инструмента, предоставляемого сервером.

Источник