3,583 papers
arXiv:2610.29346 73 21 окт. 2026 г. FREE

Таксономия ошибок Deep Search и Deep Research агентов: где исследовательские агенты ломаются на длинной дистанции

КЛЮЧЕВАЯ СУТЬ
Синтаксис вызовов у современных агентов почти не ломается. Они ломаются на смысле: видят нужный факт в выдаче и не используют его. Метод позволяет по логу агента понять, где именно он сломался: сайт отдал 403, запрос кривой или агент остановился раньше времени и додумал таблицу сам. Фишка: сначала отсей поломки инфраструктуры, и только потом суди «мышление» агента. Разбор идёт в два прохода по закрытому списку таксономии ошибок (13 типов в двух слоях), поэтому «агент глупый» перестаёт быть диагнозом на все случаи.
Адаптировать под запрос
⚡

TL;DR

Исследователи разобрали по шагам логи агентов, которые сами ищут в интернете и собирают отчёты. Получился чеклист из 13 типов ошибок в двух слоях. Системный слой: сломанные вызовы инструментов, блокировки сайтов. Смысловой слой: что агент решил, как искал, когда остановился, как свёл источники. Чеклист можно использовать как рубрику для разбора логов (вручную или через LLM-судью) и как основу для правил в инструкции агенту.

Главная находка: ошибки синтаксиса у современных моделей почти исчезли. Агент редко ломает формат вызова. Он ломается на смысле. Он суёт URL в поисковую строку, ищет arXiv-ID через Wikipedia и останавливается раньше времени, смотрит только сниппеты и не открывает страницы. Он видит нужный факт в выдаче и не использует его. В длинных отчётах он теряет ваши ограничения и формат. Если данных не хватает, он выдумывает недостающее, чтобы закрыть структуру отчёта. Итоговая точность скрывает всё это: правильный ответ может прийти через кривой путь, а неправильный не скажет, где сломалось.

Метод идёт в два прохода. Сначала простой парсер вытаскивает из лога пары «что агент собирался сделать → какой вызов выполнил» и отсекает системные сбои. Затем LLM-судья по таксономии размечает смысловые ошибки. Так инфраструктурные проблемы не путаются с «агент плохо думает».

🔬

Схема метода

ШАГ 1: Парсинг лога → пары «мысль агента + вызов инструмента» на каждом шаге
        (регулярки, без LLM)
ШАГ 2: LLM-судья: совпадает ли намерение с вызовом? → системные ошибки
        (3 фазы: вызов инструмента / поиск / загрузка страницы)
ШАГ 3: LLM-судья по таксономии на полном логе → смысловые ошибки
        Deep Search: 5 типов | Deep Research: 3 типа
ШАГ 4: Подсчёт: какие ошибки доминируют, где каскады
        → решение: чинить инструкцию, инструменты или менять модель

Шаги 2 и 3 — отдельные запросы к судье. Сначала системные ошибки, потом смысловые, чтобы не списывать на «плохое мышление» то, что сломалось в инфраструктуре.

📌

Таксономия ошибок (сердце статьи)

Системный слой (общий для обоих типов агентов)

Фаза Тип ошибки Что происходит
Вызов инструмента Parsing Failure Нет корректных тегов, действие не извлекается
Incorrect Tool Name Агент выдумал несуществующий инструмент
Поиск Call Formatting Нет обязательных аргументов, нарушена схема
Tool-Function Mismatch Например, URL засунут в текстовый поиск вместо браузера
Irrelevant Query В запрос попали внутренние мысли или системные инструкции
Domain Tool Misalignment Не тот специализированный инструмент (arXiv-ID ищут через Wikipedia)
Syntactical Query Failure Запрос из мусора и спецсимволов, ноль результатов
Загрузка страницы Unsupported Modality Видео, аудио, сложный мультимодальный контент
Non-Existent Page Мёртвая ссылка
Anti-Scraping 403, капча, файрвол

