Habr AI→ оригинал

Raft разобрала, где MCP и Thin MCP добавляют лишнюю задержку AI-агентам

Команда Raft разобрала, где именно AI-агенты теряют скорость при работе через MCP. Тесты показали: сам MCP внутри процесса добавляет около 10 мс, а основная про

Raft разобрала, где MCP и Thin MCP добавляют лишнюю задержку AI-агентам
Источник: Habr AI. Коллаж: Hamidun News.

MCP часто подают как универсальный способ аккуратно подключить инструменты к LLM-приложению, но на практике за такую модульность приходится платить задержкой. В новом разборе Raft сравнила несколько архитектур и показала, что проблема обычно не в одном конкретном компоненте, а в том, как вообще устроен путь запроса от агента до инструмента и обратно.

Где рождается latency

Автор начал с базового вопроса: сколько задержки добавляет сам MCP, если убрать сеть и оставить всё в одном процессе. Для этого сравнили монолит без MCP и монолит с MCP in-process. Выяснилось, что сам паттерн даёт сравнительно небольшой overhead — в среднем около 10–11 мс, иногда до 35 мс.

Это важная отправная точка: если агент тормозит на сотни миллисекунд, виноват обычно не сам факт использования MCP, а внешний слой вокруг него. Дальше сравнение перенесли в более реалистичную архитектуру, где MCP-серверы вынесены в отдельные Docker-контейнеры. Здесь картина уже меняется заметно: средняя дополнительная задержка для основных инструментов выросла примерно до 169 мс на вызов.

При этом трейсы показали, что даже это не главный потребитель времени. Самые тяжёлые участки — получение эмбеддингов и работа reranker'a, а поиск по векторной базе занимает сравнительно немного. Иначе говоря, MCP добавляет цену, но не всегда он становится главным тормозом всей цепочки.

Что показали тесты В статье разобрали несколько сценариев, чтобы

отделить влияние транспорта, сериализации и самого runtime друг от друга. S1, MCP in-process: около 10–11 мс дополнительной задержки, то есть сам runtime относительно лёгкий. S2, раздельные MCP через Docker-сеть: в среднем около 169 мс overhead на вызов из-за сети, сериализации и межпроцессного взаимодействия.

S3a, Thin MCP через HTTP + JSON: в одной серии замеров overhead снизился примерно до 128 мс, но результат оказался нестабильным и в повторных прогонах мог быть заметно хуже. S3b, Thin MCP через HTTP + YAML: задержка выросла примерно до 274 мс, что указывает на дополнительную цену сериализации и десериализации. * S4 и S5: ZeroMQ дал около 200 мс, но с более предсказуемым поведением, а C++ runtime снизил overhead до примерно 130–145 мс без радикального перелома по порядку величин.

Главный вывод из этих цифр — интуитивные оптимизации не всегда работают так, как ожидаешь. Замена JSON на YAML не ускорила систему, а наоборот ухудшила её. Переход от HTTP к IPC тоже не дал автоматической победы: реализация на iceoryx2 не показала ожидаемого выигрыша, и только вариант с ZeroMQ оказался практически полезнее за счёт асинхронной модели.

Даже C++ помог умеренно, а не драматически.

Почему thin не спасает

Thin MCP в статье выглядит не как волшебная кнопка ускорения, а как способ упростить архитектуру. В этой схеме proxy-слой остаётся минимальным и только транслирует вызовы, а бизнес-логика уезжает в отдельные HTTP-сервисы. Такой подход даёт языковую независимость, упрощает масштабирование и позволяет писать исполнители хоть на Go, хоть на Rust или C++, даже если полноценного MCP SDK для них ещё нет.

Thin MCP — это скорее архитектурный инструмент, чем способ оптимизации latency.

Практический нюанс в том, что thin-подход может выглядеть быстрее в одном прогоне, но не воспроизводиться стабильно в другом. Для продовой системы это критично: иногда важнее не минимальный разовый p95, а предсказуемое поведение под повторной нагрузкой. Поэтому Raft делает довольно жёсткий, но полезный вывод: если хочется действительно ускорить AI-агента, надо не просто менять язык или протокол, а пересобирать саму схему взаимодействия между proxy, backend-компонентами и тяжёлыми вычислительными шагами.

Что это значит

Для команд, которые строят AI-агентов, это хороший антидот против поверхностной оптимизации. Если система медленная, сначала нужно смотреть на число переходов между компонентами, блокирующие операции, модель конкурентного исполнения и тяжёлые стадии вроде эмбеддингов и reranking. Thin MCP может сделать систему чище и гибче, а C++ или IPC могут дать дополнительный выигрыш, но решающий эффект появляется только тогда, когда сама архитектура перестаёт гонять запрос через лишние слои.

ЖХ
Hamidun News
AI‑новости без шума. Ежедневный редакторский отбор из 400+ источников. Продукт Жемала Хамидуна, Head of AI в Alpina Digital.
Загружаем комментарии…