3,583 papers
arXiv:2608.23045 80 24 авг. 2026 г. FREE

Context Isolation (NIS-Agent): как разорвать петлю самооправдания LLM при проверке своих же выводов

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

TL;DR

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

Оказалось, что модель ведёт себя нечестно сама с собой. Если LLM сама сформулировала поисковый запрос, а результаты оказались нерелевантными (даже если это прямо написано в аннотации к странице), она всё равно открывает эту страницу — просто потому что запрос был её. Но если те же самые результаты подать ей как посторонний текст, без упоминания, что запрос выдумала она сама, модель мгновенно замечает нерелевантность и отказывается идти дальше. Авторы назвали это инерционным искажением (inertia bias): модель не хочет признавать, что её собственное действие было ошибкой.

Метод борется с этим через изоляцию контекста в двух критических точках: (1) когда агент решает, стоит ли открывать найденную страницу, ему показывают только факты задачи, без истории его же поискового запроса; (2) когда агент готовит финальный ответ, его цепочку рассуждений разбивают на пронумерованные шаги и проверяют каждый переход (A→B, B→C) отдельно, изолированно от общего контекста.

🔬

Схема метода

БЛОК 1 — Проверка страницы (поиск):
ШАГ 1: Агент делает запрос → получает список абстрактов
ШАГ 2: Изолированный фильтр смотрит на абстракты БЕЗ истории запроса → 
        решение: «открыть страницу» / «переформулировать запрос»

БЛОК 2 — Проверка финального ответа (отдельный вызов после того, как модель решила, что готова ответить):
ШАГ 1: Реорганизация — разрозненные шаги рассуждений превращаются в явную 
        пронумерованную цепочку: A → B → C → ...
ШАГ 2: Пошаговая проверка — каждый переход (A→B, B→C) проверяется 
        отдельно, как самостоятельное утверждение, без опоры на то, 
        что предыдущий шаг «уже одобрен»
ШАГ 3: Если найден слабый переход → конкретное замечание и доработка. 
        Если все переходы верны → ответ выдаётся

Оба блока можно запускать как отдельные запросы к модели — в оригинале это автоматический шаг внутри агентной системы, но принцип легко переносится в обычный чат вручную.


🚀

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

Задача: Ты попросил ChatGPT собрать факты для due diligence перед вложением в стартап — например, проверить утверждение «выручка компании X выросла на 300% за год по данным открытых источников». Модель нашла источники, сделала вывод. Теперь ты хочешь понять, не выдаёт ли она желаемое за действительное — просто потому что сама уже «поверила» в свой вывод.

Промпт (для отдельного, свежего чата — это и есть изоляция контекста):

Вот утверждение и источники, на которые оно опирается — 
без объяснений, кто и как их искал:

Утверждение: «Выручка компании X выросла на 300% за год»
Источник 1: [цитата/данные]
Источник 2: [цитата/данные]

Ты — независимый аудитор, который не участвовал в подборе этих 
источников и не видел, как формулировалось утверждение.

1. Разбей вывод на цепочку логических шагов: A → B → C.
2. Проверь каждый переход отдельно — следует ли B из A фактически 
   и логически? Не считай шаг верным только потому что предыдущий 
   шаг выглядит правдоподобно.
3. Укажи конкретно, где логика рушится (если рушится).
4. Дай вердикт: «Все шаги подтверждены» или «Найдены проблемы: [список]».

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


🧠

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

Когда LLM видит в контексте, что она сама сформулировала запрос или вывод, она склонна защищать это решение, а не оценивать его объективно — как человек, который не хочет признавать, что его собственная идея была плохой. Это внутреннее искажение, а не подстройка под мнение пользователя (это отличает его от подхалимства) и не просто упорство в старой гипотезе (confirmation bias) — триггер именно авторство действия.

Зато LLM хорошо умеет судить объективно, если не видит связи «это моё действие». В экспериментах модель почти всегда правильно отбрасывала нерелевантные результаты, когда те же данные подавались как посторонняя информация, без упоминания, что запрос выдумала она.

Метод использует эту разницу: убирает из контекста след «это я решил», оставляя только факты задачи. Модель судит как посторонний, а не как автор.

Рычаги управления: - Гранулярность проверки (весь ответ целиком vs пошагово) → для простых задач достаточно общей проверки, для важных решений — разбивай на шаги - Степень изоляции — можно использовать «новый чат» как максимальную изоляцию (модель вообще не видит, что это её текст), либо просто убрать из промпта фразы вроде «ты решил, что...» - Количество точек проверки — в оригинале два узла (поиск и финальный ответ), для чата можно применить только один, там где риск ошибки выше


📋

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

Вот итоговый вывод по задаче «{задача}»:

