deep-research — многоисточниковый разбор субагентами
Статус: beta (боевого прогона не было) · Версия: 1.1.0 · Обновлён: 2026-08-05
· Роль: оркестратор прогона (субагенты получают выжимку references/subagent-brief.md
и сам скилл не читают)
Скилл про оркестровку, а не про метод. Метод и законы достоверности живут в
sci-search: citation-green, разметка ✅/📗/⚠️, приоритет источников, лестница
транспорта, карта доступности баз — оттуда, и здесь не переписываются. Здесь — как
развернуть эти законы на десяток параллельных агентов и собрать результат, не потеряв
провенанс.
Задача скилла — превратить вопрос, на который в одиночку уходит день чтения, в управляемый прогон: разложить, разослать, собрать, добрать пробелы, проверить находки чужими руками, выдать отчёт, где у каждого утверждения виден уровень проверки.
Когда использовать
- Обзор состояния области: «что вообще есть по теме», «кто это уже решил».
- Проверка «не изобретаем ли велосипед» перед постройкой своего инструмента.
- Сравнение решений/подходов/приборов по нескольким осям сразу.
- Сбор фактуры под статью или концепцию, когда источников заведомо больше десятка.
- Разбор чужого утверждения, которое опирается на много источников сразу.
Когда НЕ использовать
- Один факт, одно число, одна ссылка →
sci-searchнапрямую. Фан-аут ради единственного значения — трата токенов и лишний слой пересказа между источником и ответом. - Поиск по своему коду/репозиторию →
Grep/Glob. - Аудит готового артефакта (чужой статьи, кода, отчёта) →
fact-audit. - Вопрос, ответ на который выводится из первых принципов — сначала вывод.
1. Что доходит до субагента, а что нет
| Что | Статус | Практический вывод |
|---|---|---|
CLAUDE.md (вся иерархия) |
доходит ✅ | citation-green, запрет выдумки, actor≠verifier работают: они в корневом CLAUDE.md |
| Скиллы | не преднагружаются, но инструмент Skill и список скиллов субагенту доступны |
приказать первым ходом Skill("sci-search"); агент не обязан догадаться сам |
MEMORY.md (индекс) |
⚠️ наблюдался доставленным дословно (сверка 01.08), доки говорят обратное — возможна разница харнессов | не полагаться; связанные файлы памяти не доходят точно |
Explore, Plan |
пропускают CLAUDE.md вовсе |
для фактологии и вердиктов непригодны, только поиск по коду |
Адрес проверки: ~/.claude/projects/…/memory/ref-subagent-spawn-rules.md (доки Claude
Code 31.07.2026 + поправка по наблюдению субагента 01.08).
Отсюда правило, нарушение которого обесценивает весь прогон:
В ТЗ каждого субагента — и поискового, и верифицирующего — вставляется блок
references/subagent-brief.mdцеликом, дословно. Плюс приказ загрузитьsci-searchнулевым ходом. Одно не заменяет другое: скилл даёт полноту, блок страхует на случай, если скилл не загрузился, и задаёт приоритеты.
Ссылка вида «работай по правилам контура» без вставленного блока — пустая строка: агент не знает, о каких правилах речь.
Для поисковых направлений — general-purpose. Для верификации — тоже
general-purpose: верификатору нужны WebFetch/WebSearch и браузер, а
cavecrew-reviewer имеет только Read/Grep/Bash и веб-источник открыть не может
(вернёт разбор текста задания, похожий на верификацию).
Управление глубиной: инструмент Agent принимает model и subagent_type, поля
effort у него нет — глубина задаётся моделью. Параметр effort
(low/medium/high) существует у agent() внутри скриптов Workflow; там и
применять: low — механический сбор реквизитов, medium — сверка утверждения с
первоисточником, high — разбор расхождений и адверсариальная верификация.
2. Разложение вопроса: углы, а не подтемы
Типовая ошибка — нарезать вопрос на последовательные подтемы («история → текущее состояние → перспективы»). Такая нарезка даёт три пересказа одного корпуса: агенты идут в одни и те же базы одними и теми же запросами.
Правильная нарезка — по независимым УГЛАМ поиска, каждый слеп к остальным и физически ходит в другие места:
| Ось | Пример для вопроса «чем мерить радон в помещении» | Даёт независимость |
|---|---|---|
| По типу источника | статьи / нормативы / datasheet производителей | да |
| По языку и рынку | англоязычная литература / РФ-нормативы и eLIBRARY | да |
| По отрицанию | что в области не работает и почему отвергнуто | да |
| По сущности | приборы / методики / метрологические требования | нет, фасеты одного корпуса |
| По времени | действующая редакция / что заменено и чем | нет, фасеты одного корпуса |
Критерий независимости: два направления, найдя один и тот же факт, пришли к нему разными путями. Тогда совпадение — триангуляция, а не эхо.
Две нижние оси — вторичные: они нарезают работу, но триангуляцию по ним не засчитывать, совпадение между ними ничего не подтверждает.
Направление «по отрицанию» включать всегда: что уже пробовали и отбросили — самая ценная и самая пропускаемая часть картины. Исключение — режим «глянь, что есть» (§5), где оно опускается сознательно и это фиксируется в отчёте.
3. Доменные модули поиска
references/search-modules.md — семь модулей: научные статьи, стандарты и нормативы,
ядерные и физические данные, патенты, оборудование и datasheet, открытый код и
репозитории, русскоязычные источники. В каждом — грабли, специфичные для типа
вопроса; общая карта доступности баз не дублируется, она в sci-search §4.
Модуль вставляется в ТЗ субагента вместе с блоком из §4.
4. ТЗ субагента
Полный текст — references/subagent-brief.md. Вставлять файлом целиком, не
пересказом: при пересказе теряются ключи команд и оговорки. Меняется только строка
ЗАДАЧА, рабочий каталог, потолок и приложенный доменный модуль.
Отдельная часть того же файла — постановка для верификатора: тот же блок плюс задание на опровержение.
5. Конвейер прогона
Ш1 Разведка вручную — нащупать термины и границы вопроса, 1–2 запроса,
под загруженным sci-search
Ш2 Нарезка на углы — §2
Ш3 Фан-аут — по субагенту на угол, блок §4 + модуль §3,
свой рабочий каталог и потолок каждому
Ш4 Сборка — §6, конфликты разводятся, не усредняются
Ш5 Добор пробелов — новые направления из «не найдено» и «сверх ТЗ», в цикле
Ш6 Верификация находок — §7, вслепую, чужими руками
Ш7 Отчёт + корпус — §8, §9
Ш1 не пропускать. Фан-аут по неправильно понятому термину даёт пять качественных
отчётов не о том. Одна ручная разведка до спавна дешевле пяти перезапусков. Оркестратор
на Ш1 сам идёт в веб — значит сам работает под загруженным sci-search, как и любой
агент контура.
Масштаб задаёт стартовое число направлений, но не критерий остановки:
| Режим | Направлений | Добор | Верификация |
|---|---|---|---|
| «глянь, что есть» | 3–4 | не запускается, фиксируется в отчёте | ключевые утверждения |
| «разберись подробно» | 5–7 | до исчерпания | ключевые утверждения |
| «исчерпывающе» | 7+ | до исчерпания | каждая находка, несколько линз |
Критерий остановки добора — всегда исчерпание, а не счётчик направлений: два подряд круга без нового = сухо. Счётчик «сделаю пять и хватит» отрезает хвост, а в хвосте обычно лежит то, ради чего разбор затевался. Единственное исключение — режим «глянь, что есть», где добор не запускается сознательно.
Верификация обязательна для утверждений, на которых стоит вывод или решение, в ЛЮБОМ масштабе. Режим меняет её объём, не факт её наличия.
Фон и параллельность. Субагенты по умолчанию уходят в фон, уведомление приходит по завершении. Правило жёсткое: результат незавершённого агента не выдумывать и не предсказывать. Пока уведомления нет — направление «в работе», а не «вероятно, нашло». Спросили о статусе до уведомления — так и отвечать.
Провалившееся направление. Пустой отчёт, обрыв или отчёт, явно нарушающий §4 — регулярное событие на прогоне из пяти-семи агентов. Политика: сузить задачу и перезапустить один раз; повторный провал — перевести направление в «не найдено» с указанием причины провала, не в «здесь ничего нет».
Больше семи направлений или нужен детерминированный цикл — разворачивать через
инструмент Workflow(...) (не путать со скиллом workflow, который генерирует
шаблоны AGENTS.md и ничего не спавнит): фан-аут в скрипте, pipeline по умолчанию,
барьер только когда следующий этап нуждается в ПОЛНОМ наборе предыдущего. Если
инструмент в харнессе недоступен — три-семь параллельных вызовов Agent покрывают
типовой прогон без него.
6. Сборка: где теряется правда
Сборка — не склейка отчётов. Пять обязательных операций:
Дедупликация по факту, а не по формулировке. Два агента, нашедшие одно число в одном источнике, — это один факт, а не подтверждение. Триангуляция засчитывается, только когда пути независимы (§2).
Конфликты источников разводятся. Источники дают разное — в отчёт идут оба значения с методиками и причиной расхождения. Усреднить или выбрать удобное — потерять информацию, которая обычно и есть главный результат.
Расхождение ОТЧЁТОВ — отдельный случай. Два агента по-разному прочитали один и тот же источник: не выбирать более уверенный отчёт, а идти к источнику самому либо третьим агентом. Уверенность формулировки не коррелирует с правотой.
«Не найдено» переносится как есть, с перечнем мест поиска, и никогда не конвертируется в «не существует». Если вывод строится на отрицании — отрицание проверяется другим методом, чем то, которым найдено: грепом нашли отсутствие — проверять чтением; поиском нашли — проверять через другую базу и другой язык. Проверка отрицания тем же инструментом циркулярна.
Утверждение без ссылки — главный подозреваемый. Измерено на сплошном аудите
comparison.html (контур ARCH-BECQMONI, 30.07.2026, восемь слепых верификаторов,
свыше 460 проверенных утверждений): из 126 утверждений колонки BecqMoni 74 шли без
адреса файл:строка; обе блокирующие находки и все три меняющие практический вывод
неполноты оказались среди этих 74, и ни одно утверждение СО ссылкой неверным не
оказалось. Ссылка не оформление, а фильтр. Утверждение субагента без адреса в сводку
переносится только с ⚠️ и явной пометкой «адрес не предоставлен» — либо возвращается
агенту за адресом.
Скачанное сохраняется. PDF и снимки страниц остаются в каталоге прогона с полными путями в отчёте. Через сутки URL может отдавать другое, и цитата станет непроверяемой.
7. Адверсариальная верификация находок
actor ≠ verifier — свои же находки сам не заверяю. Ключевые утверждения (те, на
которых стоит вывод или решение) отдаются отдельному агенту вслепую: он получает
утверждение и адрес источника, но не рассуждения нашедшего и не выводы сводки.
ТЗ верификатора включает блок references/subagent-brief.md целиком — иначе он
не получит ни запрета выдумки, ни разметки, ни требования дословной цитаты и вернёт
«подтверждено» без основания. Верификатор — последний фильтр перед отчётом, экономить
на его ТЗ бессмысленно.
Задание формулируется на опровержение, не на подтверждение: агент, которому сказали «проверь», склонен подтверждать. При сомнении — умолчание в пользу опровержения.
Ключевая находка проверяется не менее чем двумя разными линзами, а не двумя одинаковыми скептиками: содержание источника / актуальность редакции / соответствие цитаты контексту / воспроизводимость. Разнообразие ловит то, чего избыточность не ловит.
Исход фиксируется, а не стирается:
| Результат | Что делать |
|---|---|
| Все линзы подтвердили | остаётся с исходным уровнем |
| Часть линз не подтвердила | ⚠️ + описание разногласия в основном разделе |
| Большинство (≥2 из 2–3) опровергли | переводится в раздел «Отозванное и оспоренное» с указанием, кто и на каком основании не подтвердил |
Тихо удалять опровергнутую находку нельзя — теряется честность отчёта. Только явный аддендум: расхождение верификатора с автором само по себе результат.
Общий свод правил адверсариальной проверки — code-audit-core и censor (шкала
severity, six-corner, адъюдикация необратимого); здесь — только та их часть, что
касается веб-фактологии.
8. Отчёт
### Вывод
3–7 предложений. Что установлено и с какой уверенностью. Прямо, без разгона.
### Найдено
| Утверждение | Источник (полный URL/DOI) | Дата обращения | Уровень | Цитата | Направление |
|---|---|---|---|---|---|
### Не найдено
Что искал и ГДЕ искал — перечень баз, запросов, языков.
Формулировка «не найдено в …», не «не существует».
### Расхождения
Где источники не сходятся, на сколько, почему, что рекомендовано.
### Отозванное и оспоренное
Что не подтвердила верификация, кем и на каком основании.
### Сверх задания
Что важного попалось, о чём не спрашивали.
### Уровень уверенности
Высокий / Средний / Низкий — с причиной.
Колонка «Направление» держит трассировку находки до породившего её ТЗ — без неё непонятно, чей отчёт перепроверять при расхождении.
Сводка уровней обязательна: сколько утверждений ✅, сколько 📗, сколько ⚠️. Отчёт, где всё ✅, — повод перепроверить, а не порадоваться.
Публичный текст по итогам — через rn-article-style; документ оператору — через
md-doc (обязательная HTML-версия).
9. Корпус
Факты уровня ✅ и 📗 дописываются в
%USERPROFILE%\.claude\sci-search-corpus\verified-facts.jsonl по формату sci-search
§9. Пишет оркестратор на Ш4, сразу после сборки — субагентам запись не поручается:
параллельный append нескольких агентов в один JSONL перемежает строки. Если направлений
много и запись хочется распараллелить — каждый агент пишет в свой
verified-facts.<slug>.jsonl в каталоге прогона, оркестратор сливает.
Перед прогоном корпус проверяется грепом: часть направлений может отпасть, не начавшись.
Запись — только Python с явным encoding='utf-8' либо -Encoding utf8 в PowerShell:
наивный Add-Content на этой машине портит кириллицу.
Анти-паттерны
- ❌ Послать субагента, не вставив блок
subagent-brief.md(§1) — он получит задачу без правил и будет искать «как умеет»: реквизиты вместо содержания, уровни без цитат. - ❌ Вставить блок пересказом, а не файлом — теряются ключи команд и оговорки.
- ❌ Использовать
Explore/Planдля фактологии — они не видят дажеCLAUDE.md. - ❌ Дать верификацию агенту без веб-инструментов — он вернёт разбор задания, похожий на проверку.
- ❌ Нарезать вопрос на последовательные подтемы вместо независимых углов (§2) и принять эхо за триангуляцию; засчитать триангуляцию по вторичным осям.
- ❌ Пропустить ручную разведку и разослать пять агентов по неверно понятому термину.
- ❌ Остановить добор по счётчику направлений, а не по исчерпанию (§5).
- ❌ Написать за незавершённого агента, что он «вероятно, нашёл» — уведомление никогда не сочиняется.
- ❌ Усреднить расходящиеся источники или выбрать удобное значение.
- ❌ При расхождении отчётов выбрать более уверенный вместо похода к источнику.
- ❌ Превратить «не найдено» в «не существует» — и проверить отрицание тем же методом, которым его нашли.
- ❌ Перенести утверждение субагента в сводку без адреса источника (§6).
- ❌ Заверить собственные находки самому; дать верификатору задание «проверь» вместо «опровергни»; тихо стереть опровергнутую находку.
- ❌ Принять отчёт субагента на веру: он мог сам нарушить блок §4 — отчёт читается на предмет утверждений без ссылок и уровней, проставленных без цитаты.
- ❌ Не дописать проверенные факты в корпус — следующий прогон ищет заново.
Связанные скиллы
sci-search— метод и достоверность единичного факта; законы оттуда, этот скилл их разворачивает на параллельный обход.six-corner-audit— проверка ОДНОГО завершённого артефакта на гейте перед необратимым действием; ближайший сосед по силе триггера, не путать.fact-audit— сплошной аудит своего проекта вширь и ссылочной массы статьи целиком.code-audit-core,censor— общие правила адверсариального аудита и надзора;code-audit-coreограничен кодом внешнего заказчика через Telegram-intake.terminology— сверка терминов до написания, чтобы не чеканить своих.rn-article-style,md-doc— если по итогам пишется текст наружу или отчёт оператору.- Скилл
workflow— шаблоны многоагентных ролей уровня проекта; не путать с инструментомWorkflow(...), который делает фан-аут.