Вы когда-нибудь запускали автономного агента для исследования, а он возвращал вам красивый, убедительный и абсолютно выдуманный отчёт? (Да, такое бывает). Большинство исследовательских агентов — это просто продвинутые парсеры с галлюцинациями. Они собирают кучу данных, но не могут отличить научную статью от блога домохозяйки.
Deep Research Agent ломает эту схему. Это не просто ещё один скрипт на LangChain. Это полноценная система из четырёх специализированных агентов, которые работают как исследовательский отдел: один планирует, другой ищет, третий проверяет, четвёртый пишет. И самое главное — у них есть встроенный «детектор брехни» для источников.
Что делает этот агент особенным? Четыре мозга вместо одного
Представьте, что вы нанимаете команду для исследования. Не одного стажёра с ChatGPT, а четырёх специалистов:
- Planner Agent — руководитель проекта. Разбивает большой запрос на конкретные подзадачи. «Исследовать влияние ИИ на рынок труда» превращает в «1) Найти статистику по автоматизации, 2) Проанализировать отчёты McKinsey, 3) Сравнить с данными за 2020 год».
- Search Agent — сыщик. Ищет информацию в интернете, но не просто гуглит. Он понимает, какие источники заслуживают доверия (arXiv, официальные отчёты), а какие нет (форумы, личные блоги).
- Verification Agent — скептик. Его работа — не верить ничему. Проверяет каждый факт по нескольким источникам, оценивает авторитетность, ищет противоречия. Если Search Agent нашёл статью, Verification Agent проверяет, кто автор, где опубликовано, есть ли цитаты.
- Report Writer Agent — редактор. Собирает проверенные данные в структурированный отчёт с ссылками, выводами и даже оценкой достоверности каждого утверждения.
Архитектура напоминает суб-агентов, но здесь каждый агент имеет чёткую специализацию и не может выполнять чужую работу. Planner не умеет гуглить, Search не умеет проверять. Это снижает риск галлюцинаций.
Система оценки достоверности: как работает «кредитный скоринг» для контента
Вот где начинается магия. У каждого источника есть «рейтинг доверия», который вычисляется по трём параметрам:
| Параметр | Что оценивает | Примеры |
|---|---|---|
| Домен | Авторитетность сайта | .edu, .gov → высокий, личные блоги → низкий |
| Контекст | Наличие ссылок, цитат, данных | Статья с 20 ссылками на исследования > статья без ссылок |
| Согласованность | Подтверждение из других источников | Если 5 источников говорят одно, а один — другое, верим первым |
Verification Agent использует эту систему как чек-лист. Нашёл статью на arXiv с экспериментальными данными и ссылками на GitHub? Рейтинг 9/10. Нашёл пост в Twitter от «эксперта» без подтверждения? Рейтинг 2/10. Агент может вообще отбросить источники с рейтингом ниже 4.
Быстрая настройка: от клонирования до первого отчёта за 15 минут
1 Ставим зависимости и получаем ключи
Клонируем репозиторий и ставим зависимости. Вам понадобятся Python 3.10+ и минимум 4 ГБ оперативки (агенты жрут память).
git clone https://github.com/assafelovic/deep-research-agent.git
cd deep-research-agent
pip install -r requirements.txt
Теперь ключи API. Проект поддерживает OpenAI, Anthropic и через OpenRouter — десятки моделей. Для начала хватит OpenAI:
export OPENAI_API_KEY="sk-your-key-here"
export TAVILY_API_KEY="your-tavily-key" # для поиска
Tavily — платный поисковик для AI. Есть бесплатный tier, но для серьёзных исследований лучше купить подписку. Бесплатный Google Search через SerpAPI работает хуже — капча, лимиты, медленнее.
2 Настраиваем агентов под свои задачи
Открываем config.yaml. Здесь можно менять буквально всё — от промптов до порогов доверия.
agents:
planner:
model: "gpt-4-turbo"
temperature: 0.1 # почти нулевая креативность
searcher:
max_sources: 10
excluded_domains: ["twitter.com", "reddit.com"] # игнорируем соцсети
verifier:
min_confidence: 0.7 # минимальный порог доверия
cross_check_count: 3 # сколько источников для перекрёстной проверки
report:
format: "markdown" # или html, json
include_citations: true
Хотите, чтобы агент игнорировал Википедию? Добавьте wikipedia.org в excluded_domains. Нужна более креативная структура отчёта? Поднимите temperature у Report Writer до 0.3.
3 Запускаем и смотрим, как агенты спорят друг с другом
Базовый запуск через CLI:
python main.py --query "Какие есть доказательства изменения климата за последние 5 лет?" --output report.md
Но интереснее смотреть в реальном времени. Включите verbose-режим:
python main.py --query "Эффективность mRNA вакцин против COVID-19" --verbose --stream
Вы увидите, как Planner разбивает запрос на подзадачи, Search Agent находит статьи, Verification Agent отвергает источники с низким рейтингом. Иногда агенты спорят — Verification может отклонить то, что Search считает хорошим. Это нормально.
LangGraph под капотом: как четыре агента не путаются в своих задачах
Вся магия координации — в LangGraph. Это не просто цепочка вызовов, а полноценный state machine. Каждый агент получает состояние (state), работает с ним, передаёт следующему.
Вот упрощённая схема графа:
from langgraph.graph import StateGraph, END
from typing import TypedDict
class ResearchState(TypedDict):
query: str
subtasks: list
sources: list
verified_sources: list
report: str
# Создаём граф
graph_builder = StateGraph(ResearchState)
# Добавляем узлы-агенты
graph_builder.add_node("planner", planner_agent)
graph_builder.add_node("searcher", search_agent)
graph_builder.add_node("verifier", verification_agent)
graph_builder.add_node("writer", report_writer)
# Определяем порядок: planner → searcher → verifier → writer
graph_builder.add_edge("planner", "searcher")
graph_builder.add_edge("searcher", "verifier")
graph_builder.add_edge("verifier", "writer")
graph_builder.add_edge("writer", END)
# Запускаем
research_graph = graph_builder.compile()
result = research_graph.invoke({"query": "Ваш запрос здесь"})
Прелесть LangGraph в том, что вы можете добавлять условия. Например, если Verification Agent находит слишком мало источников (меньше 3), он может вернуться к Search Agent за дополнительным поиском. Или если Report Writer получает противоречивые данные, он может запросить повторную проверку.
Где это работает, а где нет? Реальные кейсы против маркетинга
Я тестировал агента на трёх типах запросов:
- Технические исследования («Сравнение архитектур трансформеров за 2024 год») — работает отлично. Находит arXiv, официальные документы, сравнивает метрики.
- Бизнес-аналитика («Рынок электромобилей в Европе») — хорошо, но иногда упускает свежие новости (менее суток). Verification Agent слишком строг к новостным сайтам.
- Спорные темы («Эффективность гомеопатии») — здесь начинаются проблемы. Агент находит кучу исследований «против», но Verification отвергает многие источники из-за низкого рейтинга доменов. В итоге отчёт получается скудным.
Главный недостаток — скорость. Полноценное исследование с проверкой занимает 3-8 минут. Для сравнения: обычный агент без проверки справляется за 30-60 секунд. Но вы получаете не просто текст, а отчёт с цитатами и оценкой достоверности каждого утверждения.
Альтернативы: когда не стоит использовать Deep Research Agent
Этот инструмент — не серебряная пуля. Вот когда лучше выбрать что-то другое:
| Задача | Лучший вариант | Почему |
|---|---|---|
| Быстрый поиск фактов | Perplexity AI | Быстрее, проще, бесплатно |
| Анализ локальных документов | RAG-система | Deep Research Agent не работает с вашими PDF |
| Креативные задачи | Один мощный LLM (GPT-4, Claude) | Система проверки убивает креативность |
Если вам нужен глубокий анализ с проверкой фактов — это ваш выбор. Если просто «найти информацию про X» — используйте обычный поиск.
Модификации и хаки: как выжать из агента максимум
Базовая версия хороша, но её можно улучшить:
- Добавьте векторный поиск для уже проверенных источников. После первого запуска сохраняйте результаты в векторную БД. При новых запросах сначала ищите там — сэкономите время и API-вызовы.
- Замените Tavily на смесь Google Search + Serper. Tavily дорогой. Бесплатный Google через SerpAPI + платный Serper для сложных запросов дают тот же результат за меньшие деньги.
- Настройте промпты под свою область. По умолчанию промпты универсальные. Если вы исследуете медицинские темы, добавьте в Verification Agent проверку на PubMed ID, наличие клинических испытаний.
Вот пример кастомного промпта для Search Agent в технической области:
TECH_SEARCH_PROMPT = """
Ты ищешь техническую информацию по запросу: {query}
Приоритетные источники:
1. arXiv (препринты исследований)
2. GitHub (код, репозитории)
3. Официальная документация (docs.*)
4. Stack Overflow (только ответы с 50+ голосами)
Игнорируй:
- Личные блоги без ссылок на код
- Форумы без меток решений
- Видео (кроме официальных докладов конференций)
"""
Этот промпт заставит агента искать конкретно технический контент, отсеивая мусор.
Не перегружайте агента слишком строгими правилами. Если исключить все блоги, можно пропустить качественный контент от инженеров из FAANG. Лучше настройте веса: arXiv = 1.0, официальная документация = 0.9, технические блоги с кодом = 0.7.
Кому подойдёт этот инструмент? (И кому нет)
Берите Deep Research Agent, если:
- Вы аналитик, которому нужно готовить обзоры с цитатами
- Учёный, следящий за новыми исследованиями в своей области
- Журналист, проверяющий факты для статьи
- Разработчик, который хочет понять, как работают сложные агентные системы (отличный учебный проект)
Не тратьте время, если:
- Вам нужен простой поисковик (используйте Perplexity)
- Вы работаете с закрытыми данными (нужен RAG)
- У вас нет бюджета на API-вызовы (каждый запуск стоит $0.10-$0.50)
Главный секрет успеха с этим агентом — понимать его ограничения. Он не заменит эксперта, но станет отличным ассистентом, который сделает чёрную работу: соберёт источники, проверит их, структурирует. Ваша задача — интерпретировать результат.
Попробуйте запустить его на вопросе, в котором разбираетесь. Увидите, как он пропускает важные нюансы. Затем настройте промпты под свою область. После 3-4 итераций получите инструмент, который экономит часы работы.
И помните: даже самый продвинутый агент — всего лишь инструмент. Критическое мышление всё ещё требуется. (Да, я только что потратил 2000 слов, чтобы сказать «думайте своей головой»).