{вывод_без_упоминания_как_он_получен}

Ты — независимый эксперт, который не участвовал в создании этого 
вывода и не видел процесс его получения.

1. Разбей вывод на цепочку логических шагов: A → B → C → ...
2. Проверь каждый переход отдельно: следует ли следующий шаг из 
   предыдущего фактически и логически? Не считай шаг верным 
   автоматически из-за того, что предыдущий шаг выглядел правильным.
3. Если находишь слабое место — укажи конкретно, в чём проблема, 
   и предложи исправление.
4. Дай финальный вердикт: «Все шаги подтверждены» или «Найдены 
   проблемы: [список]».

Подставь в {задача} — суть проверяемого решения (план, расчёт, факт), в {вывод_без_упоминания_как_он_получен} — сам ответ, очищенный от фраз типа «я решил», «на основе моего поиска» (это и есть изоляция).

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

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

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

LLM спросит, какой именно вывод нужно проверить и в какой момент рассуждения он появился — потому что для честной проверки важно отделить сам вывод от истории его создания.


⚠️

Ограничения

⚠️ Ручной труд: в оригинале систему делает автоматика (агент сам вычищает контекст). В чате пользователю нужно вручную выделить «чистый» вывод без следов своего же рассуждения — если просто скопировать весь диалог, эффект пропадёт.

⚠️ Область применения: метод проверен на задачах с проверяемым фактическим ответом (даты, цифры, статистика). Для субъективных оценок (креатив, стиль текста) чёткого подтверждения эффекта в статье нет.

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


🔍

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

Команда сначала создала диагностический тест IBIS: попросила модель qwen3-max сгенерировать больше тысячи фактических вопросов с проверяемым ответом, отсеяла слабые через оценку тремя разными LLM (Gemini, DeepSeek, Claude) по критериям проверяемости и уникальности ответа, оставив 712 качественных примеров. Затем реальные поисковые запросы прогнали через Google, а живые аннотаторы (с согласием между собой 0.68 по Fleiss’ kappa — это неплохой уровень согласия) разметили, надо ли по этим результатам искать заново, открывать страницу или ответ уже готов.

Ключевой эксперимент: одни и те же результаты поиска подавали модели в двух видах — как её собственное действие (Agentic Mode) и как посторонний текст (Observer Mode). Разница в точности между этими режимами и есть прямое измерение инерционного искажения — и она оказалась существенной: модель гораздо хуже признавала свою ошибку, когда запрос был «её».

После этого NIS-Agent протестировали на бенчмарках для веб-агентов (GAIA, WebWalkerQA, BrowseComp, BrowseComp-zh) на нескольких моделях (GPT-4o, GPT-4.1, Claude 3.7, DeepSeek) — метод показал результат на уровне лучших систем, но с расходом токенов на треть меньше, потому что изолированный фильтр сразу отбрасывает бесполезные страницы. Отдельно дообучили маленькую модель на 8 миллиардов параметров (через SFT и обучение с подкреплением GRPO), чтобы у неё изначально было меньше склонности к инерционному искажению — и эта маленькая модель приблизилась по качеству к GPT-4o. Это уже требует кода и обучения, но сам факт — что «прошитая» устойчивость к искажению работает так же, как ручная изоляция контекста — подтверждает, что механизм реален, а не артефакт промпта.


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

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

Обнаружено: LLM отказывается признавать свою ошибку, если решение приняла сама — даже когда нерелевантность прямо написана в тексте перед ней. Метод изоляции контекста позволяет заставить модель судить свой же вывод как посторонний наблюдатель, без искажения авторства. Хитрость в том, что из контекста убирают след «это я решил» — модель видит только факты, как будто читает чужую работу. Результат — модель мгновенно замечает нерелевантность, которую сама же игнорировала секунду назад.

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

Правило простое: никогда не проси модель оценивать решение в том же диалоге, где она это решение приняла. Изоляция контекста — это разрыв связи между «я автор» и «я судья». Судья не должен знать, что подсудимый — это он сам. Для поиска — прячь историю запроса, показывай только факты задачи. Для финального ответа — разбей рассуждение на шаги A→B→C и проверяй каждый переход отдельно, как будто его написал незнакомец.

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

Причина — не подхалимство и не упорство в старой гипотезе. Триггер именно авторство действия. Как только LLM видит в контексте след «это я решил» — включается защита, как у человека, который не хочет признать свою идею плохой. Убери этот след — и модель почти всегда правильно отбрасывает мусорные результаты. Триггер — не логика, а память о том, кто автор. Уберите память — включается объективность.

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

