Запись архива

Столкновение агентных SDK: MCP, OpenAI Agents SDK и LangGraph в 2025 году

Анализируем три главных подхода к разработке AI-агентов: открытый протокол MCP, минималистичный SDK от OpenAI и зрелый графовый фреймворк LangGraph. Какой стек выбрать для реальных задач, а какой пока оставить для экспериментов?

Сравнительная таблица MCP OpenAI Agents SDK LangGraph агентные протоколы и фреймворки 2025 года
Сравнительная таблица MCP OpenAI Agents SDK LangGraph агентные протоколы и фреймворки 2025 года
Journalists Protest against rising violence during march in Mexi | by Knight Foundation | openverse | by-sa

Главный сдвиг в прикладном AI за последний год — не выход новой модели, а переход от одиночных вызовов LLM к агентным циклам. Вместо того чтобы выверять промт до десятого знака, разработчики теперь проектируют системы, где модель сама решает, какой инструмент вызвать, как интерпретировать результат и когда передать управление другому агенту. Это меняет архитектуру приложений, требования к инфраструктуре и профиль рисков.

Экосистема быстро консолидировалась вокруг трёх подходов: открытого протокола MCP от Anthropic, лёгкого SDK от OpenAI и графового фреймворка LangGraph. Каждый из них решает свою часть задачи, и выбор между ними — не вопрос вкуса, а вопрос структуры вашего проекта. Разберёмся, что стоит за терминами и с чего начинать тестирование.

Почему это важно: от промпта к программе

Промт перестал быть границей приложения. Теперь это лишь один из компонентов в контуре, где модель читает, решает, действует и наблюдает. Как описала Lilian Weng в своём обзоре агентных систем, агент — это LLM в сочетании с памятью, планированием и инструментами. Без последних двух компонентов модель остаётся просто генератором текста.

Для разработчика это означает смену парадигмы: мы пишем не инструкцию для модели, а программу, в которой модель — один из исполняемых узлов. И здесь критически важно, как именно этот узел взаимодействует с внешним миром и другими узлами. Именно этот слой и закрывают агентные SDK и протоколы.

Что говорят источники: три подхода к одной задаче

MCP (Model Context Protocol) — это открытый протокол клиент-сервер, представленный Anthropic в ноябре 2024 года. Он стандартизует подключение инструментов и источников данных к LLM. MCP не привязан к Claude, хотя пока основная реализация — Claude Desktop. Как отмечает Simon Willison, главная идея MCP в том, чтобы «дать модели доступ к инструментам и данным через единый интерфейс, вместо того чтобы каждый раз писать интеграцию с нуля».

OpenAI Agents SDK — лёгкий Python-фреймворк, выпущенный в марте 2025 года. Он включает в себя агентный цикл, механизм handoff (передачи задачи другому агенту) и встроенные guardrails. В отличие от MCP, это не протокол, а конкретная реализация от OpenAI, завязанная на их модели. Код открыт, но архитектура полностью заточена под экосистему OpenAI.

LangGraph — зрелый фреймворк от LangChain для графовой оркестрации агентов. Он позволяет проектировать сложные маршруты с состояниями, циклами и параллельными ветками. В отличие от первых двух, LangGraph не навязывает ни модель, ни протокол — вы сами собираете граф из любых компонентов.

Сравнительная таблица

Критерий MCP (Model Context Protocol) OpenAI Agents SDK LangGraph
Суть Открытый протокол для интеграции инструментов и данных Лёгкий Python SDK для создания агентов Фреймворк для графовой оркестрации агентов
Основной источник Anthropic (открытый стандарт) OpenAI (проприетарный, код открыт) LangChain (открытый исходный код)
Привязка к модели Нет (любая LLM с tool calling) Да (OpenAI) Нет (любая LLM)
Сложность освоения Средняя (требуется понимание клиент-сервер) Низкая Высокая (графы, состояние, маршрутизация)
Когда использовать Единый интерфейс для инструментов и данных Быстрые прототипы на OpenAI Сложные, отказоустойчивые многолетние системы

Практический рабочий процесс: пример с логированием

Представьте задачу: агент читает лог ошибок приложения, находит дубликаты, группирует их и создаёт задачу в трекере. В OpenAI Agents SDK это делается за 10 минут: вы описываете инструмент для чтения лога и инструмент для создания задачи, задаёте промт с инструкцией — и цикл готов. В LangGraph потребуется спроектировать граф состояний: узел чтения, узел классификации, узел дедупликации, узел записи. Но такой граф будет надёжнее обрабатывать ошибки и частичные сбои.

MCP здесь выступает как прослойка: если у вас уже есть MCP-сервер для доступа к логам и трекеру, любой клиент — будь то Claude Desktop или кастомное приложение на OpenAI SDK — сможет с ними работать без дополнительной интеграции. Это снижает затраты на поддержку, но добавляет точку отказа в виде самого сервера.

Ограничения и контраргументы

Ни один из трёх подходов пока нельзя назвать production-ready без серьёзных оговорок.

MCP страдает от недоработанной модели безопасности. Simon Willison в своём анализе справедливо указывает: если MCP-сервер подключён к файловой системе, агент может быть скомпрометирован через prompt injection, и фильтры на стороне сервера пока слабые. Кроме того, протокол молодой, и стабильность спецификации ещё под вопросом.

OpenAI Agents SDK — это vendor lock-in в чистом виде. Как только вы строите логику на handoff и guardrails, миграция на другую модель потребует полной переработки агентного цикла. Кроме того, SDK новый, и сообщество вокруг него пока не сформировало достаточного количества проверенных паттернов.

LangGraph — мощный, но тяжёлый. Для простых задач он избыточен: вместо трёх строк кода вы пишете граф с узлами, рёбрами и условиями перехода. Когнитивная нагрузка высока, и ошибки в проектировании графа приводят к трудноотлаживаемым циклам.

Что протестировать в первую очередь

Вместо того чтобы выбирать один стек и углубляться в него, лучше провести серию коротких экспериментов:

  • [ ] Разверните MCP-сервер для локальной базы данных или файловой системы. Подключите к нему Claude Desktop и кастомный клиент. Оцените, насколько единый интерфейс упрощает доступ к данным.
  • [ ] Соберите простой агентный цикл на OpenAI Agents SDK: пусть агент ищет информацию в интернете, пишет краткое резюме и отправляет его в Telegram. Засеките время от начала до результата.
  • [ ] Реализуйте тот же сценарий на LangGraph. Сравните, сколько строк кода потребовалось и как система ведёт себя при сбоях (например, если поиск вернул ошибку).
  • [ ] Протестируйте границы безопасности: попробуйте заставить агента проигнорировать инструкцию или