3,583 papers
arXiv:2605.11946 71 12 мая 2026 г. FREE

CTA: пять паттернов влияния инструкций на LLM — и как ими управлять

КЛЮЧЕВАЯ СУТЬ
Задача выполнена — но это ничего не значит. Исследователи нашли 522 случая, где результат с инструкцией и без неё выглядел одинаково. Только вот в части из них модель тратила в 22 раза больше токенов, копировала чужие данные не туда и делала то, о чём не просили. Метрика «прошло/не прошло» этого не видит. Метод позволяет предсказывать, как именно инструкция изменит поведение модели — не итог, а путь. Фишка: исследователи сравнивали парные записи действий (трейсы) — с инструкцией и без, на одних и тех же задачах. Так выявили пять паттернов влияния инструкций (SIP): два конструктивных, один нейтральный, два деструктивных.
Адаптировать под запрос

TL;DR

Когда вы даёте LLM инструкции в промпте — шаблон, гайд, список правил — модель меняет поведение сильнее, чем кажется снаружи. Исследователи из ASU/USC/Adobe сравнивали трейсы (записи всех действий агента) с инструкцией и без неё — на одних и тех же задачах. Итог: 522 случая изменённого поведения там, где разница в итоговом результате почти нулевая.

Главная находка: метрика «задача выполнена/не выполнена» слепа к тому, как модель работала. Задача может пройти оба раза, но с инструкцией модель скопировала кусок шаблона буквально не туда, создала лишние файлы и потратила вдвое больше токенов. Без инструкции — решила чище. По цифре результата — ничья.

Исследование описывает пять паттернов влияния инструкций (SIP — Skill Influence Patterns): два конструктивных, один нейтральный, два деструктивных. Зная их, можно избегать ловушек и строить промпты, которые влияют на поведение модели предсказуемо.


📌

Пять паттернов влияния инструкций

КОНСТРУКТИВНЫЕ:
  PS (Процедурные леса)     → инструкция даёт шаги, которых модель не знает
  EP (Подсказка краевых случаев) → инструкция-чеклист помогает не пропустить редкие ветки

НЕЙТРАЛЬНЫЙ:
  RE (Избыточное исследование) → инструкция повторяет то, что модель и так знает
                                   → больше токенов, тот же результат

ДЕСТРУКТИВНЫЕ:
  SA (Поверхностная привязка)  → модель копирует буквальный текст из инструкции
                                   туда, куда он не подходит
  CB (Концептуальное кровотечение) → инструкция широкая → модель делает
                                   лишнее, чего не просили

Все паттерны выявляются сравнением парных записей: одна с инструкцией, другая без, задача одна и та же.


🚀

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

Задача: Вы готовите коммерческое предложение для клиента. Вставляете в промпт старое КП как «образец» и просите: «Напиши похожее, но для другого клиента».

Промпт (с риском Surface Anchoring):

Вот образец нашего КП для Ромашки:
[текст с ценами, именами, конкретными условиями]

Напиши КП для Одуванчика.

Что пойдёт не так: модель скопирует конкретные числа, формулировки и условия из образца дословно — даже там, где они не подходят новому клиенту. Это и есть Surface Anchoring: буквальный текст из «инструкции» попадает в итоговый документ туда, куда его не звали.


Промпт (с защитой от SA + активацией EP):

Напиши коммерческое предложение для клиента {имя_клиента}.

О клиенте: {краткое описание — сфера, боль, задача}

Структура КП:
- Заголовок с конкретной выгодой для этого клиента
- Описание проблемы их словами
- Наше решение (без технического жаргона)
- Три конкретных результата с цифрами
- Условия и следующий шаг

⚠️ Отдельно проверь:
- Нет ли в тексте деталей, которые относятся к другим клиентам?
- Все ли числа — именно для {имя_клиента}?
- Понятен ли следующий шаг без созвона?

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


🧠

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

