Зимородок сидит на ветке, яркие сине-оранжевые перья, природа, крупный план.

Уроки, извлеченные из перехода на LangChain 1.0 в производственной среде

Что сработало, что сломалось и почему я это сделал.

Делиться

0ae524ef4d52e5b0424a2d071f811b29

В конце октября 2025 года LangChain выпустил свою первую стабильную версию 1.0. После двух месяцев работы с их новыми API я искренне считаю, что это самая согласованная и продуманная версия LangChain на сегодняшний день.

Я не всегда был поклонником LangChain. Ранние версии были ненадежными, плохо документированными, абстракции часто менялись, и казалось, что использовать их в продакшене еще слишком рано. Но версия 1.0 показалась более продуманной и имела более последовательную модель того, как данные должны проходить через агентов и инструменты.

Это не рекламный пост — мне бы очень хотелось узнать ваше мнение, пишите мне в личные сообщения!

Цель этой статьи не в том, чтобы пересказывать документацию. Я предполагаю, что вы уже немного знакомы с LangChain (или являетесь активным пользователем). Вместо того чтобы перечислять множество пунктов, я выделю всего четыре ключевых момента.

Краткий обзор: LangChain, LangGraph и LangSmith.

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

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

Проще говоря: LangChain помогает быстро создавать агентов, LangGraph обеспечивает их надежную работу, а LangSmith позволяет отслеживать и улучшать их в производственной среде.

Мой стек

Для контекста, большая часть моей недавней работы сосредоточена на разработке многоагентных функций для клиентской платформы искусственного интеллекта. В качестве бэкенда я использую FastAPI, а Pydantic обеспечивает проверку схем и работу с контрактами данных.

Урок 1: Отказ от поддержки моделей Pydantic

Важным изменением при переходе на версию 1.0 стало введение нового метода create_agent. Он упрощает определение и вызов агентов, но также исключает поддержку моделей Pydantic и классов данных в состоянии агента. Теперь все должно быть выражено как TypedDicts, расширяющие AgentState.

Если вы используете FastAPI, Pydantic часто является рекомендуемым и используемым по умолчанию валидатором схемы. Я ценил согласованность схем во всей кодовой базе и считал, что смешивание TypedDicts и моделей Pydantic неизбежно вызовет путаницу — особенно у начинающих инженеров, которые могут не знать, какому формату схемы следовать.

Для решения этой проблемы я добавил небольшой вспомогательный класс, который преобразует модель Pydantic в TypedDict, расширяющий AgentState, непосредственно перед передачей его в create_agent. Важно отметить, что LangChain добавляет пользовательские метаданные к аннотациям типов, которые необходимо сохранять. Утилиты Python, такие как get_type_hints(), удаляют эти аннотации, а это значит, что простое преобразование не сработает.

Урок 2: Глубоко устроенные агенты изначально имеют собственное мнение.

Наряду с новым API create_agent в LangChain 1.0 появилось нечто, что привлекло мое внимание: библиотека deepagents. Вдохновленная такими инструментами, как Claude Code и Manus, библиотека deepagents позволяет планировать, разбивать задачи на этапы и даже создавать подагентов.

Когда я впервые это увидел, мне захотелось использовать это повсюду. Почему бы и нет «более умных» агентов, верно? Но после тестирования в нескольких рабочих процессах я понял, что эта дополнительная автономность иногда бывает излишней, а в некоторых случаях даже контрпродуктивной для моих задач.

Библиотека deepagents довольно специфична и создана именно так. Каждый deep-агент поставляется с некоторыми встроенными промежуточными программами — такими как ToDoListMiddleware, FilesystemMiddleware, SummarizationMiddleware и т. д. Они определяют, как агент мыслит, планирует и управляет контекстом. Однако загвоздка в том, что вы не можете точно контролировать, когда именно запускаются эти промежуточные программы по умолчанию, и не можете отключить те, которые вам не нужны.

Изучив исходный код deepagents, можно увидеть, что параметр middleware — это дополнительное ПО, применяемое после стандартного. Любое ПО, переданное в middleware=[…], добавляется после значений по умолчанию.

Вся эта дополнительная оркестровка также внесла заметную задержку и может не принести существенной пользы. Поэтому, если вам нужен более детальный контроль, используйте более простой метод create_agent.

Я не говорю, что глубоко проработанные агенты плохи, они эффективны в подходящих сценариях. Однако это хорошее напоминание о классическом инженерном принципе: не гонитесь за «блестящей» вещью. Используйте технологию, которая решает вашу реальную проблему, даже если это «менее привлекательный» вариант.

Моя любимая функция: структурированный вывод.

После развертывания агентов в производственной среде, особенно тех, которые интегрируются с детерминированными корпоративными системами, крайне важно было добиться от агентов стабильного вывода результатов в соответствии с определенной схемой.