Смысловой слой — Deep Search (поиск конкретных фактов)

  • Observation Neglect — нужное уже в выдаче, но в рассуждение не попало.
  • Surface-Level Skimming — опора на сниппеты, страницы не открываются, запросы переформулируются по кругу.
  • Premature Stopping — ответ выдан до сбора всех нужных данных. Типично для «найди все…» и многошагового счёта.
  • Rabbit Hole Trap — несколько шагов подряд в малополезных разделах или в петле, без возврата.
  • Ineffective Query — слишком общие запросы, повторы одного и того же при пустых результатах.

Смысловой слой — Deep Research (отчёты)

  • Contradiction Neglect and Sourcing Bias — источники противоречат друг другу, агент не сверяет, а опирается на первые или заметные.
  • Synthesis Hallucination — данных не хватает, пробелы закрыты знаниями «из головы» модели, а не найденным.
  • Goal Drifting — контекст разросся, ограничения и формат из исходной просьбы теряются.
🚀

Пример применения

Задача: Вы попросили исследовательского агента (Deep Research в ChatGPT, Claude с поиском или агента в Cursor) собрать все российские банковские карты с кэшбэком от 5% на АЗС и вернуть таблицу: банк, карта, условия, лимит, ссылка. Вернулось четыре карты и два «условия по данным банка» без ссылок. Вы подозреваете, что агент остановился рано и кое-что додумал. У вас есть лог шагов агента.

Промпт:

Ты — аудитор логов исследовательского агента. Ниже цель задачи и полный лог его шагов (мысли, вызовы инструментов, результаты).

Цель задачи: найти ВСЕ российские банковские карты с кэшбэком от 5% на АЗС и вернуть таблицу: банк, карта, условия, лимит, ссылка на источник.

Лог:

[вставить лог агента: все шаги с поисковыми запросами, открытыми страницами и финальным ответом]


Проведи разбор в два прохода.

ПРОХОД 1. Системные ошибки. Для каждого шага сопоставь, что агент собирался сделать, с тем, какой вызов он выполнил. Найди:
- Tool-Function Mismatch (например, URL в поисковой строке)
- Irrelevant Query (в запросе мысли или инструкции)
- Domain Tool Misalignment (не тот инструмент для типа источника)
- Syntactical Query Failure (запрос из мусора)
- Anti-Scraping / Non-Existent Page (блокировки, 403, капча, мёртвые ссылки)

ПРОХОД 2. Смысловые ошибки. Проверь по каждому типу, есть ли он, приведи номер шага и цитату из лога:
- Observation Neglect: нужный факт был в результатах, но не вошёл в рассуждение
- Surface-Level Skimming: опора на сниппеты, страницы не открывались
- Premature Stopping: ответ выдан до сбора всех кандидатов
- Rabbit Hole Trap: серия шагов в малополезных разделах или в петле
- Ineffective Query: слишком общие запросы или повторы
- Contradiction Neglect and Sourcing Bias: противоречия между источниками не сверены
- Synthesis Hallucination: ячейки таблицы заполнены без опоры на найденное
- Goal Drifting: потеряны ограничения из цели (порог 5%, АЗС, требуемые колонки)

ВЫВОД:
1. Таблица: тип ошибки | есть/нет | шаги | цитата-доказательство
2. Какие системные сбои агент преодолел сам, какие нет
3. Главная причина неполного результата (одна)
4. Три правки в инструкции агенту, которые убрали бы эти ошибки

Если типа ошибки нет, пиши «нет» и не придумывай. Если лога недостаточно для вывода, скажи об этом.

Результат: Модель выдаст таблицу по всем типам ошибок с номерами шагов и цитатами. Затем разделит системные сбои (блокировки, неверные инструменты) и смысловые. Отдельно назовёт главную причину неполной выдачи, например преждевременную остановку или опору на сниппеты. В конце даст три конкретные правки для инструкции агенту. Если ошибки не нашлось, судья должен написать «нет».

🧠

Почему это работает

Слабость: по итоговому ответу не понять, что сломалось. Правильный ответ мог прийти случайно. Неправильный не показывает, виноваты блокировки сайтов, кривой запрос или то, что агент не открыл страницу. Если чинить «вслепую», правки уходят не туда: инструкцию переписывают, хотя сайт просто отдавал 403.