LLM не «читает» инструкцию, она следует паттернам. Когда в контексте есть конкретный текст — "версия 3.2", "компания Ромашка", "цена 50 000 рублей" — модель воспринимает его как сигнал к воспроизведению, особенно если этот текст стоит в позиции примера. Surface Anchoring возникает не из «непонимания», а из того, как работает предсказание следующего токена: конкретный паттерн → высокая вероятность воспроизведения.

Чеклисты работают именно там, где задача средней сложности. Исследование показало: Edge-Case Prompting срабатывает на задачах, где у модели уже есть базовое решение, но есть риск пропустить нюанс. Если задача слишком лёгкая — чеклист лишний (RE, потраченные токены). Если задача слишком сложная — чеклист не спасает.

Широкие инструкции = широкие последствия. Concept Bleed возникает когда инструкция охватывает больше, чем нужно для задачи: модель «видит» связанные концепции и начинает их применять — даже без явной просьбы. Решение: сужайте инструкции до конкретной задачи, убирайте лишний контекст.

Рычаги управления: - Уберите конкретику из шаблонов → замените реальные числа и имена на {плейсхолдер} → снизите риск SA - Добавьте раздел «проверь» с конкретными вопросами → активируете EP - Сократите инструкцию до минимума → уберёте RE и CB - Явно запретите «лишнее»: "не создавай ничего, о чём я не просил" → снизите CB


📋

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

Задача: {конкретная задача — одним предложением}

Контекст: {только то, что нужно для этой задачи — без лишнего}

Шаги:
1. {шаг 1}
2. {шаг 2}
3. {шаг 3}

Прежде чем дать финальный ответ, проверь:
- {краевой случай 1 — что легко пропустить}
- {краевой случай 2}
- Всё ли в ответе относится именно к {объект задачи}, а не взято из примеров?

Не включай в ответ: {что модель может добавить от себя, но не нужно}

Что подставлять: - {конкретная задача} — максимально конкретно, без обобщений - {только то, что нужно} — не вставляйте «для контекста» материалы, не относящиеся к задаче - {краевой случай} — что обычно забывают или делают не так - {что не нужно} — явно назовите артефакты, которые модель любит добавлять сама

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

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

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

LLM спросит про конкретные краевые случаи и что точно не нужно в ответе — потому что без этого раздел «проверь» будет пустым, а именно он активирует Edge-Case Prompting.


⚠️

Ограничения

⚠️ Паттерны зависят от сложности задачи: SA чаще бьёт по лёгким задачам, EP — по средним. Для очень сложных задач ни один паттерн не даёт стабильного улучшения.

⚠️ Токены — не бесплатно: в задачах, где инструкция помогает, модель тратит в среднем вдвое больше токенов. В крайних случаях — в 22 раза. Это важно для длинных сессий.

⚠️ Исследование — про агентов с кодом: выводы получены на задачах разработки ПО. Перенос на тексты, анализ, творческие задачи — по аналогии, не по данным.

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


🔗

Ресурсы

Xiaolin Zhou, Jinbo Liu, Li Li, Ryan A. Rossi, Xiyang Hu. Counterfactual Trace Auditing of LLM Agent Skills. Arizona State University, University of Southern California, Adobe Research.

Код и данные: https://github.com/WillChow66/CTA.git

Бенчмарк: SWE-Skills-Bench. Модель: Claude Sonnet 4.5.


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

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

Задача выполнена — но это ничего не значит. Исследователи нашли 522 случая, где результат с инструкцией и без неё выглядел одинаково. Только вот в части из них модель тратила в 22 раза больше токенов, копировала чужие данные не туда и делала то, о чём не просили. Метрика «прошло/не прошло» этого не видит. Метод позволяет предсказывать, как именно инструкция изменит поведение модели — не итог, а путь. Фишка: исследователи сравнивали парные записи действий (трейсы) — с инструкцией и без, на одних и тех же задачах. Так выявили пять паттернов влияния инструкций (SIP): два конструктивных, один нейтральный, два деструктивных.

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

