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.