Сильная сторона LLM: модель хорошо сопоставляет два текста, например «что агент собирался сделать» и «что он реально вызвал». Она неплохо находит в длинном логе конкретные паттерны, если дать ей закрытый список категорий. Пересказывать и классифицировать при готовой рубрике она умеет лучше, чем придумывать рубрику с нуля.

Как метод это использует: жёсткую часть (вытащить шаги из лога) делает парсер, а LLM занята только оценкой соответствия и смысла. Два слоя разделены, поэтому инфраструктурные сбои не списываются на «агент глупый». Закрытый список категорий с определениями не даёт судье придумывать ошибки.

Рычаги управления: - Список категорий. Оставь только те, что актуальны для твоей задачи. Для «найди все…» важны Premature Stopping и Surface Skimming, для отчётов — Synthesis Hallucination и Goal Drifting. - Требование цитаты и номера шага убирает «галлюцинированные» ошибки судьи. - Фраза «если типа нет, пиши нет» защищает от придумывания проблем. - Блок «три правки в инструкции» превращает диагностику в действие. Его можно убрать, если нужна только диагностика. - Цель задачи в начале нужна, чтобы судья мог проверить Goal Drifting и полноту.

📋

Шаблон промпта

Ты — аудитор логов исследовательского агента. Тебе даны цель задачи и полный лог шагов агента.

Цель задачи: {цель_и_ограничения_задачи}


{лог_агента}


Тип агента: {поиск_фактов_или_отчёт}

ПРОХОД 1. Системные ошибки.
Для каждого шага сопоставь намерение агента с вызовом. Найди:
- Tool-Function Mismatch
- Irrelevant Query
- Domain Tool Misalignment
- Syntactical Query Failure
- Anti-Scraping / Non-Existent Page / Unsupported Modality
- Incorrect Tool Name / Call Formatting / Parsing Failure

ПРОХОД 2. Смысловые ошибки.
Если тип агента = поиск фактов, проверь:
- Observation Neglect
- Surface-Level Skimming
- Premature Stopping
- Rabbit Hole Trap
- Ineffective Query
Если тип агента = отчёт, проверь:
- Contradiction Neglect and Sourcing Bias
- Synthesis Hallucination
- Goal Drifting

Для каждой найденной ошибки: номер шага + цитата из лога + почему это ошибка.
Если ошибки нет, пиши «нет». Не придумывай.

ВЫВОД:
1. Таблица: тип | есть/нет | шаги | цитата
2. Что агент преодолел сам, что нет
3. Главная причина плохого результата (одна)
4. {число_правок} правки в инструкции агенту

Что подставлять: - {цель_и_ограничения_задачи} — исходная просьба дословно, вместе с форматом и порогами. - {лог_агента} — шаги, поисковые запросы, открытые страницы, финальный ответ. - {поиск_фактов_или_отчёт} — выбери один тип. - {число_правок} — обычно 3.

🚀 Быстрый старт — вставь в чат:

Вот шаблон разбора лога исследовательского агента по таксономии ошибок. Адаптируй под мою задачу: [опиши, какого агента используешь и что он делал]. 
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какая у тебя цель, какие ограничения были в просьбе, какой тип агента (поиск фактов или отчёт) и как выглядит лог. Это нужно, чтобы выбрать нужные категории ошибок и проверять Goal Drifting и полноту против твоей исходной задачи, а не абстрактной.

⚠️

Ограничения

⚠️ Нет проверенных «лекарств»: статья даёт диагностику, а не проверенный способ чинить. Правила для инструкции агенту ниже в «Адаптациях» достроены нами, авторы их не тестировали.

⚠️ Судья может ошибаться: разметку делает один LLM-судья (GPT-5) без отдельной проверки точности. Ваш судья тоже может «видеть» ошибки там, где их нет. Требование цитаты и номера шага снижает риск, но не убирает его.

⚠️ Нужен лог: метод работает, только если агент показывает свои шаги. В «чёрных ящиках» вроде чата, где виден только итог, разбор не сделать.

⚠️ Часть ошибок — инфраструктура: блокировки сайтов, капчи, мёртвые ссылки инструкцией не лечатся. Это среда, а не поведение модели.

⚠️ Частота ошибок зависит от фреймворка и модели: одни ломаются на ранней остановке, другие на плохих запросах, третьи на потере ограничений. Чужие цифры нельзя переносить на вашего агента, нужно мерить на своём.

⚠️ Много системных ошибок ≠ провал: агенты часто восстанавливаются сами. Не стоит чинить всё подряд, ориентируйтесь на ошибки, которые реально ломают итог.

⚠️ Часть текста статьи не получена: обсуждение практических выводов оборвано, промпты судьи вынесены в приложение и в тексте не приведены. Шаблон выше — реконструкция по описанию метода.

🔍

Как исследовали

Идея была в том, чтобы смотреть не на итоговый балл, а на траектории. Команда взяла готовые бенчмарки (BrowseComp, BrowseComp-zh, GAIA text-only, XBench-DS для поиска фактов и Deep Research Bench для отчётов) только как источник задач, чтобы агенты нагенерировали длинные логи. Для поиска использовали фреймворк Miroflow с двумя инструментами (search и fetch). Ограниченный набор нужен, чтобы ошибки не размывались сложной экосистемой. Моделей две: GPT-5-mini и открытая MiroThinker-30B. Для отчётов взяли open-deep-research (на GPT-5) и step-deep-research (на Step-3.5-Flash).

Разметка шла в два слоя. Системные ошибки находили парсером и LLM-судьёй, который сверяет намерение с вызовом. Смысловые категории сначала вывели вручную: люди просмотрели выборку траекторий и описали повторяющиеся паттерны. Потом GPT-5-судья разметил остальное в масштабе.

Результаты по MiroThinker-30B на поиске: - Доля шагов без системных ошибок: 75% на BrowseComp, 79% на BrowseComp-zh, 63% на XBench-DS, но всего 28% на GAIA. - На GAIA из 4362 шагов 3145 содержали ошибку. При этом точность 63%, тогда как на BrowseComp при чистых шагах всего 17%. Частые системные ошибки не мешают успеху, агент их обходит. - Чисто синтаксические сбои редки: десятки на тысячи шагов. Доминируют Tool-Function Mismatch, Domain Tool Misalignment и Anti-Scraping.

На смысловом уровне авторы описывают контраст моделей: - GPT-5-mini чаще останавливается рано и ограничивается сниппетами. Авторы называют это нежеланием вести многошаговый поиск. - MiroThinker-30B ищет упорно, но плохо формулирует запросы и пропускает сигналы в плотных выдачах. - Open Deep Research чаще всего страдает от Goal Drifting: контекст растёт, ограничения теряются. - Step Deep Research чаще фабрикует данные, чтобы закрыть структуру отчёта. Ошибки у него идут каскадом: игнор противоречий плюс выдумка.

Практический вывод: ошибки зависят от архитектуры агента, поэтому универсальной «починки» нет. Сначала нужно измерить, какая ошибка у вашего агента главная. Авторы также отмечают положительную связь между долей безошибочных шагов и итоговой точностью. Но в таблице по системным ошибкам этого не видно: на GAIA безошибочных шагов мало, а точность высокая. Зависимость, вероятно, относится к смысловым ошибкам.

📄

Оригинал из исследования

Промпты судьи в статье вынесены в Appendix C и в тексте не приведены. Оригинальные названия категорий — для поиска и разметки:

System-Level:
  Agent Tool Call: Tool Call Parsing Failure; Incorrect Tool Name
  Web Search: Call Formatting Error; Tool-Function Mismatch; Irrelevant Query;
              Domain Tool Misalignment; Syntactical Query Failure
  Web Fetch: Unsupported Content Modality; Non-Existent Page; Anti-Scraping Blockers

Task-Level (Deep Search): Observation Neglect; Surface-Level Skimming;
              Premature Stopping; Rabbit Hole Trap; Ineffective Query
Task-Level (Deep Research): Contradiction Neglect and Sourcing Bias;
              Synthesis Hallucination; Goal Drifting

Контекст: это полный список категорий, по которым авторы размечали траектории.

💡

Адаптации и экстраполяции

