Урок 0008 · Фреймворки агентов и observability-стек

LangGraph, аналоги (CrewAI, AutoGen, Pydantic AI, OpenAI Agents SDK) и дополнения (Langfuse, LangSmith, Phoenix). Что это, чем отличаются, когда какой брать.

Цель урока Назвать 4–5 фреймворков, объяснить разницу «граф vs агент-класс», и подобрать observability-стек под банк.

1. LangGraph — главный по «графам»

Что это: open-source Python-фреймворк от LangChain для stateful, cyclic, multi-agent приложений. Представляет LLM-приложение как граф: каждый шаг — нода, связи — рёбра.[75][74]

Построен на идее state graph: состояние — это объект (типизированный dict / Pydantic-класс), который передаётся между нодами. Ноды делают работу, рёбра решают, куда идти дальше.[75]

Ключевые концепции (это надо уметь назвать):

Паттерн для начинающих: model → tool → back to model → stop when done. Это и есть агентный цикл, выраженный графом.[81]

Когда брать: ветвление, циклы, тулы, память, human-in-the-loop, долгие воркфлоу, durable execution.[81]

Когда НЕ брать: простой RAG «retrieve → generate» — LangGraph оверинжиниринг, хватит LangChain/прямых API. «Это как ехать на Формуле-1 в магазин за хлебом».[82]

Компании в проде (по словам авторов): Uber, Klarna, LinkedIn, JP Morgan, BlackRock; 1.0 стабильный с октября 2025; 90M+ месячных загрузок.[82]

Источники: доки, Real Python туториал.

2. Аналоги — чем отличаются

ФреймворкМодельСилаСлабость
LangGraphГраф: state + nodes + edgesКонтроль над flow, checkpointing, HITL, отладка по шагамКривая обучения, для простого — overkill
CrewAI«Команда»: agents + crews + flowsБыстрый старт, ролевые агенты, guardrails/memory/knowledge встроеныМеньше контроля под капотом, абстракции выше
AutoGen (Microsoft)Event-driven: Core + AgentChatMulti-agent, распределённые (gRPC), Docker execСложнее, документация в движении
Pydantic AIТипизированный агент + capabilitiesTyped end-to-end (выходы, DI, тулы), OTel-инструментация, durable execution на TemporalНовое, экосистема меньше
OpenAI Agents SDKАгент + тулы + guardrails + handoffsМало примитивов, tracing встроен, sessionsПривязан к философии OpenAI

CrewAI

«Ship multi-agent systems with confidence»: дизайн агентов, оркестрация «команд» (crews), flows со start/listen/router, guardrails, memory, knowledge, observability. Плюс enterprise-консоль, триггеры (Gmail, Slack, Salesforce), RBAC.[76]

Хорош, когда надо быстро собрать ролевых агентов («исследователь», «писатель», «ревьюер») без глубокого контроля flow.

AutoGen (Microsoft)

Три уровня: Core (event-driven, масштабируемые multi-agent системы), AgentChat (конверсационные агенты на Core), Studio (UI-прототипирование без кода). Extensions: MCP-серверы, Assistant API, Docker-исполнение кода, gRPC для распределённых агентов.[77]

Сила — серьёзные распределённые multi-agent системы; слабость — порог входа выше.

Pydantic AI

«How Python does AI»: типизированный агентный цикл, где любой выход — Pydantic-модель (валидируется на каждом прогоне), dependency injection, типизированные тулы. Модель меняется строкой. OpenTelemetry-инструментация из коробки, durable execution на Temporal/DBOS/Prefect, HITL approval встроен. Пример в доках — банковский support-агент с блокировкой карты и risk-уровнем.[78]

Сила — типы и надёжность; банковский кейс у них прямо в доках, что удобно для Plata.

OpenAI Agents SDK

Минимум примитивов: Agent, agents-as-tools/handoffs, guardrails. Встроенные tracing, sessions, HITL. Уже разобран в уроке 0007.[34]

3. LangChain vs LangGraph — не путать

LangChain — для линейных/реактивных цепочек: «данные из БД → чистка → LLM → ответ». Это workflow из документа Anthropic.[79]

LangGraph — для графов с состоянием: ветвления, циклы, ретраи, память, HITL. Это уже «агент» в смысле Anthropic.[79]

Фраза: «LangChain — линейные цепочки, LangGraph — графы с циклами и состоянием. Простой QA — LangChain, агент с тулами и ретраями — LangGraph».[79]

4. Observability-стек: дополнения к фреймворкам

Фреймворк строит агента, но кто показывает, что он делает? Отдельный слой — observability и eval.

Langfuse

Self-hosted open-source (есть cloud): трейсы LLM-вызовов, тул-коллов, ретривалов; датасеты, eval, мониторинг прода, алерты. Интеграции с LangChain/LangGraph, OpenAI, Anthropic. Для команд с требованиями к данным (банк) — self-host на своём железе.[67]

LangSmith

Коммерческая платформа от LangChain: трейсинг + offline/online eval, датасеты, сравнение промптов, глубоко интегрирована с LangGraph (один из авторов LangGraph-туториалов ведёт через LangSmith tracing).[80] Если строишь на LangGraph — LangSmith самый гладкий путь.[66]

Arize Phoenix

Open-source (Phoenix) + enterprise (AX): трейсы на OpenTelemetry, eval, датасеты, эксперименты. Self-host, observability-first.[45]

Helicone

Прокси-слой перед LLM API: логирование запросов/ответов, стоимость, латентность, ретраи, rate limiting, без изменения кода (проксируешь base_url). Быстрый старт для команд, которым нужен «просто лог запросов» без тяжелого eval-стека.[85]

Braintrust / Promptfoo

Уже в глоссарии: Braintrust — eval-first платформа, Promptfoo — open-source CLI для сравнения промптов и red-teaming.[44][59]

5. Как выбрать стек под банк (фраза на собеседовании)

«Фреймворк выбираю по сложности flow: простой RAG — прямые API или LangChain; агент с тулами, циклами и HITL — LangGraph (или Pydantic AI, если важна типизация). Оркестрацию не прячу в чёрный ящик — мне нужно видеть граф и отлаживать по шагам. Observability: OpenTelemetry-трейсы с первого дня, Langfuse self-host из-за данных банка, Phoenix как альтернатива; eval — Promptfoo/Braintrust в CI, промпт как код с версиями».

Проверь себя

LangGraph — это фреймворк для?

Что делает checkpointer в LangGraph?

Банку с требованиями к данным подойдёт?

Видео и статьи по теме

Видео (LangGraph, в порядке смотрения)

Статьи и доки

Первоисточник урока LangGraph docs + Real Python туториал. Видео-старт: LangGraph For Beginners.

Sources: