TL;DR
Это исследование сравнивает четыре способа дать LLM проверять научные утверждения: без поиска, один поиск по тексту утверждения, агент, который сам пишет запросы (до 4 штук), и «оракул», которому сразу выдали нужные статьи. Лучшим из реалистичных вариантов оказался агент. Он сам превращает утверждение в короткий запрос из ключевых терминов, и находит нужную статью втрое чаще, чем поиск «в лоб».
Главная боль в другом: модель без поиска цитирует реальные, но совершенно нерелевантные статьи. Номера PubMed существуют, а статья при этом про очки для детей, хотя утверждение про цитокины. Из 327 существующих цитат релевантными оказались 3. Поэтому проверка «ссылка существует» ничего не гарантирует. У агента с поиском релевантны около 67% цитат. Модель в таком случае не ищет подтверждение в памяти, а берёт статьи из того, что реально нашла.
Метод простой: агенту разрешают переформулировать запрос, объясняют правила поиска, требуют ссылаться только на найденное, а цитаты затем проверяют отдельным запросом «статья изучает именно эти объекты и связь из утверждения?». Узкое место не рассуждение, а поиск: когда модели дали нужные статьи, точность выросла с ~60% до 79–86%.
Схема метода
ШАГ 1: Модель получает утверждение + правила поиска → короткий запрос (2–6 ключевых терминов)
ШАГ 2: Поиск → показываем только новые результаты → модель решает: искать ещё или отвечать
(лимит 4 поиска, после лимита — принудительный ответ)
ШАГ 3: Вердикт → JSON: label (SUPPORT / CONTRADICT / NEI), cited_pmids, rationale
(цитировать можно только то, что вернул поиск)
ШАГ 4: Отдельный запрос-судья: для каждой цитаты "изучает ли статья именно эти объекты и связь?" → yes/no
Шаги 1–3 — один агентный цикл. Шаг 4 — отдельный запрос, лучше в другой модели.
Пример применения
Задача: Вы руководите контентом в бренде БАДов на Wildberries. Маркетолог принёс карточку: «Коллаген в капсулах восстанавливает суставной хрящ у людей старше 40». Нужно понять, есть ли у тезиса опора в литературе, и не получить от модели красивые, но пустые ссылки.
Промпт (для агента с доступом к поиску: Claude с веб-поиском, ChatGPT Search, Perplexity и т. п.):
Ты — ассистент по проверке медицинских утверждений. Реши, ПОДТВЕРЖДАЕТ ли научная литература утверждение (SUPPORT), ОПРОВЕРГАЕТ его (CONTRADICT) или информации НЕДОСТАТОЧНО (NEI). Используй NEI, если найденные данные не отвечают на утверждение напрямую.
Утверждение: «Пероральный коллаген восстанавливает суставной хрящ у людей старше 40 лет».
Ты можешь искать в PubMed и научных источниках. Поиск работает по ключевым словам (термины соединяются через AND), поэтому лучше всего короткие запросы из 2–6 ключевых терминов. Можно использовать OR. Не вставляй утверждение целиком как запрос. Пиши запросы сам: выдели сущности (вещество, состояние, популяция) и исправь опечатки. У тебя максимум 4 поиска.
Выбирай на каждом шаге: либо новый поисковый запрос, либо ответ.
Вердикт основывай только на найденных статьях. Ссылайся только на те, что реально вернул поиск, и никогда не называй статьи «по памяти».
Формат ответа — JSON:
{"label": "...", "cited_pmids": [...], "rationale": "..."}
Результат: Модель сделает несколько поисков с короткими запросами из терминов (вещество, сустав, возраст). Затем выдаст JSON с вердиктом, списком найденных статей и обоснованием. Все цитаты должны быть из выдачи поиска. Если прямых данных нет, ожидайте NEI, а не уверенное «да» или «нет». Вторым запросом (шаблон ниже) прогоните цитаты через проверку релевантности и перед публикацией откройте 2–3 источника руками.
Почему это работает
Слабость. Если подать утверждение в поиск целиком, ключевые слова не совпадают с текстом статей. Опечатка в названии вещества ломает совпадение. Без поиска модель вспоминает правдоподобные номера статей: формат верный, номера существуют, но связи с утверждением нет. Модель угадывает, как выглядит ссылка, а не помнит, что в ней написано.
Сильная сторона. Модель хорошо делает две вещи. Первая: превращать длинную фразу в короткий запрос из сущностей и чинить опечатки (это и дало прирост поиска в 3 раза). Вторая: рассуждать над текстом, который перед ней лежит. С правильными статьями точность достигла 79–86%. Рассуждение у модели в порядке, не хватает материала.
Как метод это использует. Он отдаёт модели ту часть, где она сильна: формулировку запроса. Он запрещает ту, где она врёт: цитирование по памяти. Правило «цитируй только найденное» почти убрало «внешние» цитаты у агентов (0–2,6%). Отдельная проверка релевантности ловит то, что проверка существования не видит.
Рычаги: - Лимит поисков (4 в исследовании). Агенты использовали в среднем 1,4–1,7 из 4. Поднимать лимит бессмысленно, пока не заставишь им пользоваться. - Правила запроса («2–6 терминов, OR, теги полей»): подстройте под свой источник: Google Scholar, Росстат, свою базу. - Строгость NEI. Агент реже говорит «недостаточно данных», чем должен (33–42% верных NEI против 72–81% у поиска «в лоб»). Если для вас дороже ложное «подтверждено», усилите требование к NEI. - Критерий судьи. «Только если статья изучает конкретные объекты и связь» — строго. Ослабите его, и пропустите больше «около темы».
Шаблон промпта
Это промпты из приложения исследования, переведённые на русский.
Агент поиска:
Ты — ассистент по проверке научных утверждений в области {область}.
Реши, ПОДТВЕРЖДАЕТ ли литература утверждение (SUPPORT), ОПРОВЕРГАЕТ его (CONTRADICT) или информации НЕДОСТАТОЧНО (NEI). Используй NEI, если найденные данные не отвечают на утверждение напрямую.
Утверждение: «{утверждение}»
Ты можешь искать в {источник_поиска}. Поиск работает по ключевым словам (термины соединяются через AND), поэтому лучше всего короткие запросы из 2–6 ключевых терминов. Можно использовать OR{и_теги_полей}. У тебя максимум {число} поисков.
На каждом шаге выбирай одно: поисковый запрос или ответ.
Вердикт основывай только на найденных статьях. Цитируй только то, что реально вернул поиск.
Формат ответа — JSON:
{"label": "SUPPORT | CONTRADICT | NEI", "cited_pmids": [...], "rationale": "..."}
Проверка цитат (отдельный запрос, лучше в другой модели):
Утверждение: «{утверждение}»
Цитируемая статья: {название_и_аннотация}
Ответь «да», только если статья изучает именно те объекты и ту связь, о которых говорится в утверждении (то есть могла бы правдоподобно его подтвердить или опровергнуть). Ответь «нет», если она не по теме или связана лишь отдалённо.
Что подставлять: {область} — медицина, нутрициология, финансы и т. п. {источник_поиска} — инструмент, который есть у агента. {число} — лимит поисков (в исследовании 4). {утверждение} — одна проверяемая фраза. Для проверки цитат берите название и аннотацию из найденного, а не из ответа модели.
🚀 Быстрый старт — вставь в чат:
Вот шаблон агента проверки утверждений и проверки цитат. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, какой у тебя поисковый инструмент, как он обрабатывает запросы (AND/OR, язык, теги), какая у тебя область и что для тебя дороже: пропустить ошибку или перестраховаться. Это нужно, чтобы правила запроса соответствовали твоему источнику. Остальное она возьмёт из шаблона.
Ограничения
⚠️ Пилотное исследование: на 100 утверждениях ни одно различие между реалистичными вариантами (агент, поиск «в лоб», без поиска) не достигло статистической значимости. Направление совпало у обеих моделей, но это тенденция, а не доказанный факт.
⚠️ Малые модели одного провайдера: тестировали быстрые облегчённые модели. На более мощных и на других семействах результаты могут отличаться.
⚠️ Агент всё равно находит мало: нужная статья находилась только в ~20% случаев. Прирост в 3 раза значим как доля, но абсолютный уровень низкий.
⚠️ Агент ленится искать: почти ничего не ищет сверх первого запроса и меньше говорит «недостаточно данных», чем следует. Совет «заставить искать минимум» авторы предлагают, но не проверяли.
⚠️ Судья релевантности — одна модель: он проверен лишь на 50 контрольных примерах (хорошо отличал, но выборка мала). Это не замена человеческой проверке критичных ссылок.
⚠️ «Ошибки» не всегда ошибки: метки датасета привязаны к конкретным аннотациям, а агент искал по всему PubMed 2026 года. Часть «промахов» могла быть новыми данными.
Как исследовали
Автор взял датасет SciFact: научные утверждения, размеченные экспертами как «подтверждает», «опровергает» или «недостаточно данных». Случайно выбрал 100 утверждений и прогнал их через четыре способа проверки на двух облегчённых моделях Gemini, а поиск вёл по настоящему PubMed. Модель, формат ответа и температура были одинаковы, менялся только «обвес» вокруг модели. Это позволило отделить влияние поиска от влияния самой модели.
Четыре режима: без поиска, один запрос из самого утверждения, агент с самостоятельными запросами (до 4) и «оракул» с готовыми правильными статьями. Оракул стал потолком: он показал, на что способны модели при идеальном поиске. Отдельно проверили цитаты: существует ли указанный номер, совпадает ли он с эталонной статьёй и релевантна ли она утверждению. Релевантность оценивала модель другого семейства (Qwen). Её проверили на контролях: 21 из 25 верных статей признала релевантными, 0 из 25 подложных.
Главные результаты. Поиск «в лоб» нашёл нужную статью только в 6% случаев и не улучшил точность. Он превратил уверенные ошибки в «недостаточно данных». Агент утроил долю находок (до 19–20%) и дал лучшую точность (62%), но разница не значима. Оракул дал 79–86%, то есть разрыв в 17–24 пункта значим, и узкое место именно в поиске. Самое яркое: 3 релевантных из 327 существующих цитат у модели без поиска против ~67% у агента. Из этого вывод для практики: «ссылка существует» — не защита.
Адаптации и экстраполяции
🔧 Техника: добавить минимум доказательств перед ответом → меньше ленивых ответов после одного поиска
Авторы предлагают этот шаг как идею (не проверяли). Допишите в промпт агента:
Не отвечай после первого поиска. Сделай минимум 2 разных запроса (например, по другому названию вещества или по синониму) и ответь, только если нашёл хотя бы одну статью, напрямую отвечающую на утверждение. Если после всех поисков такой статьи нет — NEI.
Эффект нужно проверить на своей выборке: сравните долю верных NEI до и после.
🔧 Техника: судья-фильтр на выходе → в отчёт попадают только релевантные цитаты
Экстраполяция принципа: перед сдачей отчёта пропустите каждую цитату через проверку релевантности и оставьте только «да»:
Для каждой цитаты в списке ниже ответь «да» или «нет» по критерию: статья изучает именно те объекты и ту связь, что в утверждении. Верни только цитаты с «да»; для остальных напиши, почему не подходят.
Утверждение: «{утверждение}»
Цитаты: {список_названий_и_аннотаций}
Это перенос идеи судьи из исследования на любые отчёты с цитатами: рыночные обзоры, юридические справки. Эффект за пределами биомедицины в работе не проверяли.
Ресурсы
- Работа: Real PMIDs, Wrong Papers: Harness Design for Biomedical Claim-Verification Agents — Mohammed Saqlain (независимый исследователь, Бангалор).
- Код, промпты и кэш вызовов: github.com/saqlain2204/real-pmids-wrong-papers
- Датасет: SciFact (Wadden et al., 2020).
- Связанные работы: ReAct (Yao et al., 2023), PaperQA/PaperQA2 (Lála et al., 2023; Skarlinski et al., 2024), MedRAG (Xiong et al., 2024), GeneGPT (Jin et al., 2024), анализ фальсификации цитат ChatGPT (Walters & Wilder, 2023).
