TL;DR
Multi-Tool LLM Agent — агентная система для проверки фактов, которая использует три специализированных инструмента: веб-поиск для сбора актуальной информации, оценку достоверности источников (высокая/средняя/низкая надёжность) и верификацию числовых утверждений через вычисления. Система работает по принципу ReAct Framework: планирует шаги проверки → выполняет инструменты → корректирует план на основе результатов. Весь процесс логируется в persistent memory с метаданными (URL, дата, поисковые запросы).
Одиночные LLM плохо справляются с fact-checking из-за устаревших знаний (knowledge cutoff), склонности к галлюцинациям (генерируют правдоподобные, но ложные факты) и отсутствия структурированного сбора доказательств. Особенно сильно точность падает при проверке переформулированной дезинформации — когда ложь "отбелена" через косметические изменения текста. LLM без инструментов не умеют взвешивать источники по надёжности и часто останавливаются после одного-двух поисковых запросов, оставляя утверждения непроверенными.
Метод решает проблему через трёхэтапный workflow: (1) Planning — анализ утверждения, выделение ключевых фактов и чисел, составление плана проверки с последовательностью инструментов; (2) Execution — динамическое выполнение плана, где агент может корректировать стратегию (например, изменить поисковый запрос, если первый не дал результатов); (3) Synthesis — синтез всех доказательств с весами по достоверности источников, построение цепочки рассуждений и финальный вердикт с градациями уверенности.
Схема метода
ЭТАП 1: Planning and Analysis
Вход: Утверждение для проверки
↓
Анализ → выделить:
• Ключевые факты для проверки
• Числовые утверждения
• План: какие инструменты + в какой последовательности
ЭТАП 2: Multi-Tool Execution (ReAct loop)
Следуй плану → выполняй инструменты:
• Web Search Tool → найди информацию, сохрани с метаданными
• Source Credibility Tool → оцени источник (high/medium/low)
• Numerical Verification Tool → проверь математику
↓
Observation → если нужно, скорректируй план и повтори
↓
Сохраняй всё в persistent memory
ЭТАП 3: Evidence Synthesis
Собери доказательства из memory:
• Взвесь каждое доказательство по credibility score
• Разреши конфликты (приоритет — надёжным источникам)
• Построй reasoning chain: как доказательства → вывод
• Генерируй вердикт: не просто true/false, а степень уверенности
↓
Итоговый отчёт:
• Финальный результат
• Шаг-за-шагом reasoning
• Полные citations с URL
• Ограничения/неопределённости
Все три этапа выполняются в одном агентном процессе. Агент может делать несколько итераций на этапе Execution, пока не соберёт достаточно доказательств.
Пример применения
Задача: Твой друг скинул в чат новость из Telegram-канала: "Инфляция в России за 2024 год составила 8.5%, что на 15% ниже прогнозов ЦБ". Ты хочешь проверить — правда ли это, или числа не сходятся.
Промпт:
Проверь это утверждение как fact-checker с тремя инструментами:
УТВЕРЖДЕНИЕ: "Инфляция в России за 2024 год составила 8.5%, что на 15% ниже прогнозов ЦБ"
ШАГ 1 — PLANNING:
Выдели:
- Факты для проверки (инфляция 8.5%, прогноз ЦБ)
- Числовые утверждения ("на 15% ниже")
- План инструментов и их последовательность
ШАГ 2 — EXECUTION (используй эти "инструменты"):
1. WEB SEARCH:
- Найди официальные данные Росстата/ЦБ по инфляции 2024
- Найди прогнозы ЦБ на 2024 год
- Сохрани ссылки, даты публикаций, источники
2. SOURCE CREDIBILITY:
- Оцени каждый источник: высокая надёжность (Росстат, ЦБ РФ), средняя (РБК, Коммерсант), низкая (Telegram без источников)
- Дай score каждому доказательству
3. NUMERICAL VERIFICATION:
- Проверь математику: если прогноз был X%, а факт 8.5%, то это "на 15% ниже"?
- Покажи расчёты
Если первый поиск не дал чётких данных — скорректируй запрос и попробуй ещё раз.
ШАГ 3 — SYNTHESIS:
- Собери все доказательства
- Взвесь по credibility scores
- Построй reasoning chain: как каждое доказательство влияет на вывод
- Дай вердикт: TRUE/FALSE/PARTIALLY TRUE + степень уверенности
- Укажи ограничения (если есть)
ФОРМАТ ОТВЕТА:
1. План проверки
2. Лог выполнения (что нашёл, какие источники, scores)
3. Reasoning chain
4. Финальный вердикт с объяснением
Результат:
LLM пройдёт три этапа и выдаст:
- План проверки — что будет искать, в какой последовательности
- Лог доказательств — список найденных источников с метаданными (URL, дата, credibility score). Например: "Росстат (высокая надёжность): инфляция 8.9%, источник: rosstat.gov.ru, дата: 15.01.2025"
- Числовую проверку — расчёт: если прогноз был 10%, а факт 8.5%, это снижение на 15% или на 1.5 п.п.? Покажет арифметику.
- Reasoning chain — как связаны доказательства: "Официальные данные Росстата показывают 8.9%, а не 8.5%. Прогноз ЦБ был 10%, значит расхождение 1.5 п.п., а не 15%"
- Вердикт — "PARTIALLY TRUE: инфляция близка к заявленной (8.9% vs 8.5%), но математика некорректна — это снижение на 1.5 процентных пункта, не на 15%"
Весь процесс будет прозрачным — ты увидишь какие источники использовались, как они взвешивались, и почему сделан такой вывод.
Почему это работает
LLM без инструментов опирается на параметрическое знание из обучения — оно устаревает (knowledge cutoff) и может быть неточным (галлюцинации). При проверке фактов модель часто "додумывает" правдоподобные, но ложные детали, особенно если утверждение касается недавних событий или специфических чисел. Проблема усугубляется при проверке переформулированной дезинформации — когда ложь косметически изменена, LLM без динамического поиска не может её распознать.
LLM хорошо умеет структурировать процессы (planning), извлекать информацию из текста (parsing) и строить логические цепочки (reasoning). Агентная архитектура использует эти сильные стороны, добавляя доступ к актуальным данным через веб-поиск и объективную оценку через credibility scoring.
Метод работает через трёхступенчатую фильтрацию:
- Web Search даёт свежие данные вместо устаревшего знания
- Credibility Assessment взвешивает источники — Росстат > РБК > Telegram без источников
- Numerical Verification отлавливает математические манипуляции, которые LLM может пропустить
Persistent memory позволяет агенту "не забывать" найденные доказательства при длинной проверке, а ReAct loop (Reason + Act) даёт возможность корректировать стратегию на ходу: если первый поисковый запрос не дал результатов, агент переформулирует и попробует снова, вместо того чтобы сдаться после одной попытки.
Рычаги управления:
- Credibility tiers (high/medium/low) → можешь добавить свои категории источников под свою задачу
- Number of search iterations → уменьши для простых утверждений (экономия токенов), увеличь для сложных (глубокая проверка)
- Evidence threshold → задай минимум доказательств перед выводом
- Reasoning chain depth → требуй больше/меньше промежуточных шагов в объяснении
Шаблон промпта
Проверь это утверждение как fact-checker с тремя инструментами:
УТВЕРЖДЕНИЕ: {текст_для_проверки}
ШАГ 1 — PLANNING:
Проанализируй утверждение и выдели:
- Ключевые факты для проверки
- Числовые утверждения (если есть)
- План: какие инструменты использовать и в какой последовательности
ШАГ 2 — EXECUTION:
Используй эти "инструменты" последовательно:
1. WEB SEARCH:
- Найди актуальную информацию из надёжных источников
- Сохрани для каждого найденного факта:
* Текст доказательства
* Источник (URL или название)
* Дата публикации
* Поисковый запрос, который использовал
2. SOURCE CREDIBILITY:
- Оцени каждый источник:
* Высокая надёжность: {примеры_высоконадёжных_источников}
* Средняя надёжность: {примеры_средненадёжных_источников}
* Низкая надёжность: {примеры_низконадёжных_источников}
- Присвой credibility score: high/medium/low
3. NUMERICAL VERIFICATION (если есть числа):
- Проверь математические расчёты
- Покажи вычисления явно
- Выяви несоответствия
Если первая попытка не дала чёткого результата:
→ Скорректируй поисковый запрос
→ Попробуй другие источники
→ Продолжай пока не соберёшь достаточно доказательств
ШАГ 3 — SYNTHESIS:
- Собери все доказательства из execution
- Взвесь каждое по credibility score
- Разреши конфликты (приоритет — высоконадёжным источникам)
- Построй reasoning chain: как доказательства ведут к выводу
- Сформулируй вердикт:
- TRUE / FALSE / PARTIALLY TRUE / UNVERIFIABLE
- Степень уверенности (высокая/средняя/низкая)
- Объяснение почему
ФОРМАТ ОТВЕТА:
1. План проверки (что буду проверять, в какой последовательности)
2. Лог выполнения:
- Каждый найденный факт + источник + дата + credibility score
- Числовые проверки (если есть)
3. Reasoning chain (как доказательства связаны с выводом)
4. Финальный вердикт:
- Вердикт (TRUE/FALSE/PARTIALLY TRUE/UNVERIFIABLE)
- Степень уверенности
- Развёрнутое объяснение
- Ограничения проверки (если есть)
Что подставлять:
{текст_для_проверки}— утверждение, новость, статистика, которую нужно проверить{примеры_высоконадёжных_источников}— для твоей темы: например, "Росстат, ЦБ РФ, Минфин" для экономики{примеры_средненадёжных_источников}— "РБК, Коммерсант, ТАСС"{примеры_низконадёжных_источников}— "Telegram-каналы без источников, форумы, соцсети"
🚀 Быстрый старт — вставь в чат:
Вот шаблон Multi-Tool Fact-Checking Agent. Адаптируй под мою задачу: {опиши что нужно проверить и в какой области}.
Задавай вопросы, чтобы правильно заполнить поля.
[вставить шаблон выше]
LLM спросит:
- Что проверяем — чтобы выделить ключевые факты
- Какие источники считать надёжными — для credibility scoring под твою тему
- Есть ли числовые утверждения — чтобы понять нужна ли математическая проверка
Она возьмёт трёхэтапную структуру (Planning → Execution → Synthesis) и адаптирует под твою задачу. Ты получишь рабочий промпт с логированием доказательств и прозрачным reasoning.
Почему это работает
Persistent memory как рабочая тетрадь. LLM без инструментов "забывает" ранние находки, когда контекст разрастается — как студент, который зачитался одним параграфом учебника и забыл что было в начале главы. Агент ведёт лог доказательств (URL, даты, credibility scores) в отдельной памяти, откуда выборочно достаёт нужное на финальном этапе. Это как рабочая тетрадь — записал по ходу, потом свёл всё вместе.
ReAct loop вместо одной попытки. Одиночная LLM делает один веб-поиск и останавливается, даже если результаты неполные. ReAct Framework (Reason + Act) превращает это в цикл с обратной связью: агент анализирует результат инструмента → если недостаточно, корректирует запрос → повторяет поиск. Как человек, который гуглит, не находит с первого раза, переформулирует запрос и пробует снова — только быстрее.
Credibility scoring против "всё равно важно". LLM без взвешивания источников обрабатывает Telegram-пост и официальный документ ЦБ как равнозначные. Credibility assessment даёт веса: high-credibility (Росстат, ЦБ) перевешивает medium (РБК) и low (форумы). При конфликте доказательств — побеждает надёжный источник. Это как в суде: показания эксперта весят больше, чем слухи с улицы.
Numerical verification ловит математические манипуляции. LLM часто пропускает арифметические ошибки в утверждениях: "инфляция снизилась на 15%" звучит правдоподобно, но калькулятор показывает "снижение 1.5 процентных пункта, не 15%". Отдельный инструмент для чисел выполняет вычисления явно вместо того, чтобы "на глаз" прикинуть правильность.
Ограничения
⚠️ Язык и география: Система тестировалась на английских текстах и американо-центричных темах (политика США, COVID-19). Применимость к другим языкам и культурным контекстам не проверялась. Для русскоязычного контекста потребуется обновить список credibility sources под российские медиа.
⚠️ Временные рамки датасетов: Тестирование на данных 2007-2016 (LIAR) и 2020-2021 (COVID-19) не гарантирует эффективность на свежей дезинформации 2024-2025 года. Новые форматы фейков могут требовать адаптации.
⚠️ Фиксированный список источников: Credibility tool работает по предзаданному списку из 2,847 источников. Новые медиа или нишевые, но надёжные источники могут быть неправильно оценены или пропущены. Список нужно регулярно обновлять.
⚠️ Только текст: Метод не работает с мультимодальной дезинформацией — поддельные фото, видео, аудио. Если фейк включает визуальную манипуляцию или deepfake, агент его не поймает.
⚠️ Требует инфраструктуру для полной автоматизации: Хотя принципы можно применить в чате вручную, полная автоматизация (LangGraph + Tavily API + persistent storage) требует код и настройку инфраструктуры. Без этого — ручная адаптация workflow в диалоге с LLM.
Как исследовали
Команда взяла три стандартных датасета для проверки: FakeNewsNet (44,613 новостных статей, реальные vs фейк), LIAR (12,836 политических заявлений с шестью уровнями правдивости — от полностью правда до полностью ложь), и COVID-19 Misinformation (5,182 утверждения о пандемии). Для credibility assessment собрали отдельный датасет — 2,847 источников с рейтингами надёжности (правительственные агентства, новостные организации, соцсети).
Агент построен на LangGraph framework с GPT-4o как backbone LLM. Веб-поиск работает через Tavily API (специально для LLM-агентов), credibility tool — это функция, сверяющая домен с базой рейтингов, numerical verification — Python code interpreter для вычислений.
Сравнивали с тремя категориями методов: (1) традиционные ML (SVM, Random Forest) — исторический baseline; (2) глубокое обучение (BERT, RoBERTa) — обученные на датасетах; (3) одиночный GPT-4o — без инструментов, просто промпт.
Результаты удивили по двум пунктам:
Во-первых, наибольший прирост на сложных задачах. На простом бинарном FakeNewsNet (реал/фейк) агент выиграл +4.6% F1 у GPT-4o. Но на LIAR с шестью градациями правдивости (от "полностью правда" до "полностью ложь") разрыв вырос до +5.1% accuracy. Это показывает: чем тоньше градации, тем критичнее структурированный сбор доказательств — одиночная LLM "на глаз" не справляется.
Во-вторых, разрыв в robustness test оказался драматическим. Когда дезинформацию "отбелили" через LLM (переписали, сохранив смысл, но изменив формулировки), GPT-4o обвалился с 85.1% до 65.7% accuracy (–19.4%). Агент упал меньше: с 89.7% до 80.2% (–9.5%). Одиночная LLM полагается на паттерны текста, а переформулирование ломает эти паттерны. Агент собирает фактические доказательства из источников, поэтому косметические изменения текста его не сбивают — факты остаются фактами, как их ни перепиши.
Ablation study (отключение инструментов по одному) показал:
- Без Web Search — самый большой провал (–4.2% на LIAR) → свежая информация критична
- Без Credibility Assessment — тоже больно (–2.0%) → взвешивание источников важно
- Без Numerical Verification — меньший, но заметный урон (–0.8%) → математика нужна для точечных случаев
Эффект инструментов синергичен: full toolset лучше, чем сумма любых двух. Это говорит о том, что инструменты усиливают друг друга, а не просто складываются.
Для оценки качества отчётов использовали GPT-4o как судью (LLM-as-judge): модель оценивала релевантность доказательств, консистентность (поддерживают ли доказательства вывод) и разнообразие источников. Агент превзошёл одиночный GPT-4o на 19 пунктов по разнообразию (0.84 vs 0.66) — external web search даёт больше разных источников, чем внутреннее знание модели.
Оригинал из исследования
Контекст: Это упрощённая схема workflow из статьи, которую исследователи использовали для структурирования агента. Полная реализация включала LangGraph orchestration и ReAct loops.
Agent Workflow:
Stage 1: Planning and Analysis
Input: Claim to verify
↓
Content Analysis:
• Identify core factual claims
• Extract numerical assertions
• Formulate verification plan:
- Claims requiring verification
- Tools to use for each claim
- Sequence of tool invocation
Stage 2: Multi-Tool Execution (ReAct Loop)
Follow plan → Invoke specialized tools:
Tool 1: Web Search
• Extract key terms from claim
• Conduct web search
• Process web pages → extract text content
• Store in memory with metadata:
- Source URL
- Publication date
- Search terms used
Tool 2: Source Credibility Assessment
• Evaluate each source using pre-compiled dataset
• Categorize into tiers:
- High-credibility (news orgs, academic, gov)
- Medium-credibility (regional pubs, industry)
- Low-credibility (unverified sites, social media)
• Assign credibility score
Tool 3: Numerical Claim Verification
• Identify numerical claims in input
• Perform calculations to verify relationships
• Flag mathematical inconsistencies
↓
Dynamic Observation:
• If results insufficient → reformulate search
• Update plan based on tool outputs
• Iterate until sufficient evidence gathered
↓
Persistent Memory: Store all findings
Stage 3: Evidence Synthesis
↓
Evidence Integration:
• Retrieve relevant info from memory
• Weight by credibility score and relevance
• Identify conflicting evidence
• Prioritize high-credibility sources
↓
Reasoning Chain Construction:
• Link evidence to conclusion explicitly
• Show how each data point contributes
↓
Conclusion Formulation:
• Generate detailed verdict (beyond true/false)
• Include degrees of certainty
• Identify partially correct claims
Output Report:
• Final verdict
• Step-by-step reasoning
• Complete citations
• Limitations/uncertainties
Адаптации и экстраполяции
💡 Адаптация для личных решений
Workflow подходит не только для проверки новостей, но и для верификации советов/рекомендаций перед принятием решения. Например, перед покупкой дорогого продукта или выбором медицинской процедуры.
Пример: Проверка совета врача
Проверь это медицинское утверждение:
УТВЕРЖДЕНИЕ: "Врач сказал, что витамин D в дозировке 10,000 МЕ ежедневно безопасен для взрослых и помогает от депрессии"
ШАГ 1 — PLANNING:
Что проверить:
- Безопасная дозировка витамина D для взрослых
- Связь витамина D с депрессией (есть ли доказательства)
- Риски передозировки
План инструментов:
1. Web Search → медицинские источники (WHO, NIH, российские Минздрав, медицинские журналы)
2. Credibility → взвесить источники (peer-reviewed > блоги)
3. Numerical Check → проверить дозировку 10,000 МЕ vs рекомендованные нормы
ШАГ 2 — EXECUTION:
[используй три инструмента как в основном шаблоне]
Credibility tiers для медицины:
- High: ВОЗ, NIH, Минздрав РФ, Cochrane, peer-reviewed journals
- Medium: Медицинские порталы (WebMD, Mayo Clinic, русские медпорталы)
- Low: Блоги, форумы, соцсети
ШАГ 3 — SYNTHESIS:
Собери доказательства → построй reasoning chain → вердикт:
- Безопасна ли дозировка?
- Подтверждена ли эффективность?
- Есть ли противопоказания?
Ценность: Врач может ошибаться или быть устаревшим. Такая проверка перед важным медицинским решением даёт второе мнение на основе свежих источников, не заменяя врача, но дополняя консультацию актуальными данными и независимой оценкой.
🔧 Техника: Упрощённая двухступенчатая проверка для быстрых задач
Если утверждение простое (один факт, не требует глубокой проверки), полный трёхэтапный workflow избыточен. Можно свернуть Planning и Execution в один шаг, сэкономив токены.
Изменения:
- Убрать Planning как отдельный этап
- Сразу в Execution: "Найди доказательства + оцени источники + проверь числа (если есть)"
- Synthesis остаётся
Быстрый промпт:
Быстрая проверка факта:
УТВЕРЖДЕНИЕ: {короткое_утверждение}
ЗАДАЧА:
1. Найди 2-3 надёжных источника по теме
2. Оцени их credibility (government/academic = high, news = medium, social = low)
3. Если есть числа — проверь арифметику
4. Дай вердикт: TRUE/FALSE/PARTIALLY + короткое объяснение
Формат:
- Доказательства: [источник + credibility score]
- Вердикт: [TRUE/FALSE/PARTIALLY]
- Объяснение: [1-2 предложения]
Когда использовать: Проверка простых фактов ("столица X", "дата события", "базовая статистика"). Экономит ~30-40% токенов за счёт упрощения структуры.
Ресурсы
Toward Verifiable Misinformation Detection: A Multi-Tool LLM Agent Framework — Zikun Cui (Stanford), Tianyi Huang (UC Berkeley), Chia-En Chiang (UC Berkeley), Cuiqianhe Du (UC Berkeley)
Ключевые отсылки:
- ReAct Framework (Yao et al., 2022) — архитектура для синергии reasoning + acting в LLM
- Agentic Reasoning framework (Wu et al., 2025) — итеративный цикл planning, acting, reflecting
- FakeNewsNet, LIAR, COVID-19 datasets — стандартные бенчмарки для misinformation detection
- LangGraph framework (v0.4.9) — оркестрация multi-step reasoning
- Tavily API — веб-поиск для LLM-агентов
