AI-инжиниринг

Фреймворки агентов: LangGraph, CrewAI, AutoGen, Claude Agent SDK

Цели урока

  • Понять что абстрагируют фреймворки агентов и когда они нужны
  • Освоить LangGraph: графовая оркестрация, state management, persistence
  • Познакомиться с CrewAI, LlamaIndex и DSPy - что каждый решает
  • Научиться использовать Vercel AI SDK: streaming, tool calling, React integration
  • Уметь выбрать фреймворк под задачу - и знать когда лучше naked SDK

Предварительные знания

  • Agent loop, ReAct, планирование
  • Tool calling: JSON Schema, execution cycle
  • Agent Fundamentals
  • Tool Calling

От LangChain до второго поколения фреймворков агентов

24 октября 2022 Harrison Chase выложил первую версию LangChain как Python-пакет (тогда он работал в Robust Intelligence). Идея появилась на внутреннем хакатоне, и LangChain быстро стал самым популярным способом склеивать промпты, цепочки и tools вокруг LLM. 30 марта 2023 Toran Bruce Richards из Significant Gravitas опубликовал AutoGPT, один из первых проектов, показавших автономный цикл агента поверх GPT-4. AutoGPT набрал десятки тысяч звёзд за считанные дни, но на практике зацикливался и терял контекст, и это обнажило разрыв между демо и production. Ответом стало второе поколение. В начале 2024 команда LangChain выпустила LangGraph, где агент описывается как явный граф из узлов и рёбер с управляемым состоянием. Параллельно João Moura собрал CrewAI: первая версия легла на GitHub в конце 2023, пакет появился на PyPI в декабре 2023, а официальный запуск состоялся в январе 2024. CrewAI принёс role-based подход, где команда агентов с ролями делит задачу между собой.

LangChain - самый популярный и самый ненавидимый фреймворк в AI. 90K GitHub stars. И 50K жалоб на абстракции поверх абстракций. Знать его нужно - но не чтобы копировать. AutoGPT набрал 150K звёзд за месяц в 2023 - и 90% пользователей бросили его через неделю: зацикливался, галлюцинировал инструменты, терял контекст. Второе поколение - LangGraph, CrewAI, Vercel AI SDK - решает эти проблемы по-разному. Но одинаково правильный выбор зависит от задачи, а не от количества звёзд на GitHub.

  • Replit Agent - IDE с AI, построен на LangGraph: coding + terminal + deploy оркестрация как явный граф с ветвлением
  • Jasper AI - content platform, CrewAI-подобная архитектура: researcher -> writer -> editor с разными LLM на каждом этапе
  • v0.dev (Vercel) - AI-генератор UI, построен на Vercel AI SDK: streaming React-компонентов прямо в браузер
  • Claude Code (Anthropic) - использует Claude Agent SDK для автономной работы с кодовыми базами через MCP
  • Cursor - naked Anthropic SDK + собственная RAG-система, без фреймворков: 50K tokens context, свой chunking

Зачем фреймворки: что они абстрагируют

В предыдущем уроке agent loop реализован с нуля - ~100 строк для базовой версии. Но это только start. В production нужны ещё: управление состоянием, персистентность (что если сервер перезагрузился посреди задачи?), streaming, human-in-the-loop (одобрение опасных действий), трейсинг. Ещё 500-1000 строк boilerplate, одинаковых для каждого проекта.

Фреймворки абстрагируют этот повторяющийся код. Как Express.js абстрагирует HTTP-сервер, а TypeORM - SQL, так LangGraph и Vercel AI SDK абстрагируют agent loop, memory management и tool orchestration. Вопрос не "нужен ли фреймворк" - вопрос "какой и когда".

ЗадачаБез фреймворкаС фреймворком
Agent loopwhile + if/else вручнуюДекларативный граф или конфиг
State managementМассив messages + ручное сжатиеВстроенный state с persistence
Tool executiontry/catch + Promise.all вручнуюАвтоматическая оркестрация с retry
StreamingSSE + ручная сборка chunksstream() из коробки
Human-in-the-loopКастомный UI + WebSocketВстроенные interrupt points
Observabilityconsole.logTracing, LangSmith, OpenTelemetry

Каждый фреймворк добавляет абстракцию (learning curve), зависимость (vendor lock-in) и ограничения. Для простого бота с 2-3 tools собственный agent loop в 50 строк прозрачнее и легче поддерживается, чем фреймворк с 50 страницами документации.

  • **LangGraph** (LangChain) - графовая оркестрация, максимальная гибкость, production-ready
  • **CrewAI** - role-based агенты, простой API для multi-agent сценариев
  • **Vercel AI SDK** - streaming-first, React интеграция, идеален для web-приложений
  • **Claude Agent SDK** (Anthropic) - нативная поддержка Claude, MCP-интеграция
  • **AutoGen** (Microsoft) - multi-agent conversations, research-grade

Для построения агента нужен фреймворк - иначе придётся изобретать велосипед

