TL;DR
Когда ChatGPT с поиском, Perplexity или любой AI с RAG (поиск + генерация) находит документ, внутри которого уже написано пошаговое рассуждение в стиле самой модели — AI некритически следует этому рассуждению вместо того чтобы думать самостоятельно. AdversarialCoT — атака, которая использует именно этот принцип: злоумышленник вкладывает в один поддельный документ цепочку рассуждений, имитирующую мыслительный паттерн целевой модели.
Главная находка: LLM с Chain-of-Thought (пошаговым рассуждением) лучше справляются со сложными задачами — но одновременно становятся уязвимее к документам, построенным по той же схеме рассуждений. Если модель привыкла думать «оцени → рассмотри доказательства → сделай вывод», то документ с такой же структурой воспринимается ею как авторитетный источник, а не как потенциально ложный. Модель не перепроверяет «чужой CoT» — она к нему присоединяется.
Атака работает в два этапа. Сначала наблюдают за тем, как модель рассуждает вслух: какими фразами начинает, как переходит между аргументами, как подводит итог. Затем создают поддельный документ с встроенным рассуждением в той же манере — и итеративно его дорабатывают через обратную связь от самой модели, пока та не начнёт ему доверять.
Схема метода
ШАГ 1 (одна сессия): Наблюдение за моделью
→ Задать модели несколько вопросов
→ Изучить паттерн её CoT: как начинает, как переходит между аргументами,
как делает вывод
→ Зафиксировать три фазы: инициация → анализ доказательств → итог
ШАГ 2 (создание документа):
→ Создать документ с встроенным рассуждением в стиле модели
→ Структура: [Инициирующая фраза] → [Переходы между "доказательствами"]
→ [Финальный вывод с нужным ответом]
ШАГ 3 (итеративная оптимизация, до 3 раундов):
→ Проверить, находит ли модель документ при поиске (если нет → доработать релевантность)
→ Проверить, следует ли модель рассуждению (если нет → доработать структуру CoT)
→ Повторять пока атака не сработает
Все шаги требуют отдельных итераций взаимодействия с моделью.
Пример применения
Это исследование — прежде всего про атаку. Но у него есть мощный конструктивный перевёртыш: тот же принцип работает в пользу пользователя, когда нужно направить AI на конкретный способ анализа.
Задача: Ты готовишь разбор питча стартапа для инвестиционного комитета. Хочешь, чтобы Claude проанализировал материалы строго в рамках методологии Юрия Дудя («Деньги» выпуск) — через прожарку команды, а не продукта.
Промпт:
Вот материалы стартапа для анализа.
---
[АНАЛИТИЧЕСКИЙ ДОКУМЕНТ — МЕТОДОЛОГИЯ РАЗБОРА СТАРТАПОВ]
Подход к оценке: начинаем не с продукта, а с команды.
Шаг первый — кто эти люди? Смотрим на трек-рекорд основателей:
что уже сделали, где потерпели неудачу и как на это реагируют.
Провал — нормально. Отрицание провала — красный флаг.
Шаг второй — переходим к динамике между фаундерами. В стартапах
умирают от внутренних конфликтов чаще, чем от рынка. Ищем:
кто принимает решения под давлением? Есть ли явный лидер или
власть размыта?
Шаг третий — только после этого смотрим на продукт. Конкретно:
решает ли он проблему, за которую люди уже платят деньги
(пусть и неудобным способом)? Или это «было бы круто»?
Итоговый вывод формулируем через: команда — сильная/слабая,
конфликт — есть/нет, рынок — готов платить/нет.
---
Теперь проанализируй питч-дек стартапа: [вставить материал]
Результат: Модель структурирует анализ именно в предложенной последовательности — команда → динамика → продукт → вывод. Без такого документа Claude часто начинает с продукта или рынка, потому что такова типичная структура питч-деков. Встроенный «ход мыслей» в документе-фрейме переключает модель на нужный порядок рассуждений.
Почему это работает
Слабость LLM с поиском: Модель не различает «документ с информацией» и «документ с готовым рассуждением». Оба воспринимаются как внешнее знание, заслуживающее доверия. Когда модель видит структурированный CoT в источнике, она присоединяется к нему, а не перепроверяет — это экономнее с точки зрения генерации.
Сильная сторона LLM: Модель отлично следует стилистическим паттернам. Если рассуждение в документе написано в той же манере, что и собственный CoT модели — она воспринимает его как «правильный» тип мышления и встраивает в свой ответ.
Как метод использует это: Атака зеркалит модель против себя — берёт её собственный стиль рассуждений и встраивает в документ с нужным выводом. Конструктивный перевёртыш: если ты сам пишешь «документ с аналитическим фреймом» и встраиваешь его в контекст запроса, модель следует твоей логике значительно надёжнее, чем если просто написать инструкцию в промпте.
Рычаги управления:
- Три фазы CoT в документе (инициация → анализ → вывод) → убери одну фазу, если нужен более прямолинейный анализ
- Стиль переходов («Далее», «Однако», «Таким образом») → поменяй на профессиональную/академическую лексику под нужный тон
- Итеративность → начни с одного раунда; усиливай только если первый документ не даёт нужного направления анализа
Шаблон промпта
[АНАЛИТИЧЕСКИЙ ФРЕЙМ — {название методологии}]
Подход к оценке {объект анализа}: начинаем с {первый критерий},
а не с {типичная отправная точка}.
Шаг первый — {что смотрим и почему именно это}.
Ищем: {конкретные признаки}.
Красный флаг: {что означает проблему}.
Шаг второй — переходим к {второй критерий}.
Ключевой вопрос: {что именно проверяем}?
Шаг третий — {третий критерий}. Конкретно: {чёткий критерий}.
Итоговый вывод формулируем через: {A} — {вариант 1}/{вариант 2},
{B} — {вариант 1}/{вариант 2}, {C} — {вариант 1}/{вариант 2}.
---
Теперь проанализируй {объект}: {вставить материал}
Плейсхолдеры:
- {название методологии} — как называешь свой подход («фрейм Баффета», «метод JTBD», «подход Горного»)
- {объект анализа} — что анализируешь (стартап, кандидат, контракт, стратегия)
- {первый критерий} — с чего начинать в твоей логике
- {типичная отправная точка} — что обычно делает AI без твоей инструкции
🚀 Быстрый старт — вставь в чат:
Вот шаблон аналитического документа для направленного анализа.
Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит про объект анализа, твою методологию и желаемую последовательность шагов — потому что без этого не сможет создать корректный аналитический фрейм. Она возьмёт паттерн встроенного CoT и адаптирует под нужный контекст.
Ограничения
⚠️ Специфичность под модель: Встроенный CoT написанный «под GPT-4» хуже работает при использовании с Claude и наоборот. У каждой модели свой стилистический паттерн рассуждений — то что работает для одной, работает хуже для другой.
⚠️ Не для простых фактических вопросов: На вопросы с однозначным ответом (дата, число, факт) встроенный CoT почти не влияет. Метод работает там где есть пространство для интерпретации.
⚠️ Некоторые модели устойчивее: Эксперимент показал что GLM4.5 значительно устойчивее к манипуляции через CoT в документах, чем Qwen3. Это значит что степень влияния зависит от конкретной модели — не ожидай одинакового эффекта везде.
⚠️ Требует наблюдения + итераций: Чтобы встроенный CoT был точно «в стиле» модели — нужно сначала понаблюдать за её рассуждениями. Готовый шаблон работает, но менее точно чем подогнанный под конкретную модель.
⚠️ Оборонительный вывод: Если используешь AI с поиском по важным вопросам — не доверяй слепо источнику с красивым структурированным рассуждением. Именно такие документы модели принимают некритически.
Как исследовали
Команда из Китайской академии наук взяла простую идею: а что если вместо того чтобы заваливать базу знаний сотнями фейков, бросить всего один — но умно сделанный? Они тестировали на трёх топовых reasoning-моделях — DeepSeek-R1, Qwen3, GLM4.5 — и трёх датасетах (MS-MARCO, HotpotQA, NQ). На каждый вопрос из 100 выборочных запросов создавался отдельный adversarial-документ, который подсыпали в базу.
Результат удивил даже авторов: итеративно оптимизированный документ обманывал модели в 59–80% случаев когда попадал в выдачу. Для сравнения — старые методы атаки (просто написать «ответ на вопрос X — Y») давали заметно худшие результаты на reasoning-моделях, потому что те стали умнее различать очевидные попытки манипуляции. Но CoT в стиле самой модели — нет.
Интересная деталь: при переносе adversarial-документа созданного «под DeepSeek» на Qwen3 — эффективность падала, но не до нуля. Значит часть уязвимостей специфична для каждой модели, но часть универсальна для reasoning-LLM в принципе. Это и есть самый тревожный вывод — не «одна модель слабая», а «все reasoning-модели имеют структурную уязвимость к зеркальному CoT».
Адаптации и экстраполяции
1. Встроенный CoT как инструкция для ролевого анализа
🔧 Техника: «Документ-персонаж» → фиксирует стиль мышления
Вместо просьбы «рассуждай как Илья Осколков-Ценципер» — создай документ с рассуждением В ЕГО СТИЛЕ и скорми его модели. Модель следует паттерну в тексте надёжнее, чем абстрактному указанию на персонажа.
2. Комбинация с обычным промптингом
Встроенный CoT в документе + минималистичный системный промпт = двойное закрепление нужного способа рассуждения. Документ задаёт структуру, промпт задаёт тон. Особенно эффективно когда нужно чтобы AI анализировал несколько разных материалов по одному и тому же фрейму — фрейм остаётся в «документе-методологии», материалы меняются.
Ресурсы
AdversarialCoT: Single-Document Retrieval Poisoning for LLM Reasoning SIGIR '26, Melbourne, Australia
Кейс-стади с примерами: https://github.com/ruyisy/AdversarialCoT_case
Авторы: Hongru Song, Yu-An Liu, Ruqing Zhang (corresponding), Jiafeng Guo, Maarten de Rijke, Yixing Fan, Xueqi Cheng
Организации: State Key Laboratory of AI Safety, Institute of Computing Technology, Chinese Academy of Sciences / University of Chinese Academy of Sciences (Пекин) + University of Amsterdam
