LangChain 25 мая выпустила версию 0.4 — крупнейший архитектурный пересмотр библиотеки с момента её появления в 2022 году. Главное изменение — переход от линейной Chain-абстракции к графовой StateGraph как основной модели описания пайплайнов. Документация и changelog опубликованы на официальном сайте.

Решение назревало с конца 2024 года, когда часть функциональности уже была вынесена в отдельную библиотеку LangGraph. Версия 0.4 завершает слияние: LangGraph становится частью основного пакета, а старый Chain API помечается как deprecated с планом полного удаления в версии 0.6.

Что меняется в коде

Старая модель Chain описывала пайплайн как последовательность шагов, передающих текстовые сообщения. Это хорошо работало для простых RAG-сценариев, но плохо масштабировалось на агентные пайплайны с ветвлениями, условными переходами и циклами. StateGraph закрывает этот пробел явно: пайплайн — это граф узлов, передающих типизированное состояние, с явно описанными переходами.

Состояние теперь обязательно типизировано через TypedDict или Pydantic. Это упрощает отладку — на каждом шаге понятно, что именно передаётся между узлами — и открывает возможность статической проверки графа на корректность. Также добавлена встроенная поддержка checkpoint-ов: состояние может сериализоваться после каждого шага, что критично для долгоживущих агентов и для retry-логики после сбоев.

Параллельно изменилась модель инструментов. Раньше Tool было обёрткой над функцией; теперь это полноценный примитив со своей схемой ввода-вывода, описанной через Pydantic. Это упрощает интеграцию с tool use API современных моделей (Claude, GPT-5o, Gemini) — старая обвязка с конвертерами больше не нужна.

Что делать существующим проектам

Команда LangChain опубликовала миграционный гайд и автоматический рефакторер на базе libcst. Простые Chain-пайплайны конвертируются в StateGraph почти автоматически. Сложные кейсы — кастомные Chain с переопределённой логикой — потребуют ручной работы.

Для команд, у которых LangChain уже встроен в продакшен, есть три разумных стратегии:

  • Зафиксировать версию 0.3 и не мигрировать до тех пор, пока не понадобятся новые возможности. До конца 2026 года ветка 0.3 будет получать security-фиксы.
  • Мигрировать постепенно, по одному пайплайну за раз, в параллель с разработкой новой функциональности. Параллельное использование 0.3 и 0.4 в одном проекте поддерживается через namespace.
  • Использовать миграцию как повод для аудита: значительная часть Chain-пайплайнов, написанных в 2023-2024 годах, сейчас уже не оптимальна и может быть упрощена при переходе.

Реакция сообщества

Релиз встречен сдержанно. Часть команд воспринимает повторный major-рефакторинг как сигнал нестабильности библиотеки и переходит на альтернативы — LlamaIndex для RAG-сценариев, прямую интеграцию с API моделей для агентных задач. Другая часть, наоборот, считает StateGraph именно той абстракцией, которой не хватало для серьёзной агентной разработки.

Объективно LangChain 0.4 — это значительно более зрелая библиотека, чем 0.3. Типизация, checkpoint-ы и встроенная поддержка наблюдаемости через LangSmith решают реальные проблемы команд, строящих агентов в продакшене. Вопрос не в том, лучше ли 0.4 чем 0.3, а в том, готова ли команда снова заплатить миграционную цену за поддержку библиотеки, которая исторически меняется быстрее, чем стабилизируется.

По мотивам: LangChain changelog, обсуждения в GitHub issues и Discord.