Для простых случаев naked OpenAI SDK + 50 строк кода бьёт LangChain по всем параметрам: читаемость, отладка, vendor lock-in

Фреймворк оправдан когда задача достаточно сложна - persistence, ветвление, multi-agent. Telegram-бот с тремя командами, Slack-помощник с поиском по документам, скрипт для обработки тикетов - всё это реализуется в 50-100 строк на чистом SDK. LangChain LCEL, LangGraph, CrewAI добавляют слой абстракций, который нужен только когда задача этого стоит. Знать их нужно - но не чтобы копировать на каждый проект.

LangGraph: графовая оркестрация агентов

**LangGraph** - фреймворк от LangChain для построения агентов как **направленных графов**. Каждый шаг агента - node (узел), переходы между шагами - edges (рёбра). Граф определяет: какие шаги возможны, в каком порядке, при каких условиях. TypeScript SDK есть - подходит для Node.js бекендов.

LangChain - самый популярный и самый ненавидимый фреймворк в AI. 90K GitHub stars. И 50K жалоб на абстракции поверх абстракций. LangGraph - другой продукт той же команды: без magic chains, без implicit state. Граф явный, переходы явные, state явный. Именно это делает его пригодным для production.

Главное преимущество LangGraph - state с **persistence**. Можно сохранить state в Redis или PostgreSQL и продолжить выполнение после перезагрузки сервера. Это критично для long-running задач: code agent может работать минуты, research agent - часы. Без persistence потеря прогресса при любом сбое.

LangGraph идеален для сложных агентов с ветвлением, параллельными ветками и persistence. Но для простого ReAct-агента это overhead: 30 строк LangGraph vs 20 строк чистого кода. Выбирать LangGraph когда нужны: conditional routing, state persistence, human-in-the-loop.

В LangGraph agent loop реализуется как:

CrewAI и другие: role-based агенты, DSPy, LlamaIndex

**CrewAI** подходит к агентам с другой стороны: вместо графа - **команда** (crew) из агентов с ролями. Один исследует, другой пишет, третий проверяет. Задачи распределяются между агентами, результат одного - вход для следующего. Там, где LangGraph думает топологиями, CrewAI думает командами.

**LlamaIndex** - другой популярный фреймворк, но с другим фокусом. Не на агентах как таковых, а на **data ingestion и RAG**. Если задача - построить агента поверх корпоративных документов, LlamaIndex даёт готовые data connectors (PDF, Notion, Google Drive, SQL), chunking стратегии и query pipelines. Agents в LlamaIndex - это надстройка над RAG, не основная абстракция.

**DSPy** (Stanford, 2023) - нечто принципиально иное. Не фреймворк для оркестрации - а фреймворк для **оптимизации промптов**. Вместо того чтобы писать промпты вручную, описывается сигнатура (что на входе, что на выходе) и критерий качества. DSPy сам оптимизирует промпты через few-shot примеры и gradient-like search. Cursor использует похожие подходы для автоматической настройки контекста под задачу.

ФреймворкФокусКогда брать
LangGraphГраф оркестрации, state persistenceСложные агенты с ветвлением и long-running задачами
CrewAIRole-based команды агентовContent pipelines: исследование -> написание -> редактура
LlamaIndexRAG + data connectorsАгент поверх корпоративных документов
DSPyОптимизация промптовКогда качество промпта критично и нужна автоматизация
Vercel AI SDKStreaming, React, webWeb-приложения с AI-чатом
Naked SDKПолный контрольПростые агенты, Telegram-боты, скрипты

CrewAI использует концепцию **backstory** - описание "личности" агента, которое влияет на стиль работы. Детальный backstory повышает качество результата на 15-20% по сравнению с простым описанием роли.

В CrewAI задача editTask с context: [writeTask] означает:

Vercel AI SDK: streaming, tool calling, React интеграция

**Vercel AI SDK** - фреймворк, заточенный под **web-приложения**. Streaming из коробки, встроенный tool calling с Zod-валидацией, seamless интеграция с React/Next.js. Notion AI, v0.dev, большинство AI-фич в SaaS-продуктах 2024-2025 - построены именно на нём или на аналогах.

Ключевая фишка - параметр **maxSteps**. SDK автоматически создаёт agent loop: вызывает LLM -> если есть tool calls, выполняет tools -> вызывает LLM снова -> и так до maxSteps. Не нужно писать while-цикл вручную. Один параметр превращает простой запрос в агента.

Vercel AI SDK - лучший выбор для web-приложений с AI. Streaming, React hooks, provider-agnostic API - всё из коробки. Но для сложных multi-agent сценариев с ветвлением и persistence лучше подходит LangGraph.

Параметр maxSteps: 5 в Vercel AI SDK означает:

Критерии выбора: когда какой фреймворк

