Первое решение в любом агентном проекте — одновременно и самое дорогое, если ошибиться.
Выбираете фреймворк, три месяца строите на нём, а потом выясняется, что он не может выразить ваш state machine, — и вы уже не меняете библиотеку, а переписываете агента. Поэтому споры о выборе агентных фреймворков в интернете не умирают никогда — и поэтому существует этот гайд: сравнение четырёх значимых фреймворков 2026 года на одной задаче с одним набором инструментов, плюс честный ответ на вопрос, которого нет ни в одной документации, — когда от фреймворков стоит отказаться полностью.
Мы будем держать одну вещь неизменной во всех разделах: фреймворк — это слой оркестрации, а не слой моделей. Все четыре принимают любой OpenAI-совместимый endpoint, а значит, выбор модели и выбор фреймворка — независимые решения. Именно это разделение — опора всего сравнения.
До выбора: выбор, конструирование или протокол
Ключевой вывод: выбор фреймворка — одно из трёх разных решений, и большинство обзорных гайдов смешивают их.
- Конструирование (Construction) — о том, как агенты работают внутри: циклы вызова инструментов, память, паттерны оркестрации. Для этого слоя у нас есть полное руководство по архитектуре, и в нём утверждается — как нам кажется, справедливо, — что цикл нужно понять до того, как принимать фреймворк.
- Протокол (Protocol) — как агенты и инструменты общаются: function calling, MCP, A2A. Это совершенно отдельное решение, разобранное в нашем сравнении протоколов.
- Выбор (Selection) — предмет этой статьи: какой фреймворк, если вообще какой-то, оборачивает ваш слой конструирования.
Ещё один фильтр, прежде чем читать разделы с вариантами: когда фреймворк вам не нужен. Один цикл вызова инструментов, одна модель, без персистентности — это примерно 50 строк Python напрямую через SDK, и наш quickstart показывает базовый запрос. Каждый фреймворк ниже — это решение проблем, которые появляются после того, как прототип на 60 строк перестаёт быть достаточным.
Вариант 1: LangGraph — графовая оркестрация и продакшн-экосистема
Ключевой вывод: LangGraph — выбор по умолчанию для сложных stateful-агентов в продакшне — ценой самого крутого порога входа.
LangGraph представляет агентов в виде графов: узлы — это шаги, рёбра — переходы, и у графа есть реальное состояние, которое сохраняется между запусками. Такая конструкция даёт три вещи, с которыми другие фреймворки справляются с трудом: checkpointing (упавший агент продолжает с того места, где остановился), прерывания human-in-the-loop как примитив первого класса и устойчивое состояние для длительных рабочих процессов.
Переписанная в 1.0 версия (конец 2025 года) заметно почистила API — жалобы «LangChain раздутый», доминировавшие в 2023-2024 годах, в основном относятся к старому стеку абстракций, а не к графовому ядру. Экосистема вокруг него (tracing, деплой, утилиты тестирования) — самая зрелая из четырёх; обзорная документация LangGraph — авторитетный источник по текущей поверхности API.
Обратная сторона — затраты. Кривая обучения реальна: графы, редьюсеры, чекпойнтеры и умственная нагрузка от вопроса «где живёт моё состояние» — это концепция, которой у вас не было раньше. Команды, которые берут LangGraph без конкретной потребности в управлении состоянием, платят этот налог впустую.
Мультипровайдерная проверка на практике. LangGraph общается с любым OpenAI-совместимым endpoint через слой моделей. Направьте его на ваш унифицированный API endpoint — и граф будет работать на любой маршрутизации моделей, которую вы настроите: кастомная маршрутизация может отправлять дешёвые модели на дешёвые узлы, а frontier-модели — на критичные. Фреймворк фиксирует вашу оркестрацию, но не ваши модели.
Кому подходит: командам со сложными, stateful, длительными рабочими процессами; всем, кому нужны checkpoint/resume; организациям, которые в течение года перерастут более простые абстракции.
Вариант 2: CrewAI — ролевая коллаборация и самый быстрый старт
Ключевой вывод: CrewAI — самый быстрый способ запустить мультиагентный прототип — и самый быстрый способ упереться в потолок на сложном состоянии.
Ставка CrewAI заключается в том, что агентные системы — это команды: вы определяете Agents с ролями и целями, Tasks с описаниями и Crew, который ими управляет. Абстракция понятна неспециалистам — продакт-менеджер может посмотреть файл определения CrewAI и разобраться в нём. Это реальное преимущество для команд, где дизайн агента — не чисто инженерный артефакт.
Потолок. Процессная модель CrewAI (последовательное и иерархическое выполнение) хорошо покрывает линейные и слаборазветвлённые процессы. Как только агенту нужны условные циклы, динамическое перепланирование или детальное восстановление состояния, вы начинаете воевать с абстракцией, а не использовать её. Честная рекомендация: прототипируйте на CrewAI, но закладывайте бюджет на миграцию на LangGraph или собственный граф, если процесс станет по-настоящему stateful.
Стоимость настройки соответственно низкая. Определение CrewAI читается как спецификация: агенты с ролью, целью и предысторией; задачи с ожидаемыми результатами; crew, который запускает их последовательно или иерархически. Рабочую систему из трёх агентов можно собрать до обеда — именно поэтому это рекомендация по умолчанию для продуктовых команд, проверяющих идею.
Кому подходит: командам, запускающим первую мультиагентную систему, автоматизации в стиле бизнес-процессов и всем, кто оптимизирует время до первого работающего агента, а не архитектурный запас.
Вариант 3: AutoGen — режим поддержки и что с этим делать
Ключевой вывод: AutoGen переведён в режим поддержки — новые проекты в экосистеме Microsoft стоит начинать на Microsoft Agent Framework.
Переработка AutoGen v0.4 представила архитектуру на основе акторов с типизированными сообщениями и была по-настоящему влиятельной — паттерны мультиагентных диалогов, оркестрация групповых чатов и исследовательская родословная, которую она принесла, разбросаны по всей современной агентной экосистеме. Если у вас есть работающая система на AutoGen, она продолжит работать; модель акторов v0.4 не устаревает за ночь.
Но статус на 2026 год однозначен: Microsoft консолидировала своё агентное направление, AutoGen переведён в режим поддержки, а преемник — Microsoft Agent Framework (Python и .NET). Режим поддержки означает исправление багов и обновления безопасности, а не новые возможности.
Практическое правило: не начинайте новый проект на фреймворке, от которого вендор публично двинулся дальше. Если ваш стек — Microsoft, оценивайте Agent Framework напрямую; если нет, мультиагентный диалоговый паттерн, который он вдохновил, отлично закрывается остальными тремя вариантами из этой статьи.
Чему AutoGen научил экосистему. Прежде чем полностью списать это направление, его наследие стоит изучить. Модель «разговор как вычисление» — агенты обмениваются структурированными сообщениями, групповой чат как примитив оркестрации — теперь повсюду в индустрии. Если ваш дизайн требует свободной мультиагентной беседы с контролем на уровне сообщений, вы реализуете идею AutoGen; Microsoft Agent Framework и LangGraph оба развивают эту концепцию в своих идиомах, но исходная модель акторов v0.4 остаётся чистой мысленной моделью для систем обмена сообщениями.
Кому подходит: командам с существующими инвестициями в AutoGen (оставайтесь, планируйте окно миграции) — и больше никому, кто начинает с нуля.
Вариант 4: OpenAI Agents SDK — официальные лёгкие примитивы
Ключевой вывод: Agents SDK — самый «не-фреймворковый» фреймворк: три примитива, никакого DSL — и лучший выбор по умолчанию для команд в экосистеме OpenAI.
Agents, Handoffs, Guardrails — вот и вся поверхность. Agent оборачивает модель плюс инструменты; Handoffs позволяют одному агенту делегировать работу другому; Guardrails выполняют валидацию ввода и вывода вне цикла модели. Никакого графового DSL, никаких файлов определения crew — просто Python-объекты и async-функции, а значит, код читается как ваш код, а не как код фреймворка.
SDK построен на Responses API (самом преемнике Chat Completions для агентных задач), и 2026 год выдался насыщенным на стороне платформы: улучшения встроенного исполнительного harness для моделей и более тесная интеграция с агентным инструментарием OpenAI — актуальный набор возможностей смотрите в документации OpenAI Agents SDK. Для команд, уже приверженных моделям OpenAI, это путь в продакшн с наименьшим трением: официальная поддержка, разумные дефолты и никаких сторонних зависимостей в ядре агента.
Компромисс: примитивы намеренно минимальны. Сложным state machine по-прежнему нужен граф; многоуровневому ролевому дизайну мультиагентных систем — что-то с большей структурой. А врождённая близость SDK к моделям OpenAI — это преимущество, пока не перестаёт им быть: именно поэтому разделение слоя моделей так важно — те же объекты Agent могут работать с OpenAI-совместимым унифицированным endpoint и любой моделью, которую решит ваша маршрутизация.
Кому подходит: командам экосистемы OpenAI, продакшн-ориентированным разработчикам, не доверяющим DSL, и всем, кто хочет минимально возможную поверхность фреймворка.
Одна задача, четыре фреймворка: продакшн-агент
Ключевой вывод: фреймворки отличаются друг от друга не столько возможностями, сколько тем, что они делают простым, — оценивайте их по продакшн-критериям, а не по демо-видео.
Возьмём одну задачу: агент поддержки с доступом к инструментам (поиск тикета, проверка права на возврат), памятью о разговоре и шагом одобрения человеком для возвратов выше порога. Примерно 150-250 строк на фреймворк. Структурные различия:
| Критерий | LangGraph | CrewAI | AutoGen | Agents SDK |
|---|---|---|---|---|
| Состояние и персистентность | первоклассное (checkpointers) | в рамках сессии | сообщения на основе акторов | в рамках сессии |
| Human-in-the-loop | примитивы прерываний | на уровне задач | на уровне диалога | только guardrails |
| Отладка и tracing | зрелая экосистема | базовые | базовые | официальные + сторонние |
| Восстановление после ошибок | возобновление с чекпойнта | перезапуск задачи | повтор сообщений | retry-обёртка |
| Портирование моделей | OpenAI-совместимый endpoint | так же | так же | так же (по умолчанию OpenAI) |
| Кривая обучения | крутая | пологая | умеренная | пологая |
Колонка, которая решает судьбу вашего проекта: состояние и восстановление. Если упавшая ночная задача должна продолжиться с середины графа, LangGraph — единственный фреймворк, где это спроектированная возможность. Если ваш агент — stateless запрос-ответ с инструментами, Agents SDK справится с задачей, используя малую долю механизмов.
Две вещи, которые таблица не показывает, и обе важнее её строк: опыт отладки и знакомство команды. Каждый фреймворк здесь поддаётся отладке; но ни один не отлаживается легко, когда агент уже делает реальную работу. Трассируете упавший многошаговый запуск в LangGraph — проходите по графу; в Agents SDK читаете трассу примитивов. Оба варианта рабочие. Ось знакомства команды — вот что решает на самом деле: фреймворк, который команда уже наполовину знает, побеждает технически превосходящий, который никто не может ревьюить. Это кадровое и обучающее решение, замаскированное под техническое.
Честно о lock-in. Каждый фреймворк здесь — это lock-in на уровне оркестрации; именно это и значит принять фреймворк. Смягчение — не в том, чтобы «выбрать наименее связывающий», а в том, чтобы держать слой моделей отдельно: все четыре работают с OpenAI-совместимыми endpoint, поэтому смена моделей — или провайдеров, когда меняются цены — это изменение конфигурации, а не переписывание. Это паттерн, который наш гайд по оптимизации продакшна называет «модели как конфигурация», и это единственный lock-in, которого действительно можно избежать.
Матрица решений: размер команды × сложность
Ключевой вывод: берите самый маленький фреймворк, который выражает ваше состояние, — а при сомнениях не берите никакой.
| Простые процессы | Сложные stateful-процессы | |
|---|---|---|
| Соло / небольшая команда | Agents SDK (или голый SDK) | LangGraph, только если состояние реально |
| Продуктовая команда | CrewAI (быстрее всего запустить) | LangGraph |
| Стек Microsoft | Microsoft Agent Framework | Microsoft Agent Framework |
Три дефолта, сказанные прямо:
- Фреймворка ещё нет? Начните с голого SDK и паттерна унифицированного клиента — большинству прототипов фреймворк не нужен, а прототипы, которым он не нужен, учат вас тому, что вам действительно нужно.
- Нужны состояние или возобновление? LangGraph. Ничто другое в этом сравнении не считает персистентность ключевой функцией.
- Привержены OpenAI и хотите продакшн без лишних церемоний? Agents SDK. Он официальный, маленький и не мешает.
Напоследок одно предупреждение: документацию каждого фреймворка пишет его вендор, и документация каждого вендора предполагает, что вы уже выбрали именно его. Слой протокола и слой конструирования, на которые мы ссылались выше, остаются полезными независимо от того, на каком фреймворке — или вовсе без него — вы остановитесь.
Тест оценки на 30 минут. Возьмите одну реальную задачу из вашего бэклога и соберите её дважды: один раз на голом SDK, второй — на главном кандидате-фреймворке. Сравните четыре вещи: количество строк кода, поведение упавшего запуска, как вы добавили бы шаг одобрения человеком и как сменили бы модель. Четыре вопроса — один день. Если фреймворк не побеждает хотя бы по двум из них, он вам не нужен.
FAQ
Какой фреймворк учить в 2026 году?
Сначала выучите голый цикл вызова инструментов — это ~50 строк, и это тот же цикл внутри каждого фреймворка. Затем учите LangGraph, если ваша работа связана с состоянием, или OpenAI Agents SDK, если вы на стеке OpenAI. Порядок обучения важнее выбора фреймворка.
Привяжет ли меня фреймворк к себе?
Да, на уровне оркестрации — и это нормально. Чего нужно избегать, так это lock-in на модели: все четыре фреймворка принимают OpenAI-совместимые endpoint, поэтому держите слой моделей за унифицированным endpoint, и смена провайдера останется на уровне конфигурации, а не переписывания.
Выдержит ли CrewAI продакшн-нагрузку?
Да, для линейных и слаборазветвлённых процессов — тысячи команд гоняют оркестрацию в стиле CrewAI в продакшне. Как только вам понадобятся условные циклы, динамическое перепланирование или восстановление с чекпойнта, мигрируйте на LangGraph или собственный граф, пока процесс не начал с вами воевать.
В чём разница между фреймворком и MCP?
Они отвечают на разные вопросы. MCP стандартизирует, как агенты общаются с инструментами и серверами; фреймворки стандартизируют, как вы оркестрируете агентов. MCP-серверы можно использовать из любого фреймворка — наше сравнение протоколов разбирает, где они пересекаются, а где нет.
AgentKit — это то же самое, что OpenAI Agents SDK?
Нет. Agents SDK — это библиотека на Python и TypeScript для сборки агентов из примитивов. AgentKit — высокоуровневый конструктор агентов от OpenAI для продуктовых команд, собирающих агентов через UI. Если вы пишете код, начинайте с Agents SDK; если собираете из дашборда — ваш путь AgentKit. Под капотом у них общий Responses API, так что слой моделей в любом случае остаётся совместимым.
Как оценить фреймворк за один день?
Проведите тест из четырёх вопросов: соберите одну задачу из бэклога на голом SDK, затем на кандидате-фреймворке и сравните количество строк, поведение при падении, способ добавления шага одобрения человеком и способ смены моделей. Фреймворк, который побеждает меньше чем по двум пунктам, не окупает свою абстракцию, — а самое дешёвое исправление в том, чтобы его не принимать.
Замедляет ли фреймворк моего агента?
Накладные расходы абстракции невелики — единицы процентов на большинстве нагрузок — и обычно всё равно перекрываются латентностью модели. Агентов замедляют не фреймворки, а плохая маршрутизация моделей. Направьте дешёвые модели на дешёвые узлы — и налог фреймворка превратится в шум.
Можно ли использовать два фреймворка в одном проекте?
Не смешивайте их внутри одного агента — вы получите обе абстракции и не получите ни одной внятной истории отладки. Использовать разные фреймворки в разных проектах (или разных сервисах) — нормально; общий модельный endpoint позволяет сопоставлять затраты в обоих.
Итоги
Если говорить об агентных фреймворках, LangGraph владеет сложным состоянием, CrewAI — быстрым запуском, Agents SDK — минимальными церемониями, а AutoGen — наследие в режиме поддержки, с которым не стоит начинать. Фреймворки отличаются друг от друга не столько возможностями, сколько тем, что делают простым: выбирайте самый маленький, который выражает ваше состояние, и держите слой моделей за унифицированным endpoint, чтобы решение о фреймворке оставалось решением о фреймворке и ничем больше.
Выбирайте фреймворк после измерений, а не до них. Получите API-ключ TokSpan — первые $5 кредитов бесплатно — и прогоните одну и ту же нагрузку на нескольких моделях; графики уладят спор, который интернет уладить не может.