LangChain выпускает Deep Agents: структурированный runtime для планирования, памяти и изоляции контекста в многошаговых AI-агентах

Большинство LLM-агентов отлично справляются с короткими вызовами инструментов. Но они ломаются при многошаговых задачах с сохранением состояния (stateful) и большим количеством артефактов. Deep Agents от LangChain создан именно для таких случаев. Проект описывается как «agent harness» (обвязка для агента). Это автономная библиотека на базовых блоках LangChain. Она работает в среде выполнения (runtime) LangGraph. Это обеспечивает надежное выполнение, стриминг (постепенную выдачу результатов) и процессы с участием человека (human-in-the-loop).

Важный момент: Deep Agents не добавляет новую модель вывода или отдельную среду выполнения. Он использует runtime LangGraph. Вместо этого проект упаковывает настройки по умолчанию и встроенные инструменты вокруг стандартного цикла вызова инструментов (tool-calling loop). Команда LangChain позиционирует его как отправную точку. Подходит разработчикам, которым нужны агенты с планированием, управлением контекстом, делегированием подзадач и сохранением данных между диалогами. При этом можно перейти к простым агентам LangChain или кастомным workflow (цепочкам задач) в LangGraph.

Что включено в Deep Agents по умолчанию

В репозитории на GitHub перечислены базовые компоненты. Среди них: инструмент планирования write_todos; утилиты для файловой системы (read_file, write_file, edit_file, ls, glob, grep); доступ к командной оболочке через execute с песочницей; инструмент task для запуска субагентов; а также встроенное управление контекстом — авто-суммаризация и сохранение больших результатов в файлы.

Во многих агентских системах планирование, хранение и делегирование подзадач реализует сам разработчик. Deep Agents добавляет эти элементы в runtime по умолчанию.

Планирование и декомпозиция задач

Deep Agents включает инструмент write_todos для планирования и декомпозиции задач. Агент разбивает сложную задачу на отдельные шаги. Он отслеживает прогресс и обновляет план при поступлении новых данных.

Без планирования модель импровизирует на каждом шаге на основе текущего промпта. С write_todos рабочий процесс (workflow) становится структурированным. Это критично для исследовательских задач, написания кода или длительной аналитики.

Управление контекстом через файловую систему

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

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

Deep Agents поддерживает несколько типов бэкендов (серверных компонентов) для виртуальной файловой системы. В документации перечислены StateBackend, FilesystemBackend, LocalShellBackend, StoreBackend и CompositeBackend. По умолчанию используется StateBackend. Он хранит временную файловую систему в состоянии LangGraph для одного потока.

Субагенты и изоляция контекста

В Deep Agents есть инструмент task для создания субагентов. Он позволяет основному агенту выделять субагентов с изолированным контекстом. Основной поток остается чистым. Система углубляется в конкретные подзадачи.

Это решение распространенной проблемы агентских систем. В одном потоке часто накапливается слишком много целей, результатов и временных решений. Из-за этого качество работы модели падает. Разделение на субагентов снижает перегрузку и упрощает отладку оркестрации (управления процессами).

Долгосрочная память и интеграция с LangGraph

В репозитории GitHub долгосрочная память описывается как встроенная возможность (capability). Deep Agents поддерживает постоянную память между потоками через LangGraph Memory Store. Агент сохраняет и извлекает информацию из предыдущих диалогов.

На уровне реализации Deep Agents работает внутри модели выполнения LangGraph. Функция create_deep_agent(...) возвращает CompiledStateGraph. Полученный граф совместим со стандартными возможностями LangGraph: стримингом, Studio и чекпоинтами (точками сохранения состояния).

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

Развертывание

В официальном кратком руководстве (quickstart) показана минимальная настройка на Python. Нужно установить deepagents и провайдер поиска (например, tavily-python). Затем экспортировать API-ключи модели и поиска. После этого определить инструмент поиска и создать агент через create_deep_agent(...). Для этого нужна модель с поддержкой tool calling (вызова инструментов). В документации подчеркивается: Deep Agents требует поддержки tool calling. Типичный workflow — инициализация агентов вашими инструментами и system_prompt. Затем запуск через agent.invoke(...). Для production команда LangChain рекомендует стандартное развертывание LangGraph. Deep Agents работает на этом runtime и поддерживает встроенный стриминг для отслеживания выполнения.

# pip install -qU deepagents
from deepagents import create_deep_agent

def get_weather(city: str) -> str:
    """Получить погоду для указанного города."""
    return f"It's always sunny in {city}!"

agent = create_deep_agent(
    tools=[get_weather],
    system_prompt="Вы полезный ассистент",
)

# Запуск агента
agent.invoke(
    {"messages": [{"role": "user", "content": "какая погода в сан-франциско"}]}
)

Главные выводы

  • Deep Agents — это agent harness, построенный на LangChain и runtime LangGraph.
  • Встроенное планирование через инструмент write_todos для декомпозиции многошаговых задач.
  • Инструменты файловой системы для управления большим контекстом и снижения нагрузки на окно промпта.
  • Запуск субагентов с изолированным контекстом через встроенный инструмент task.
  • Поддержка постоянной памяти между потоками через LangGraph Memory Store.

Ознакомиться с репозиторием и документацией.