Это наши достройки. В статье они не проверялись.

💡 Адаптация для системного промпта / CLAUDE.md исследовательского агента: превращаем категории ошибок в правила.

Правила поиска:
- Не опирайся на сниппеты: если нужного факта нет в сниппете, открой страницу целиком.
- Перед ответом на вопросы «найди все…» перечисли, сколько кандидатов ты нашёл и что проверил. Если не уверен в полноте, продолжай поиск.
- После каждого результата выпиши, что нового ты узнал. Если нужный факт уже был в выдаче, используй его.
- Если два запроса подряд дали пустой результат, смени формулировку по существу, не повторяй похожий запрос.
- Не вставляй URL в поисковую строку: для адреса используй инструмент открытия страницы.

Правила отчёта:
- Если источники противоречат друг другу, покажи оба значения и источники. Не выбирай первое попавшееся.
- Если данных не нашёл, пиши «не найдено». Не заполняй пробелы знаниями из памяти.
- Перед финальным ответом перечитай исходную задачу и сверь формат и ограничения.

🔧 Техника: убрать «Проход 1» → быстрее и дешевле. Если сайт и инструменты у вас стабильные и важны только смысловые ошибки, оставь в промпте только Проход 2.

🔧 Техника: добавить колонку «серьёзность» (критично / терпимо). Тогда судья отделит ошибки, которые испортили итог, от тех, которые агент сам исправил. Это учитывает вывод статьи о том, что частые сбои не всегда критичны.

Экстраполяция: защита от Goal Drifting в длинных сессиях агента. Попроси агента каждые 10–15 шагов перечитывать исходные ограничения и сверять с ними текущий прогресс. Это достройка принципа: в статье показан сам эффект потери ограничений при росте контекста, но не проверка такого приёма.

🔗

Ресурсы

  • Статья: Benchmarking and Error Analysis of Deep Search and Deep Research LLM Agents
  • Авторы: Zixuan Yu (Sun Yat-sen University), Zhenheng Tang (HKUST), Xiaowen Chu (HKUST Guangzhou), Bo Han (Hong Kong Baptist University, TMLR Group)
  • Площадка: ICML Workshop on Failure Modes in Agentic AI (FAGEN), Сеул, 2026
  • Фреймворки в экспериментах: Miroflow, MiroThinker-30B, open-deep-research, step-deep-research
  • Бенчмарки: BrowseComp, BrowseComp-zh, GAIA (text-only), XBench-DS, Deep Research Bench

📋 Дайджест исследования

Ключевая суть

Синтаксис вызовов у современных агентов почти не ломается. Они ломаются на смысле: видят нужный факт в выдаче и не используют его. Метод позволяет по логу агента понять, где именно он сломался: сайт отдал 403, запрос кривой или агент остановился раньше времени и додумал таблицу сам. Фишка: сначала отсей поломки инфраструктуры, и только потом суди «мышление» агента. Разбор идёт в два прохода по закрытому списку таксономии ошибок (13 типов в двух слоях), поэтому «агент глупый» перестаёт быть диагнозом на все случаи.

Принцип работы

Процесс из трёх шагов: системный слой → смысловой слой → решение. 1. Системный слой. Для каждого шага сравни, что агент собирался сделать и какой вызов выполнил. Так находятся URL в поисковой строке, arXiv-ID в Wikipedia, мусорные запросы, капчи и мёртвые ссылки. 2. Смысловой слой. Здесь размечаются ошибки рассуждения. Для поиска фактов их 5: пропуск найденного (Observation Neglect), чтение одних сниппетов, ранняя остановка, «кроличья нора», слабые запросы. Для отчётов их 3: игнор противоречий между источниками, выдумка недостающего, потеря ограничений из просьбы. 3. Решение. Посчитай, какие ошибки доминируют. Дальше выбор: чинить инструкцию, чинить инструменты или менять модель. Принцип: итоговый ответ ничего не говорит о пути, поэтому оценивай шаги, а не результат. Это как разбирать полёт по чёрному ящику, а не по тому, что самолёт сел.

Почему работает