Выбор фреймворка - не вопрос "какой лучше", а "какой подходит для задачи". Ответ зависит от: сложности agent logic, нужен ли streaming, web или backend, один агент или несколько, требования к persistence и observability. И отдельным вопросом - нужен ли фреймворк вообще.

КритерийVercel AI SDKLangGraphCrewAIСвой код
Сложность agent logicПростая-средняяЛюбаяСредняяПростая
Streaming★★★★★★★★☆☆★★☆☆☆★★☆☆☆
React интеграция★★★★★★★☆☆☆★☆☆☆☆★☆☆☆☆
Multi-agent★★☆☆☆★★★★★★★★★★★★★☆☆
Persistence (state)★★☆☆☆★★★★★★★★☆☆★☆☆☆☆
TypeScript support★★★★★★★★★☆★★☆☆☆★★★★★
Learning curveНизкаяВысокаяСредняяНулевая
Vendor lock-inНизкийСредний (LangChain)СреднийНулевой

Фреймворки развиваются быстро: каждые 2-3 месяца появляются новые или существенно обновляются. Главный навык - не знание конкретного API, а понимание **паттернов**: agent loop, state management, tool orchestration. Паттерны переносимы между фреймворками.

  • **E-commerce бот** с поиском товаров и оформлением заказов -> Vercel AI SDK (streaming UI, простой tool calling)
  • **Code assistant** с git, файловой системой и CI/CD -> LangGraph (сложная логика, persistence для long-running задач)
  • **Content pipeline** (исследование -> написание -> редактура) -> CrewAI (роли, делегирование, последовательные задачи)
  • **Telegram-бот** с 3 командами -> Свой код (минимальный overhead, полный контроль)

Нужно построить AI-чат для web-приложения на Next.js: streaming ответов, 4 tools, переключение между OpenAI и Anthropic. Какой фреймворк оптимален?

Для построения агента нужен фреймворк - иначе придётся изобретать велосипед

Для простых случаев naked OpenAI SDK + 50 строк кода читаемее, надёжнее и отлаживается быстрее, чем LangChain

Telegram-бот, Slack-помощник с поиском по документам, скрипт обработки тикетов - всё это 50-100 строк на чистом SDK. Фреймворк оправдан когда задача достаточно сложна: persistence state через перезагрузки, conditional branching, human-in-the-loop паузы, multi-agent coordination. Если этого нет - фреймворк добавляет только learning curve, версионный ад и vendor lock-in.

Итоги

  • Фреймворки абстрагируют boilerplate: agent loop, state, persistence, streaming, tool orchestration - но добавляют зависимость и learning curve
  • LangGraph - граф из nodes/edges, максимальная гибкость, state persistence через checkpointer: для long-running агентов с ветвлением
  • CrewAI - role-based агенты с backstory, задачи с зависимостями (context): для content pipelines и командной работы агентов
  • LlamaIndex - RAG + data connectors как основа, агенты как надстройка: для корпоративных knowledge bases
  • DSPy - оптимизация промптов как программирование: для автоматического тюнинга качества без ручного prompt engineering
  • Vercel AI SDK - streaming-first, maxSteps для автоматического agent loop, React hooks: для web-приложений
  • Naked SDK + 50 строк - для простых случаев всегда быстрее, понятнее и надёжнее фреймворка

Вопросы для размышления

  • Есть ли в текущем или прошлом проекте агент, который был написан на фреймворке там, где хватило бы 50 строк? Или наоборот - написан вручную там, где persistence избавил бы от боли?
  • LangChain критикуют за abstractions on top of abstractions. Почему тогда у него 90K звёзд и он остаётся самым популярным? Что он даёт несмотря на критику?
  • DSPy оптимизирует промпты автоматически. Значит ли это, что prompt engineering как навык становится менее ценным - или наоборот?

Что дальше

Фреймворки позволяют быстро построить одного агента. Но самые мощные системы используют несколько специализированных агентов, работающих вместе - от supervisor pattern до peer-to-peer debate.

  • Multi-Agent Systems — Несколько агентов с разными ролями: supervisor, researcher, coder - оркестрация и коммуникация
  • Agent Fundamentals — Базовые паттерны агентов: ReAct, planning, memory - основа для работы с фреймворками
  • Streaming Deep Dive — Продвинутые паттерны streaming: backpressure, cancellation, structured streaming

Связанные уроки

  • aie-17-agent-fundamentals — Фреймворки кодируют базовые паттерны агентов
  • aie-19-multi-agent — Фреймворки делают мультиагентную оркестрацию практичной
  • aie-20-langchain-llamaindex — LangGraph связан с более широкой экосистемой LangChain
  • aie-21-orchestration-patterns — Фреймворки напрямую реализуют паттерны оркестрации
  • sd-10-microservices — Фреймворки агентов похожи на слои оркестрации сервисов
  • ml-01-intro
Фреймворки агентов: LangGraph, CrewAI, AutoGen, Claude Agent SDK

0

1

Войти

Когда фреймворк для агентов избыточен и собственная реализация предпочтительнее?