Конструктивные паттерны — когда инструкция реально помогает. Процедурные леса (PS): даёшь шаги, которых модель сама не придумает. Подсказка краевых случаев (EP): чеклист для нюансов — работает на задачах средней сложности, где базовое решение у модели есть, но риск пропустить нюанс высок. Нейтральный: Избыточное исследование (RE) — объясняешь то, что модель и так знает. Итог тот же, токены потрачены. Деструктивные: Поверхностная привязка (SA) — модель копирует буквальный текст из шаблона куда попало; Концептуальный размыв (CB) — широкая инструкция тянет за собой связанные концепции, которых никто не просил. Граница между EP и RE — не в формате инструкции. Она в том, знает ли модель задачу без подсказки или нет.

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

SA возникает из того, как модель предсказывает следующий токен. Вставил в контекст «компания Ромашка», «версия 3.2», «цена 50 000» — модель читает это как образец: конкретный паттерн → высокая вероятность воспроизведения. Не злой умысел, просто механика. CB — обратная история. Широкая инструкция активирует связанные понятия, и модель начинает их применять без запроса. Писала про email-рассылку — добавила раздел FAQ, потому что «они обычно идут вместе». Главный инсайт: инструкция влияет на путь сильнее, чем на итог. Итог может быть одинаковым, а путь — дорогим, грязным и не воспроизводимым. Стандартные метрики этого не поймают.

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

Системные промпты с шаблонами → особенно когда вставляешь реальный документ как образец: риск SA максимальный. Автоматизированные пайплайны → когда важна стоимость (токены) и предсказуемость: RE и CB бьют по бюджету тихо, но регулярно. Гайды для агентов → чтобы понять, где чеклист помогает (EP), а где просто съедает контекст вхолостую (RE). НЕ подходит напрямую: творческие задачи и анализ текста — исследование на задачах разработки ПО, перенос на другие области по аналогии, не по данным.

Мини-рецепт

1. Проверь на SA: есть ли в инструкции конкретные числа, имена, версии, примеры с реальными данными? Замени их на {плейсхолдеры}. Конкретный текст в контексте — приманка для буквального копирования.

2. Проверь на CB: инструкция шире, чем нужно для этой задачи? Убери всё нерелевантное. Добавь явный запрет в конце: Не включай ничего, о чём я не просил — ни разделов, ни пунктов, ни пояснений сверх задачи.

3. Активируй EP: добавь раздел «Прежде чем дать ответ, проверь:» с 2–3 конкретными вопросами про то, что легко пропустить. Не абстрактное «проверь качество», а конкретное: Все ли цифры относятся именно к {имя_клиента}? Нет ли в тексте деталей из примера?

4. Не объясняй очевидное: инструкция про «как правильно структурировать текст» для современной модели — чистый RE. Токены уходят, поведение не меняется. Пиши только то, чего модель не сделает сама.

Примеры

[ПЛОХО] : Вот наше КП для компании Ромашка [текст с ценами, именами, конкретными условиями]. Напиши похожее для Одуванчика.
[ХОРОШО] : Напиши коммерческое предложение для {имя_клиента} в сфере {сфера клиента}. Структура: - Конкретная выгода для этого клиента - Их проблема их словами - Наше решение без технического жаргона - Три результата с цифрами - Следующий шаг Прежде чем дать финальный текст, проверь: - Нет ли в тексте деталей, которые относятся к другим клиентам? - Все ли числа именно для {имя_клиента}? Не добавляй разделы FAQ, отзывы и прочее — только то, что в структуре выше.
Источник: Counterfactual Trace Auditing of LLM Agent Skills
ArXiv ID: 2605.11946 | Сгенерировано: 2026-05-13 06:27

Проблемы LLM