Итоговая точность скрывает всё. Правильный ответ мог прийти через кривой путь. Неправильный не скажет, виноват сайт с блокировкой, плохой запрос или нераскрытая страница. Чинишь вслепую: переписываешь инструкцию, а сайт просто отдавал 403. LLM хорошо сопоставляет два текста: «что собирался сделать» и «что реально вызвал». В длинном логе она неплохо находит паттерны, если дать закрытый список категорий. Классифицировать по готовой рубрике она умеет лучше, чем придумывать рубрику с нуля. Авторы жёсткую часть отдали парсеру, а судье оставили только оценку соответствия и смысла, поэтому поломки среды не списываются на «плохое мышление». Прикол: ошибки формата вызова у современных моделей почти исчезли. Ломается именно смысл.

Когда применять

Агенты с поиском (Deep Research в ChatGPT, Claude с поиском, агенты в Cursor) → разбор неудачного прогона, особенно когда в задаче «найди все…» вернулось подозрительно мало. Для таких задач смотри раннюю остановку и чтение одних сниппетов. Для отчётов смотри выдумку недостающего и потерю ограничений. НЕ подходит, если агент показывает только итог, как обычный чат: без лога разбирать нечего. Блокировки сайтов, капчи и мёртвые ссылки инструкцией тоже не лечатся.

Мини-рецепт

1. Достань лог: все шаги, поисковые запросы, открытые страницы и финальный ответ. Без этого дальше не идти.
2. Запиши цель дословно: формат, пороги, обязательные колонки. По ней судья проверяет полноту и потерю ограничений.
3. Выбери тип агента: поиск фактов или отчёт. От этого зависит набор смысловых категорий.
4. Запусти два прохода: сначала системные сбои, потом смысловые. Один запрос, два раздела.
5. Требуй цитату и номер шага для каждой ошибки. Это защита от выдуманных проблем самого судьи.
6. Разреши писать «нет»: «Если типа ошибки нет, пиши нет. Не придумывай».
7. Попроси одну главную причину плохого результата и три правки в инструкцию агенту.
8. Проверь правки сам. Авторы статьи лекарства не тестировали, только диагноз.

Примеры

[ПЛОХО] : Вот ответ агента про карты с кэшбэком на АЗС. Он нормальный? Что с ним не так?
[ХОРОШО] : Ты аудитор логов исследовательского агента. Цель задачи: найти ВСЕ российские банковские карты с кэшбэком от 5% на АЗС и вернуть таблицу: банк, карта, условия, лимит, ссылка. Лог: [вставить лог]. Проход 1, системные ошибки: сопоставь намерение агента с вызовом на каждом шаге. Ищи URL в поисковой строке, не тот инструмент для источника, блокировки 403 и мёртвые ссылки. Проход 2, смысловые ошибки: пропуск найденного факта, опора на сниппеты, ранняя остановка, выдумка в ячейках таблицы, потеря порога 5%. Для каждой ошибки дай номер шага и цитату. Если ошибки нет, пиши «нет». В конце дай одну главную причину неполного результата и три правки в инструкцию агенту. Разница: в плохом запросе судья оценивает итог и гадает. В хорошем он сверяет шаги с целью и обязан доказывать цитатой.
Источник: Benchmarking and Error Analysis of Deep Search and Deep Research LLM Agents
ArXiv ID: 2610.29346 | Сгенерировано: 2026-10-22 17:10

Проблемы LLM

ПроблемаСутьКак обойти
Агент с поиском останавливается рано и не открывает страницыПросишь «найди все». Агент берёт первые найденные варианты. Читает только короткие выдержки из поисковой выдачи, страницы не открывает. Иногда видит нужный факт в выдаче и не использует его. Список выходит неполным, а ответ выглядит уверенно.Требуй явный план. Пусть агент сначала перечислит найденных кандидатов. Потом пусть откроет страницу каждого и только после этого отвечает. Добавь: «перед финалом проверь, не осталось ли непроверенных вариантов». Это наша достройка, прямой проверки нет.
Агент выдумывает недостающее, чтобы заполнить структуру отчётаПросишь таблицу или отчёт с фиксированными разделами. Данных на часть ячеек нет. Агент закрывает пробелы знаниями «из головы», а не найденным. Выдумка выглядит так же, как факт.Разреши пустоту. Напиши: «если данных нет, пиши "не найдено"». Требуй источник для каждой ячейки. Ячейку без источника считай недостоверной.
В длинной работе агент теряет ваши ограничения и форматКонтекст растёт за десятки шагов. Порог, фильтр, нужные колонки из исходной просьбы забываются. Итог получается по другим правилам, чем ты просил.Повтори ограничения в конце инструкции. Попроси перед финалом сверить результат с каждым пунктом цели. Для проверки используй список «требование → выполнено или нет».

