Исследовательские агенты врут. Решение — состязательная верификация утверждений
Почему AI research-агенты дают ложную уверенность и как delve меняет доверительную модель через claim-level верификацию.
Вы спросили AI research-агента — получили уверенный 2000-словный ответ с цитатами. Два источника не существуют. Три “факта” противоречат друг другу. Синтез звучит авторитетно, но построен на непроверенных утверждениях.
Это не редкий случай. Это архитектурная особенность текущих систем.
Проблема
Research-агенты оптимизированы под связность, не под корректность. Они собирают источники, строят синтез — но никогда не проверяют, держатся ли конкретные утверждения при проверке. Модель отказа выглядит так: правдоподобно звучащий отчёт, где 20-30% фактических утверждений неверны или не поддаются верификации.
Это хуже, чем отсутствие исследования. Потому что создаёт ложную уверенность.
Проблема не в “галлюцинациях источников” — это симптом. Проблема в том, что агент никогда не ставил под сомнение свои промежуточные выводы. Каждое утверждение в синтезе принималось как данность из предыдущего шага. Цепочка рассуждений без единой точки разрыва.
Контекст
Ландшафт уже плотный. OpenAI Deep Research, Perplexity, Exa. Из открытых: node-deepresearch, deep-research (dzhng), gpt-researcher, WebResearcher, storm, WebAgent — семь проектов только в ближайших аналогах.
Все они закрывают одно: retrieval + synthesis. Найти релевантные источники, создать связный отчёт. Это сложно и они делают это хорошо.
Чего нет ни у одного: claim-level adversarial verification. Извлечь атомарные утверждения из синтеза и независимо оспорить каждое.
Это пробел. Не маркетинговый тезис — буквально отсутствующий шаг в каждом из семи проектов, которые мы разбирали.
Решение: delve
delve — плагин для Claude Code. Пятистадийный пайплайн:
SCAN → DECOMPOSE → DIVE → VERIFY → SYNTHESIZE
/delve "WebSocket vs SSE для real-time приложений" --depth deep
SCAN — предварительная разведка: источники, временной охват, первичные противоречия. Определяет, что именно нужно раскопать.
DECOMPOSE — разбивает вопрос на суб-топики. Для “WebSocket vs SSE” это может быть: latency под нагрузкой, proxy compatibility, browser support, server resource model, reconnect behaviour. Каждый суб-топик получает отдельную нить исследования.
DIVE — параллельные подагенты (2-6 в зависимости от --depth) исследуют каждый суб-топик независимо. Каждый агент трекает original_sources — первоисточники, не репосты и пересказы. Это предотвращает press-release amplification: ситуацию, когда один маркетинговый пресс-релиз цитируется через 12 промежуточных статей, создавая иллюзию множества независимых источников.
VERIFY — дифференцирующий шаг. Из черновика синтеза извлекаются атомарные утверждения:
claim_1: "SSE не поддерживает бинарные данные"
claim_2: "WebSocket требует дополнительной логики для reconnect"
claim_3: "HTTP/2 устраняет лимит 6 соединений для SSE"
Для каждого утверждения запускается независимый fact-checker. Результат — три статуса: verified, partially-verified, unverified. Итоговый синтез явно маркирует каждое утверждение своим статусом.
SYNTHESIZE — финальный отчёт со встроенными метаданными доверия. Не просто “вот ответ”, а “вот ответ и вот что из него держится при проверке”.
Как выглядит вывод
## Вывод
WebSocket предпочтительнее для bidirectional протоколов и бинарных данных.
SSE проще в реализации для server-push сценариев.
## Верификация утверждений
✓ verified SSE использует обычные HTTP-соединения, упрощая proxy-конфигурацию
✓ verified WebSocket требует явной логики reconnect на клиенте
~ partial HTTP/2 мультиплексирование снимает лимит соединений SSE [зависит от сервера]
✗ unverified SSE не поддерживает бинарные данные [спецификация допускает через base64]
## Источники
4 independent · 1 amplified chain detected
“Amplified chain detected” — это original_sources tracking в действии: delve нашёл источник, который цитируется через несколько промежуточных публикаций как будто это независимые данные.
Инфраструктурные детали
Resume support. Состояние сохраняется в ~/.cache/delve/runs/. Прерванный на DIVE run восстанавливается с того же места — полезно при --depth deep, где полный прогон может занять 15-20 минут.
Sensitivity routing. По умолчанию delve может использовать несколько провайдеров для ускорения. Для конфиденциальных запросов: --providers claude — всё остаётся внутри одного провайдера.
Depth levels. --depth quick (2 подагента, ~5 минут) / --depth standard (4, ~10 минут) / --depth deep (6, ~20 минут). VERIFY всегда включён — только масштаб меняется.
Инсайт
Ключевое дизайн-решение: не “больше контекста”, а “принудительное оспаривание каждого утверждения”. Retrieval — нерешённая проблема. Верификация — другая нерешённая проблема.
Шаг VERIFY добавляет 40-60% к общему времени. Это осознанный выбор: платишь временем за принципиально другую доверительную модель.
Честное ограничение: верификация настолько хороша, насколько хороши источники верификатора. Для cutting-edge исследований, нишевых технических областей или актуальных событий часть утверждений останется unverified — не потому что неверна, а потому что независимые источники недоступны. Модель качества делает это явным, а не скрывает под “уверенным синтезом”.
Именно это и есть полезное свойство: unverified — это сигнал, не провал. Он говорит “здесь нужно копать руками”.
Установка
claude plugin marketplace add heurema/emporium
claude plugin install delve@emporium
Затем:
/delve "ваш вопрос" --depth standard
Обратная связь
Delve в активной разработке. Если верификатор выносит некорректный вердикт, пайплайн застревает на стадии или resume не подхватывает прерванный run — можно сообщить прямо из Claude Code.
Установите Reporter:
claude plugin install reporter@emporium
Затем: /report bug или /report feature или /report question
Reporter автоматически определяет, что вы работаете с продуктом heurema, прикрепляет контекст среды и показывает предпросмотр перед отправкой.
Ссылки
- delve на GitHub
- skill7.dev/plugins/delve
- Архитектура: docs/how-it-works.md
- reporter — отчёты из Claude Code
#context-engineering #claude-code #deep-research #verification #agents