3,583 papers
arXiv:2604.11322 71 13 апр. 2026 г. FREE

Структурный перекос: почему LLM выполняет инструкции, которые не решают задачу

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

TL;DR

LLM смотрит на форму запроса, а не на смысл. Если поля задачи можно заполнить — модель их заполнит, даже если выбранный инструмент или подход не решает вашу цель. Исследователи назвали это структурным смещением: модель сопоставляет атрибуты запроса с параметрами инструмента и считает это достаточным основанием для действия. Пример: пользователь спрашивает про PlayStation, а модель вызывает инструмент Nintendo Switch — потому что поля совпадают. Она игнорирует, что инструмент делает не то.

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

Внутри модели работают два конкурирующих механизма: проверка смысла («действительно ли это решает цель?») и сопоставление структуры («можно ли заполнить параметры?»). Структурный механизм выигрывает почти всегда. Исправить это можно одним способом — явно добавить в промпт шаг семантической проверки: заставить модель сначала спросить «это решает мою цель?», и только потом действовать.


🔬

Схема метода

ПРОБЛЕМА (что происходит сейчас):
Запрос → "Структура совпадает?" → ДА → Выполнить
                                  → [проверка цели пропущена]

ИСПРАВЛЕНИЕ (что добавить в промпт):
Запрос → "Это действительно решает {цель}?" → ДА → Выполнить
                                             → НЕТ → Отказ + Объяснение

Всё выполняется в одном промпте — добавляется один шаг-проверка.

🚀

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

Задача: Вы ведёте Telegram-канал и просите Claude написать разбор конкурента — сервиса «СберМаркет». Ваша реальная цель — понять, стоит ли с ним конкурировать по цене или нет. Без семантической проверки модель выдаст красивый SWOT-анализ с заполненными полями: сильные стороны, слабые, возможности, угрозы. Структура — идеальная. Ответ на вашу цель — нет.

Промпт:

Я хочу понять: стоит ли мне конкурировать с СберМаркетом по цене  
на доставку продуктов в Москве в сегменте до 1500 рублей?

Моя цель: принять решение ДА или НЕТ с коротким обоснованием.

Прежде чем начать анализ — одним предложением скажи: 
этот анализ действительно поможет принять решение о ценовой конкуренции,  
или он охватывает что-то другое?

Если да — продолжай. Если нет — скажи что именно не так  
и уточни задачу.

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


🧠

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

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

Структура бьёт смысл, потому что она видна в тексте. «Название игры» + «регион» — конкретные, явные, легко сопоставляемые. «Это действительно для PlayStation, а не Nintendo» — требует суждения, а не сопоставления. Модель скользит по поверхности формы, не ныряя в суть.

Явный вопрос-проверка перед действием перестраивает порядок генерации. Когда вы просите модель сначала ответить «это решает мою цель?» — вы буквально вставляете семантический барьер перед структурным заполнением. Модель вынуждена сгенерировать суждение о соответствии раньше, чем приступит к исполнению. Это работает как стоп-сигнал: дай ответ на вопрос о смысле — потом действуй.

Рычаги управления: - Явность цели → чем точнее вы формулируете ЗАЧЕМ (не ЧТО), тем сильнее семантический якорь - Позиция проверки → вопрос «это решает цель?» должен быть ДО, не После инструкций - Формат ответа на проверку → попросите дать ответ одним предложением — это не даёт модели «проскочить» проверку косвенно - Явный отказ как ОК → скажите «если нет — так и скажи», иначе модель будет искать способ ответить «да» в любом случае


📋

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

Моя цель: {конкретная цель — что должно произойти в результате}.

Задача: {что нужно сделать}.

Прежде чем начать — одним предложением ответь:  
эта задача действительно ведёт к цели "{конкретная цель}",  
или она решает что-то другое?

Если да — выполняй.  
Если нет — объясни несоответствие и предложи что изменить в задаче.

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


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

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

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

LLM спросит о вашей реальной цели и задаче — потому что без разделения «зачем» и «что» шаблон не работает. Она возьмёт паттерн и встроит семантическую проверку в ваш конкретный промпт.


⚠️

Ограничения

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

⚠️ Работает хуже с расплывчатой целью: Если вы сами не можете чётко сформулировать цель одним предложением — проверка не поможет. Модель согласится с чем угодно. Сначала уточните цель для себя.

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

⚠️ Модели по-прежнему склонны говорить «да»: Даже с явным вопросом-проверкой некоторые модели стараются найти способ ответить положительно. Добавьте: «Лучше честный отказ, чем неточное выполнение» — это снижает давление на «согласие».


🔗

Ресурсы

Do LLMs Know Tool Irrelevance? Demystifying Structural Alignment Bias in Tool Invocations https://github.com/along-l/irrelevant-tool

Авторы: Yilong Liu, Xixun Lin, Pengfei Cao, Ge Zhang, Fang Fang, Yanan Cao Организации: Institute of Information Engineering (Chinese Academy of Sciences), School of Cyber Security (UCAS), Institute of Automation (CAS), Donghua University


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

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