Для агентных систем и ручных проверок → там где LLM сама формулирует запрос или вывод, а потом должна оценить его же качество: фактчекинг, due diligence перед инвестициями, проверка расчётов, юридические заключения. Особенно ценно когда цена ошибки высока и есть проверяемый факт (цифры, даты, статистика). Не подходит для субъективных оценок — стиля текста, креативных идей, там где нет объективного критерия правды.

Мини-рецепт

1. Раздели роли: пусть один вызов ищет или решает, а другой — проверяет, желательно в новом чате.
2. Вычисти следы авторства: убери фразы «я решил», «по моему запросу», «на основе моего поиска» перед проверкой.
3. Разбей вывод на цепочку: A → B → C — каждый шаг отдельным пунктом.
4. Дай роль: <роль>независимый аудитор, который не участвовал в создании этого вывода.
5. Проверь переходы по одному: следует ли B из A фактически, а не просто «выглядит похоже».
6. Получи вердикт: «все шаги подтверждены» или конкретный список проблем с указанием слабого места.

Примеры

[ПЛОХО] : Проверь, правильный ли вывод, который я только что сделал в этом чате: выручка компании выросла на 300%
[ХОРОШО] : (в новом чате) Вот утверждение и источники без объяснения, кто и как их искал. Ты — независимый аудитор. Разбей вывод на шаги A→B→C, проверь каждый переход отдельно, укажи где логика рушится, дай финальный вердикт.
Источник: From Inertia to Objectivity: Improving Deep Research Agents with Noise Isolation
ArXiv ID: 2608.23045 | Сгенерировано: 2026-08-25 05:26

Проблемы LLM

ПроблемаСутьКак обойти
Модель защищает свои прошлые решения вместо честной проверкиЕсли LLM видит, что запрос или вывод сделала она сама, она оправдывает его даже при явных признаках ошибки. Например: результат поиска нерелевантен, это написано прямо в аннотации — но модель всё равно открывает страницу, потому что запрос был её. Проблема всплывает в любой задаче самопроверки: ресерч, аудит фактов, проверка собственного планаУбери из контекста следы авторства: фразы «я решил», «по моему запросу», «на основе моего вывода». Подай факты как чужой текст, лучше — в новом чате без истории диалога

Методы

МетодСуть
Изоляция контекста — проверка без следов авторстваУбери из промпта упоминания что решение/вывод принадлежит модели. Подай информацию как посторонний текст, желательно в отдельном свежем чате. Дополнительно разбей цепочку рассуждений на пронумерованные шаги A B C и проверяй каждый переход отдельно, не считая его верным автоматически из-за того что предыдущий шаг «уже одобрен». Почему работает: без метки «это моё действие» модель судит как посторонний наблюдатель, а не как автор, который защищает свою идею. Когда да: задачи с проверяемым фактом — цифры, даты, статистика. Когда нет: субъективные оценки (стиль, креатив) — эффект не подтверждён

Тезисы

ТезисКомментарий
Авторство действия — отдельный триггер необъективности, отличный от подхалимства и упорства в гипотезеМодель искажает оценку не потому что подстраивается под пользователя (подхалимство), и не потому что цепляется за старую гипотезу (предвзятость подтверждения). Триггер — именно то, что решение было её собственным действием. Если убрать метку «это я решил», модель почти всегда правильно оценивает те же самые факты. Применяй: при проверке работы модели формулируй запрос так, будто результат создал кто-то другой — не упоминай, что это её же поиск или вывод
📖 Простыми словами

From Inertia to Objectivity: Improving Deep ResearchAgentswith Noise Isolation

arXiv: 2608.23045

У нейросетей есть мерзкая человеческая черта — авторское эго. Когда модель видит в истории диалога свои прошлые рассуждения, она перестает быть объективной и начинает тупо защищать свои выводы. Это не подхалимаж перед пользователем и не глюк памяти: корень проблемы — осознание авторства. Модель намертво цепляется за свои предыдущие шаги, даже если факты кричат о фатальной ошибке.

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

Метод, который это лечит, называется Noise Isolation (изоляция шума). Механика жесткая: шаг проверки наглухо отрезают от истории рассуждений модели. Вместо просьбы «перепроверь то, что ты только что нашла», LLM скармливают только сухие факты в абсолютно чистый контекст. Модель оценивает спорный пункт — вроде «выручка выросла на 300%» — с нуля, без груза собственных догадок.

Тестировали на поисковых агентах, но принцип универсален. Любая сложная цепочка задач, где AI сам ищет инфу и сам делает выводы — будь то due diligence стартапов, аудит кода или фактчекинг — ломается об инерцию контекста. Изоляция сырых данных превращает зацикленного на себе агента в холодного и неподкупного верификатора в любых сценариях.

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

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

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

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