Знакомство с библиотекой DeepAgents от LangChain и практический пример их работы

Создать базового агента на основе большой языковой модели (LLM), который многократно вызывает внешние инструменты, довольно просто. Однако такие агенты часто сталкиваются с трудностями при выполнении длинных и сложных задач, поскольку им не хватает способности планировать свои действия и управлять работой в течение длительного времени. Их можно считать «неглубокими» в плане исполнения.

Библиотека DeepAgents разработана для преодоления этого ограничения путём реализации общей архитектуры, вдохновлённой передовыми приложениями, такими как Deep Research и Claude Code.

Основные возможности DeepAgents

1. Планирование и разбиение задач: агенты DeepAgents оснащены встроенным инструментом write_todos, который помогает агентам разбивать крупные задачи на более мелкие, управляемые шаги. Они могут отслеживать свой прогресс и корректировать план по мере получения новой информации.
2. Управление контекстом: используя файловые инструменты, такие как ls, readfile, writefile и edit_file, агенты могут сохранять информацию вне своей краткосрочной памяти. Это предотвращает переполнение контекста и позволяет им более эффективно справляться с большими или более подробными задачами.
3. Создание вспомогательных агентов: встроенный инструмент task позволяет агенту создавать более мелких, специализированных вспомогательных агентов. Эти вспомогательные агенты работают над конкретными частями задачи, не засоряя контекст основного агента.
4. Долгосрочная память: при поддержке LangGraph агенты могут запоминать информацию между сеансами. Это означает, что они могут вспоминать прошлую работу, продолжать предыдущие разговоры и опираться на более ранний прогресс.

Настройка зависимостей

Для работы с DeepAgents необходимо установить следующие библиотеки:

!pip install deepagents tavily-python langchain-google-genai langchain-openai

Переменные окружения

В этом руководстве мы будем использовать ключ API OpenAI для нашего глубокого агента. Однако для справки мы также покажем, как можно использовать модель Gemini. Вы можете выбрать любого поставщика моделей по своему усмотрению — OpenAI, Gemini, Anthropic или других, поскольку DeepAgents без проблем работает с различными бэкендами.

Импортирование необходимых библиотек

import os
from getpass import getpass
os.environ[‘TAVILYAPIKEY’] = getpass(‘Enter Tavily API Key: ‘)
os.environ[‘OPENAIAPIKEY’] = getpass(‘Enter OpenAI API Key: ‘)
os.environ[‘GOOGLEAPIKEY’] = getpass(‘Enter Google API Key: ‘)

Инструменты

Как и обычные агенты, использующие инструменты, глубокий агент также может быть оснащён набором инструментов для выполнения задач. В этом примере мы предоставим нашему агенту доступ к инструменту поиска Tavily, который он может использовать для сбора информации из интернета в режиме реального времени.

Вспомогательные агенты

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

В нашем примере мы определили двух вспомогательных агентов:

* policy-research-agent — специализированный исследователь, который проводит углублённый анализ политики ИИ, нормативных актов и этических рамок по всему миру. Он использует инструмент поиска в интернете для сбора актуальной информации и готовит хорошо структурированный профессиональный отчёт.
* policy-critique-agent — редакторский агент, отвечающий за проверку сгенерированного отчёта на точность, полноту и тон. Он обеспечивает сбалансированность, достоверность и соответствие исследования региональным правовым рамкам.

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

Системный запрос

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

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

Основной агент

Здесь мы определяем нашего основного глубокого агента с помощью функции createdeepagent(). Мы инициализируем модель с помощью OpenAI gpt-4o, но, как показано в закомментированной строке, вы можете легко переключиться на модель Google Gemini 2.5 Flash, если захотите. Агент настроен с помощью инструмента поиска в интернете, нашего пользовательского системного запроса policyresearchinstructions и двух вспомогательных агентов — одного для углублённого исследования и другого для критики.

По умолчанию DeepAgents внутренне использует Claude Sonnet 4.5 в качестве своей модели, если она не указана явно, но библиотека позволяет полностью гибко интегрировать OpenAI, Gemini, Anthropic или другие LLM, поддерживаемые LangChain.

Вызов агента

query = «What are the latest updates on the EU AI Act and its global impact?»
result = agent.invoke({«messages»: [{«role»: «user», «content»: query}]})

Важность инженерии контекста

LLMs, как и люди, имеют ограниченное внимание — чем больше информации им даётся, тем сложнее им оставаться сосредоточенными и точно вспоминать детали. Это явление, известное как context rot, означает, что простое увеличение окна контекста не гарантирует повышения производительности.

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

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

1. Какие основные возможности предоставляет библиотека DeepAgents и как они помогают в решении сложных задач?

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

2. Какие инструменты и вспомогательные агенты используются в примере работы с DeepAgents?

Ответ: в примере работы с DeepAgents используется инструмент поиска Tavily для сбора информации из интернета в режиме реального времени. Также определены два вспомогательных агента: policy-research-agent для углублённого анализа политики ИИ и policy-critique-agent для проверки сгенерированного отчёта на точность и полноту.

3. Как DeepAgents решают проблему context rot (ухудшение контекста) при работе с большими объёмами информации?

Ответ: DeepAgents решают проблему context rot путём инженерии контекста, которая гарантирует, что в ограниченный контекст агента включена только наиболее релевантная и полезная информация. Это позволяет агенту рассуждать эффективно и оставаться сосредоточенным даже в сложных многоэтапных задачах.

4. Какие библиотеки необходимо установить для работы с DeepAgents?

Ответ: для работы с DeepAgents необходимо установить следующие библиотеки: deepagents, tavily-python, langchain-google-genai, langchain-openai.

5. Какие модели LLM можно использовать с DeepAgents и как это сделать?

Ответ: DeepAgents поддерживает интеграцию с различными моделями LLM, включая OpenAI, Gemini, Anthropic и другие. Для использования другой модели достаточно изменить настройки в коде, например, переключиться с модели OpenAI gpt-4o на модель Google Gemini 2.5 Flash.

Источник