ПроблемаСутьКак обойти
Модель копирует буквальный текст из шаблона или примераВставляешь в запрос образец — с ценами, именами, конкретными условиями. Модель воспринимает конкретный текст как сигнал к воспроизведению. Копирует его туда, куда не нужно. Итоговый результат выглядит правдоподобно, но внутри — артефакты чужого документа. Проблема для любого запроса с шаблоном, примером или «образцом для ориентира»Замени конкретику в шаблоне на заменители: не «цена 50 000 рублей» а {цена}, не «компания Ромашка» а {название клиента}. Конкретики в образце нет — нечего копировать
Широкая инструкция заставляет делать незапрошенноеДаёшь инструкцию с широким контекстом — «вот наш процесс работы», «вот как мы пишем тексты». Модель видит связанные концепции и начинает их применять. Добавляет разделы, которых не просили. Создаёт лишние файлы. Расширяет задачу за её края. Снаружи кажется инициативой — по факту нарушение задачиСужай инструкцию до конкретной задачи. Убирай контекст который не нужен здесь и сейчас. Добавь явный запрет: «не включай ничего, о чём я не просил»

Методы

МетодСуть
Раздел «проверь» — страховка от пропущенных краёвВ конце запроса добавь блок с конкретными вопросами-проверками. Не «проверь ошибки» — это пусто. А конкретно: «Нет ли в тексте данных, которые относятся к другому клиенту?», «Все ли числа именно для {объект задачи}?». Почему работает: Блок «проверь» вынуждает модель пройтись по результату целенаправленно — она ищет именно то, о чём спрошено. Без этого блока модель закончила и сдала. Когда работает: задачи средней сложности. Там где базовое решение у модели есть, но легко пропустить нюанс. На очень простых задачах — лишние токены. На очень сложных — не спасает

Тезисы

ТезисКомментарий
Конкретный текст в контексте — сигнал к копированиюКогда в запросе есть конкретный текст — имена, числа, формулировки — модель воспринимает его как образец для воспроизведения. Чем конкретнее текст, тем выше вероятность что он попадёт в ответ буквально. Это не «непонимание» — так работает предсказание следующего слова: конкретный паттерн рядом высокая вероятность повторить. Применяй: используешь образец или пример — заменяй конкретику на {заменители} до отправки
📖 Простыми словами

Counterfactual Trace Auditing ofLLMAgentSkills

arXiv: 2605.11946

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

Это как если бы ты попросил повара приготовить ужин, показав ему вчерашнюю грязную тарелку в качестве примера сервировки. Повар приготовит шикарное блюдо, но подаст его на такой же грязной тарелке, потому что решил, что пятна соуса — это часть твоего фирменного стиля. Формально он выполнил задачу, но по факту он просто скопировал мусорный контекст, который ты забыл вычистить. В итоге ты получаешь результат, который выглядит правильно, но несет в себе кучу ненужного «шума» из прошлого.

В ходе аудита Counterfactual Trace Auditing ученые обнаружили 522 случая измененного поведения там, где итоговый результат вроде бы не поменялся. Модель начинает использовать те же названия компаний, те же цифры или специфические обороты из примера, даже если они противоречат новой задаче. Это не просто «вдохновение», это галлюцинация на почве контекста: если в шаблоне стояла цена 50 000 рублей, агент с огромной вероятностью впишет ее и новому клиенту, просто потому что этот паттерн уже «засветился» в его оперативной памяти.

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

Главный вывод: хватит надеяться, что модель «сама поймет», что в примере важно, а что нет. Чтобы не получить на выходе копипасту с галлюцинациями, нужно либо максимально вычищать примеры от конкретики, либо явно указывать, какие переменные модель обязана заменить. Иначе ты рискуешь отправить клиенту документ, где посреди текста внезапно всплывет «компания Ромашка» из твоего старого шаблона. Аудит трейсов доказал: AI меняет логику под давлением примера гораздо сильнее, чем мы привыкли думать.

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

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

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