LLM не думает «решит ли это задачу» — она думает «могу ли заполнить поля». Это разные вопросы. И второй выигрывает почти всегда. Метод позволяет получить ответ именно на вашу цель — а не красиво оформленный текст, который прошёл мимо. Фишка: добавь перед инструкцией один вопрос — «это действительно ведёт к {цели}?» Модель вынуждена сначала вынести суждение о смысле, и только потом заполнять структуру. Вместо красивого шаблона мимо — либо точное попадание, либо честный отказ с объяснением.

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

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

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

Модель генерирует следующее слово по паттернам. «Название игры» + «регион» — конкретные, явные, легко сопоставляемые. «Действительно ли это для PlayStation, а не Nintendo?» — требует суждения. Суждение дороже сопоставления. Поэтому структура бьёт смысл. Когда вопрос-проверка стоит первым — модель обязана сгенерировать ответ на него до того, как начнёт заполнять что-либо ещё. Это не магия — это порядок генерации. Поменяй порядок в промпте — поменяешь порядок рассуждений модели. Ещё важный момент: явно разрешённый отказ снижает давление на «согласие». Без этого модель будет искать способ сказать «да» в любом случае.

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

Любая задача со структурой или шаблоном → особенно анализ, сравнение, оценка вариантов, когда цель — принять решение, а не получить заполненный текст. Особенно когда вы даёте сложное задание и хотите убедиться, что ответ бьёт в реальную цель, а не просто выглядит правильно. НЕ подходит для многоходовых автоматизированных цепочек с реальными инструментами (программные интерфейсы, базы данных) — там нужны технические решения на уровне самой модели. Промпт-техника закрывает только поверхностный слой.

Мини-рецепт

1. Назови цель (ЗАЧЕМ, не ЧТО): одним предложением — что должно произойти в результате. Не «напиши анализ», а «принять решение — конкурировать по цене или нет».
2. Назови задачу: что конкретно нужно сделать. «Сравни трёх поставщиков», «напиши пост», «разбери условия».
3. Добавь вопрос-проверку ДО инструкций: «Прежде чем начать — одним предложением скажи: эта задача действительно ведёт к цели {цель}, или она решает что-то другое?»
4. Явно разреши отказать: добавь «если нет — скажи прямо и предложи что изменить». Иначе модель будет искать способ согласиться.

Примеры

[ПЛОХО] : Сравни трёх кандидатов на позицию маркетолога и напиши анализ
[ХОРОШО] : Моя цель: решить, кого из трёх кандидатов взять на позицию маркетолога в B2C-стартап с фокусом на контент. Задача: сравни их по опыту, навыкам и соответствию задачам. Прежде чем начать — одним предложением: это сравнение действительно поможет принять решение о найме, или оно охватывает что-то другое? Если да — продолжай. Если нет — скажи что не так и уточни задачу. Лучше честный отказ, чем точный ответ мимо цели.
Источник: Do LLMs Know Tool Irrelevance? Demystifying Structural Alignment Bias in Tool Invocations
ArXiv ID: 2604.11322 | Сгенерировано: 2026-04-14 05:25

Проблемы LLM

ПроблемаСутьКак обойти
Модель заполняет структуру вместо достижения целиДаёшь задачу с чёткими полями или шаблоном. Модель смотрит: можно ли заполнить параметры? Можно — заполняет. Проверять, решает ли это твою реальную цель, не обязательно. Получаешь красивый структурированный ответ не на тот вопрос. Работает против тебя при любом шаблонном запросе: SWOT, сравнение вариантов, анализ, рекомендацииДобавь явный вопрос-проверку ДО начала выполнения. Формат: Прежде чем начать — одним предложением: эта задача ведёт к цели "{цель}" или решает что-то другое? Если нет — объясни несоответствие. Вопрос должен быть ДО инструкций, не после

Методы

МетодСуть
Явный запрет на «ложное да» — защита от формального согласияКогда модель получает вопрос-проверку, она склонна найти способ сказать «да» — даже если задача не бьёт в цель. Это снижает ценность проверки. Добавь в промпт явное разрешение отказывать: Лучше честное "нет, это не то" чем выполнение мимо цели. Почему работает: Без разрешения отказать у модели сильный паттерн на согласие — убирает «неловкость» отказа. С разрешением — отказ становится валидным выходом, а не исключением. Когда применять: Любой сложный структурированный запрос где важен результат, а не красивое выполнение

Тезисы

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

DoLLMsKnowToolIrrelevance? Demystifying Structural Alignment Bias inToolInvocations

arXiv: 2604.11322

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

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

В эксперименте это выглядит комично: пользователь спрашивает про PlayStation, а модель радостно вызывает инструменты для Nintendo Switch. Почему? Потому что и там, и там есть поля «цена», «название» и «платформа». Для LLM это идеальный мэтч. Ей гораздо проще пойти по пути наименьшего сопротивления и сопоставить ключи, чем включать мозги и анализировать, решит ли этот инструмент реальную проблему. Это дешевый паттерн, который зашит в саму логику предсказания следующего токена.

Исследование проводили на вызовах API, но принцип универсален для любого взаимодействия с AI. Если ты просишь Claude сделать SWOT-анализ конкурента, чтобы понять, стоит ли с ним воевать, ты получишь красивую таблицу. Модель заполнит все четыре квадрата, потому что структура анализа это подразумевает. Но будет ли там ответ на твой вопрос? Скорее всего, нет. Ты получишь галлюцинацию в красивой обертке, созданную только ради того, чтобы структура не пустовала.

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

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

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

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