Методы

МетодСуть
Разбор лога агента в два прохода — находит причину плохого результатаДай модели цель задачи и полный лог шагов агента. Проход 1, сбои среды: для каждого шага сравни, что агент хотел сделать и что реально вызвал. Ищи: адрес сайта в поисковой строке, мусорный запрос, не тот инструмент, блокировку (403, капча), мёртвую ссылку. Проход 2, сбои смысла: проверь закрытый список: ранняя остановка, опора на выдержки, игнор найденного факта, петля в бесполезных разделах, выдумка, потеря ограничений. Для каждой ошибки требуй номер шага и цитату из лога. Добавь: Если ошибки нет, пиши «нет». Не придумывай. В конце попроси одну главную причину и три правки в инструкцию агенту. Почему работает: модель хорошо сопоставляет два текста и применяет готовый список. Рубрику с нуля придумывает хуже. Два прохода разделяют среду и мышление, поэтому блокировку сайта не спишешь на «агент глупый». Цитата и «пиши нет» отсекают выдуманные ошибки. Когда применять: агент выдал плохой или неполный результат, и у тебя есть его лог. Когда не работает: виден только итоговый ответ. Судья тоже может ошибаться, проверяй цитаты. Блокировки сайтов инструкцией не лечатся. Оставляй в списке только категории под твою задачу. Для «найди все» это ранняя остановка и опора на выдержки. Для отчётов это выдумка и потеря ограничений.
📖 Простыми словами

Benchmarking and Error Analysis of Deep Search and Deep ResearchLLMAgents

arXiv: 2610.29346

Автономные поисковые агенты лажают совсем не так, как обычный чат-бот. Они делают десятки шагов подряд: формулируют запросы, кликают по ссылкам, парсят веб-страницы и собирают выжимку. Если на выходе получилась ерунда, судить модель только по итоговому тексту — чистый самообман. Ты видишь жалкий огрызок и думаешь, что нейросеть затупила, хотя на деле она могла просто упереться в блокировку сайта или сдаться на полпути.

Это как чинить заглохшую тачку, просто пиная её по колесу. Машина встала, а ты гадаешь: кончился бензин, сдох аккумулятор или водитель просто уснул. Формально результата нет, но без взгляда под капот ты начнёшь со злости перебирать рабочий двигатель, когда нужно было просто залить бензин в бак.

Чтобы не тыкаться вслепую, авторы разложили логи агентов на атомы и собрали чеклист из 13 типов ошибок в двух слоях. Первый — системный слой: сломанные вызовы инструментов, отвалившийся парсер или банальная ошибка 403 от защищённого сайта. Второй — смысловой слой: агент составил кривой поисковый запрос, слишком рано бросил поиск или выдал отсебятину, когда поленился открыть реальный источник.

Тестировали на исследовательских агентах, но принцип универсален. Та же диагностика нужна везде, где модель управляет цепочкой действий: от агентов в Cursor до связок с OpenAI Deep Research и сложных RAG-систем. Если твой цифровой помощник ходит во внешний мир через инструменты, искать сбои придётся строго по этим двум уровням, иначе ты обречён на бесконечный подбор промптов.

Короче: хватит шаманить над базовой инструкцией каждый раз, когда ассистент принёс кривой результат. Загоняй логи каждого шага в чеклист и натравливай LLM-судью на поиск конкретных сбоев. Найдёшь точное место поломки — сбережёшь сотни часов пустой работы и перестанешь нервно переписывать промпты там, где вообще ничего не ломалось.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с