LangChain
LangChain — это фреймворк с открытым исходным кодом для создания приложений и агентов на базе LLM из взаимозаменяемых моделей, инструментов, модулей поиска и промежуточного ПО.
LangChain — это фреймворк с открытым исходным кодом для создания приложений и ИИ-агентов на основе больших языковых моделей (LLMs). Он предоставляет единый интерфейс для сообщений, чат-моделей, инструментов и ретриверов разных поставщиков моделей. Поэтому приложение может перейти с модели одного поставщика на модель другого, изменив название модели. LangChain также предлагает готовые циклы работы агентов и сотни интеграций с векторными хранилищами, загрузчиками документов и API. Харрисон Чейз выпустил LangChain как проект Python с открытым исходным кодом в октябре 2022 года, за несколько недель до запуска ChatGPT. LangChain стал одним из самых широко используемых наборов инструментов для объединения запросов, извлечения данных и вызовов моделей в приложениях генеративного ИИ. LangChain 1.0 и LangGraph 1.0 вышли одновременно 22 октября 2025 года. Разработчики обязались не вносить несовместимые изменения до версии 2.0.
Экосистема LangChain#
Теперь это название целого семейства пакетов для Python и JavaScript:
- langchain: Фреймворк для агентов, в основе которого лежит
create_agent. Он принимает модель, список инструментов и системный запрос, а возвращает готового к работе агента. - langchain-core и интеграции: Стандартные интерфейсы для чат-моделей, сообщений, эмбеддингов, ретриверов и инструментов, а также пакеты поставщиков, например langchain-openai и langchain-anthropic, которые реализуют эти интерфейсы.
- LangGraph: Низкоуровневая среда выполнения, на которой работают агенты LangChain. Она представляет программу как граф шагов с общим состоянием и может сохранять контрольную точку состояния после каждого шага. Благодаря этому длительные задачи переживают перезапуск и могут приостанавливаться для получения одобрения человека.
- LangSmith: Размещённая платформа для трассировки наблюдаемости, оценки агентов на наборах данных и развёртывания агентов.
Классические приложения LangChain представляли собой цепочки: шаблон запроса заполнялся данными пользователя, затем выполнялся вызов модели и парсер результата. Компоненты объединялись синтаксисом конвейера, как в цепочке запросов. Самая распространённая цепочка — это генерация с дополнением извлечённой информацией (RAG): она загружает документы, разбивает их на фрагменты, сохраняет эмбеддинги в векторной базе данных и добавляет в контекстное окно модели фрагменты, лучше всего соответствующие каждому вопросу.
Как работает агент LangChain#
Агент, созданный с помощью create_agent, повторяет цикл вызовов модели и инструментов — такой же цикл вызова функций, который выполняет любая среда запуска агента. Промежуточное ПО подключается к каждому шагу и меняет действия вокруг модели: встроенное промежуточное ПО суммирует длинные истории, удаляет личные данные и приостанавливает работу для одобрения человека перед запуском выбранных инструментов.
Добавление визуальных возможностей агенту LangChain#
Декоратор @tool LangChain превращает функцию Python в инструмент: он считывает типы аргументов из сигнатуры, а описание — из строки документации. Если таким образом обернуть Ultralytics YOLO26, агент получит возможность обнаружения объектов. Results.summary() возвращает обнаруженные объекты в виде данных, которые модель может прочитать: для каждого объекта указаны название класса, уверенность и рамка.
from langchain_core.tools import tool
from langchain_core.utils.function_calling import convert_to_openai_tool
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
@tool
def detect_objects(image_url: str) -> list[dict]:
"""Detect objects in an image and return each one's class name, confidence, and box."""
results = model(image_url)
return results[0].summary()
# Схема, которую LangChain выводит из сигнатуры и строки документации и передаёт модели
print(convert_to_openai_tool(detect_objects))
# Агент запускает инструмент с аргументами из вызова инструмента, сделанного моделью
detections = detect_objects.invoke({"image_url": "https://ultralytics.com/images/bus.jpg"})
print(detections[0]["name"], detections[0]["confidence"])В первой строке вывода показано определение функции: строковый параметр image_url и строка документации в качестве описания, которые LangChain передаёт модели. Во второй строке показан первый объект, возвращённый инструментом. Если передать tools=[detect_objects] в create_agent, любая поддерживаемая чат-модель сможет вызывать детектор через режим предсказания.
LangChain и родственные инструменты#
- Агентные рабочие процессы: Общие шаблоны проектирования, например маршрутизация, использование инструментов и циклы оценки, которые реализуют графы LangGraph и агенты LangChain.
- SDK поставщиков: Для прямого вызова API поставщика модели не нужен фреймворк — это подходит приложениям с одной моделью. LangChain добавляет общие интерфейсы, интеграции и цикл работы агента, которые становятся важны, когда приложение использует несколько моделей, инструментов или источников данных.
- DSPy: Фреймворк, который автоматически создаёт и оптимизирует запросы многоэтапной программы LLM, настраивая их по метрике на примерах данных.
- LlamaIndex: Фреймворк для загрузки, индексирования и поиска по закрытым данным для RAG. Эти фреймворки частично пересекаются, и приложения часто используют LlamaIndex для извлечения данных внутри агента LangChain или LangGraph.