В LangChain 1.0 это значительно упрощено. Вы можете определить схему (например, модель Pydantic) и передать ее функции create_agent через параметр response_format. Затем агент выдает результат, соответствующий этой схеме , в рамках одного цикла работы агента без каких-либо дополнительных шагов.

Это оказалось невероятно полезным всякий раз, когда мне нужно, чтобы агент строго придерживался структуры JSON с гарантированным отображением определенных полей. Пока что структурированный вывод также показал себя очень надежно.

Что я хочу изучить подробнее: промежуточное программное обеспечение (Middleware).

Одна из самых сложных задач при создании надежных агентов — это проектирование контекста , то есть обеспечение того, чтобы агент всегда имел нужную информацию в нужное время. Для предоставления разработчикам точного контроля над каждым этапом цикла работы агента было введено промежуточное ПО (middleware), и я думаю, что стоит подробнее изучить этот вопрос.

В зависимости от контекста, промежуточное ПО может означать разные вещи (игра слов уместна). В LangGraph это может означать управление точной последовательностью выполнения узлов. В длительных диалогах это может включать в себя суммирование накопленного контекста перед следующим вызовом LLM. В сценариях с участием человека промежуточное ПО может приостанавливать выполнение и ждать, пока пользователь одобрит или отклонит вызов инструмента.

Совсем недавно, в последнем минорном релизе v1.1, LangChain также добавила промежуточное ПО для повторных попыток модели с настраиваемой экспоненциальной задержкой, позволяющее корректно восстанавливаться при временных ошибках конечной точки.

Лично я считаю, что промежуточное ПО кардинально меняет ситуацию, поскольку рабочие процессы агентов становятся все более сложными, длительными и зависящими от состояния, особенно когда требуется детальный контроль или надежная обработка ошибок.

Этот список промежуточного ПО постоянно пополняется, и очень помогает то, что он остается независимым от провайдера. Если вы экспериментировали с промежуточным ПО в своей работе, мне было бы интересно узнать, что оказалось для вас наиболее полезным!

В заключение

На этом пока всё — четыре ключевых вывода из того, что я узнал о LangChain. И если кто-нибудь из команды LangChain это читает, я всегда рад поделиться отзывами пользователей или просто пообщаться 🙂

Удачи в строительстве!

Источник: towardsdatascience.com

✅ Найденные теги: 1.0, LangChain, новости, Производственная Среда, Уроки

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

ideipro logotyp
Программирование в стиле Vibe с чрезмерно усердным ИИ: уроки, извлеченные из использования Google AI Studio как инструмента командной работы.
Футуристический 3D-анализ почвы с деревьями в цифровом пространстве.
Смартфон Google Pixel синего цвета, вид сбоку.
Мем со сценой из "Властелина колец" и упоминанием "Звезды смерти" из "Звездных войн".
Сравнение понятия равенства и эквивалентности на примере цветных кругов.
Мужчина с бородой в инвалидной коляске улыбается на улице возле дома.
Человек держит мощную микросхему графического ускорителя серверного уровня.
Человек с телефоном в шоке от полученных сообщений, включающих символы молнии и какашки.
Image Not Found
ideipro logotyp

Системная карта Sora | OpenAI

Прочитайте объявление Введение Обзор Соры Sora — это модель генерации видео от OpenAI, предназначенная для обработки текстовых, графических и видеовходных данных и генерации нового видео на выходе. Пользователи могут создавать видео с разрешением до 1080p (максимум 20…

Мар 5, 2026
Программирование в стиле Vibe с чрезмерно усердным ИИ: уроки, извлеченные из использования Google AI Studio как инструмента командной работы.

Программирование в стиле Vibe с чрезмерно усердным ИИ: уроки, извлеченные из использования Google AI Studio как инструмента командной работы.

Дуг Снайдер Создано автором с помощью Microsoft Copilot. В большинстве дискуссий о программировании, основанном на атмосфере, генеративный ИИ обычно рассматривается скорее как бэк-вокалист, а не как фронтмен: он полезен как исполнитель, помогающий быстро генерировать идеи, набрасывать начальные…

Мар 5, 2026
Футуристический 3D-анализ почвы с деревьями в цифровом пространстве.

Нефть — новая цифра. Почему современная нефтяная вышка больше похожа на дата-центр

Почему современная нефтяная вышка больше похожа на дата-центр Вместо суровых пейзажей — суперкомпьютеры. Вместо контурных карт и геологической «миллиметровки» — спутниковые снимки и огромные массивы данных. Более половины месторождений в мире уже управляются с использованием ИИ и продвинутых…

Мар 5, 2026
Смартфон Google Pixel синего цвета, вид сбоку.

Google официально анонсировал Pixel 10a — смартфон стартует от 500 долларов

Источник: Google Google полноценно анонсировала свой новый бюджетный смартфон Pixel 10a. Его цена начнётся от 500 долларов — как и в предыдущих бюджетниках компании. Внешне смартфон тоже фактически не изменился. Pixel 10a будет иметь стекло Corning Gorilla…

Мар 5, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых