Deep Agents — готовый каркас для LLM-агентов от LangChain
📂 Исходный код на GitHubОпенсорсный агентный харнесс Deep Agents от LangChain: подагенты, файловая система, управление контекстом, память, скиллы и human-in-the-loop поверх LangGraph. Работает с любыми LLM с tool calling.
Deep Agents — готовый каркас для LLM-агентов от LangChain
Deep Agents — опенсорсная Python-библиотека от команды LangChain. Авторы называют её «batteries-included agent harness»: агент с продуманными настройками по умолчанию, который работает сразу из коробки. Любую его часть можно расширить, заменить или переопределить без форка.
Под капотом лежит LangGraph. Оттуда Deep Agents берёт стриминг, сохранение состояния и чекпоинты. Для трассировки, оценки и деплоя предусмотрен LangSmith. Лицензия — MIT, на GitHub у проекта около 30 тысяч звёзд. Есть и JavaScript/TypeScript-версия — deepagents.js.
Идея выросла из Claude Code. Команда LangChain попыталась понять, что делает его универсальным инструментом, и развить эту мысль дальше.
Зачем ещё один слой в стеке LangChain
Стек LangChain состоит из трёх уровней. Внизу находится LangGraph — рантайм для графов состояний. Над ним — create_agent в LangChain, минимальный каркас агента. Deep Agents — это надстройка над create_agent с батарейками в комплекте: файловая система, подагенты, управление контекстом и скиллы уже включены.
Выбор уровня зависит от задачи:
| Инструмент | Когда выбирать |
|---|---|
| LangGraph | Стандартный цикл агента не подходит, нужен свой граф |
| create_agent | Нужен лёгкий каркас без встроенных middleware |
| Deep Agents | Нужен полный набор сразу: планирование, контекст, делегирование |
Уровни сочетаются между собой. Любой граф LangGraph можно передать в Deep Agent как подагента. Так своя оркестрация встанет рядом с настройками по умолчанию. Обзор всей экосистемы собран в отдельном гайде.
Что входит в комплект
- Подагенты — делегирование задач агентам с изолированными окнами контекста. Главная задача агента не забивается мелкими подзадачами.
- Файловая система — чтение, запись, редактирование и поиск. Хранилище подключаемое: локальная папка, песочница или удалённый бэкенд.
- Управление контекстом — суммаризация длинных диалогов и выгрузка результатов инструментов на диск. Это ключ к работе над задачами, которые живут часами.
- Доступ к shell — запуск команд в песочнице на выбор.
- Постоянная память — подключаемые хранилища состояния. Агент помнит прошлые сессии.
- Human-in-the-loop — перед запуском инструмента человек может одобрить, поправить или отклонить вызов.
- Скиллы — переиспользуемые поведения, которые агент подгружает по требованию.
- Инструменты — свои функции или любой MCP-сервер.
Почему это важно? Долгие многошаговые задачи ломают обычных агентов. Контекст переполняется результатами инструментов. План теряется в длинном диалоге. Deep Agents решает обе проблемы по умолчанию: результаты выгружаются на диск, а диалог сжимается в сводку.
Быстрый старт
Установка через uv (подойдёт и pip):
uv add deepagents
Минимальный агент в несколько строк:
from deepagents import create_deep_agent
agent = create_deep_agent(
model="openai:gpt-6-astra",
tools=[my_custom_tool],
system_prompt="You are a research assistant.",
)
result = agent.invoke({"messages": "Research LangGraph and write a summary"})
Такой агент умеет планировать, читать и писать файлы, следить за своим контекстом. Дальше можно добавить свои инструменты, поменять модель, настроить подагентов и промпты. Полные детали — в документации, справочник по API — на reference.langchain.com.
Внутри Deep Agents работает через middleware. Каждая возможность — отдельный слой: скиллы, суммаризация, файловые операции. Не нужен какой-то слой? Его можно отключить. Нужен свой? Пишется свой middleware по тому же интерфейсу. Поэтому «расширить или заменить» здесь не маркетинг, а реальный API.
Подагенты: делегирование без потери фокуса
Отдельно стоит рассказать про подагентов. Главная проблема длинных задач — контекст. Агент читает большой файл, получает длинный вывод инструмента, и вот уже окно заполнено мусором. Deep Agents решает это делегированием.
Главный агент пишет задачу и передаёт её подагенту. Подагент получает чистое окно контекста. Он работает: читает файлы, запускает команды, ищет. Наверх возвращается только итог. Шум остаётся внутри подагента.
Как подагента можно использовать и свой граф LangGraph. Так нестандартная оркестрация встраивается в готовый харнесс.
Deep Agents Code: агент для терминала
На базе библиотеки собран готовый продукт — Deep Agents Code. Это агент для терминала в духе Claude Code или Cursor, но работает с любой LLM. Установка одной командой:
curl -LsSf https://langch.in/dcode | bash
Полный список возможностей — в документации Deep Agents Code.
Какие модели подходят
Deep Agents работает с любой моделью, которая умеет вызывать инструменты (tool calling). Сценариев три:
- фронтовые API — OpenAI, Anthropic, Google;
- open-weight модели на хостингах вроде Baseten или Fireworks;
- локальные модели через Ollama, vLLM или llama.cpp.
Подключение идёт через любую чат-модель LangChain. Привязки к конкретному вендору нет.
Продакшн и безопасность
Deep Agents рассчитан на продакшн. Основой служит LangGraph со стримингом, чекпоинтами и персистентностью. Для трассировки, оценки и мониторинга проект рекомендует LangSmith. Пошаговый гайд по выводу в продакшн — в разделе Going to production.
С моделью безопасности авторы честны. Deep Agents следует принципу «доверяй LLM»: агент может сделать всё, что позволяют его инструменты. Границы нужно ставить на уровне инструментов и песочницы. Ждать, что модель ограничит себя сама, не стоит.
С чего начать
В репозитории есть папка examples с рабочими агентами. Там лежат deep research, генератор контента, свой вариант «Ralph-режима» и другие примеры. Вопросы можно задать на форуме сообщества.
Deep Agents — удачный выбор, если нужен агент «под ключ»: с файлами, подагентами, памятью и скиллами. Это типовой сценарий: исследовательские агенты, обработка больших документов, автоматизация задач на часы. А когда стандартный каркас начнёт мешать, каждый его слой заменяется своим кодом.