7 760 статей
arXiv:2611.06914 78 4 нояб. 2026 г. FREE

Controlled Context Enrichment & Selective Robustness: привязка контекста к решению и проверка ролевых агентов на устойчивость

КЛЮЧЕВАЯ СУТЬ
Парадокс: подробная биография персонажа в системном промпте делает ИИ-агента нестабильным. Агент меняет решение просто из-за замены абзацев на список, но игнорирует реальную смену правил игры. Метод Controlled Context Enrichment позволяет создавать устойчивых ролевых агентов для симуляций и переговоров. Фишка: замени фоновую анкету на прямую привязку к решению и проверь промпт по матрице из 2 условий среды и 4 форматов записи.
Адаптировать под запрос
⚡

TL;DR

Controlled Context Enrichment — это модульная техника сборки промпта и двухмерной проверки ролевых LLM-агентов. Вместо того чтобы набивать системный промпт всеми подробностями биографии персонажа подряд, метод делит контекст на функциональные блоки и проверяет агента по двум осям: нечувствительность к формату записи (проза, списки, таблица «ключ — значение») и отзывчивость на реальные изменения правил игры в описанной ситуации.

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

Метод решает эту проблему в два шага: при сборке промпта вы заменяете общие детали биографии на описательную или нормативную привязку к решению (связываете роль, регламент и контрагента напрямую с текущим выбором), а затем прогоняете матрицу из нескольких форматов подачи при двух разных вводных среды, чтобы отсеять хрупкие промпты.


🔬

Схема метода

Конструирование промпта (выполняется внутри одного запроса через модульную подстановку):

БЛОК 1 (Роль) → Кто принимает решение
БЛОК 2 (Правило среды) → В каких внешних условиях мы находимся (Вариант А или Вариант Б)
БЛОК 3 (Привязка к решению) → Как именно роль, контрагент и процедура регулируют текущий выбор
БЛОК 4 (Задача и таблица исходов) → Доступные действия и матрица последствий

Аудит выборочной устойчивости (требует серии отдельных запросов по матрице 2 среды × 4 формата):

ШАГ 1: Собрать 4 поверхностных формата одного контекста (абзацы, буллиты, ключ-значение, перефраз)
ШАГ 2: Прогнать каждый формат в Среде А и Среде Б → Замерить разброс внутри среды (должен быть ~0) и сдвиг между средами (должен идти в нужную сторону)

🚀

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

Задача: Вы настраиваете ИИ-агента на роль руководителя закупок региональной сети аптек (например, в контуре «Ригла» или «Апрель»), чтобы протестировать, как он поведёт себя при дефиците сезонных препаратов: придержит партию на своём складе в Краснодаре или передаст соседнему филиалу в Ростове-на-Дону. Нужно, чтобы агент опирался на реальный регламент сети, а не менял решение от замены абзацев на буллиты.

Промпт:

Решение по распределению резервной партии

Роль
Ты — руководитель отдела складских запасов филиала А (Краснодар).

Социальный и организационный контекст
Масштаб регламента: Для этого распределения действует единое соглашение Южного регионального контура о непрерывности поставок между филиалом А (Краснодар) и филиалом Б (Ростов-на-Дону).
Отношения с контрагентом: Ты и руководитель филиала Б — назначенные координаторы поставок внутри одной региональной аптечной сети.
Процедура: При возникновении дефицита регламент сети оценивает обеспеченность запасами сразу по обоим филиалам региона.
Ролевое требование: По регламенту региональной сети ты отвечаешь за соблюдение процедуры распределения при принятии решения о судьбе резервной партии филиала А.

Задача принятия решения
Филиал А и филиал Б контролируют по одной выделенной резервной партии препаратов. Ты управляешь партией филиала А, а второй руководитель — партией филиала Б. Обозначения действий одинаковы для обоих: ПЕРЕДАТЬ отправляет партию соседнему филиалу, УДЕРЖАТЬ оставляет партию на своём складе.
Вы принимаете решение одновременно, без предварительного созвона и не видя выбора коллеги. У филиалов постоянные операционные отношения, и подобные ситуации могут повторяться.

Доступные действия
- ПЕРЕДАТЬ: отправить выделенную партию филиала А в филиал Б.
- УДЕРЖАТЬ: оставить выделенную партию филиала А на складе филиала А.

Таблица результатов (в баллах операционной выгоды филиала, больше = лучше)
Твоё действие | Действие коллеги | Баллы филиала А | Баллы филиала Б
--- | --- | ---: | ---:
ПЕРЕДАТЬ | ПЕРЕДАТЬ | 3 | 3
ПЕРЕДАТЬ | УДЕРЖАТЬ | 0 | 5
УДЕРЖАТЬ | ПЕРЕДАТЬ | 5 | 0
УДЕРЖАТЬ | УДЕРЖАТЬ | 1 | 1

Выбери действие, которое ты предпримешь в этой роли.
Ответь ровно одним словом: ПЕРЕДАТЬ или УДЕРЖАТЬ. Не добавляй пояснений.

Результат: Модель выдаст одно слово (ПЕРЕДАТЬ или УДЕРЖАТЬ). При наличии блока привязки к решению (связка с региональным контуром, процедурой оценки дефицита и зоной ответственности) модель статистически значимо переключается на кооперацию (ПЕРЕДАТЬ) в едином региональном контуре и на удержание (УДЕРЖАТЬ), если заменить этот блок на раздельный городской регламент — даже при полностью одинаковой таблице баллов.


🧠

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

Когда мы добавляем в промпт «богатый контекст» — например, в какой CRM работает менеджер, сколько у него подчинённых и по каким дням проходят планёрки, — для LLM это просто информационный шум. Модель видит таблицу личной выгоды (где «УДЕРЖАТЬ» всегда выгоднее в моменте) и видит разрозненные факты о компании, но не находит между ними логического моста. В итоге решение начинает зависеть от случайных поверхностных признаков: порядка слов, знаков препинания или того, оформлен ли промпт списком.

Модели отлично следуют институциональным и ролевым паттернам, когда им прямо показана цепочка: кто твой партнёр → какая процедура включается в этой ситуации → распространяется ли она на твой конкретный выбор. Как только эта связка появляется в промпте (даже в чисто описательном виде, без прямого приказа «ты обязан отдать»), модель перестаёт смотреть только на голые цифры таблицы и учитывает правила среды.

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

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


📋

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

{название_ситуации}

Роль
Ты — {название_роли}.

Социальный и организационный контекст
Масштаб правил: {условие_среды_А_или_Б}
Отношения с контрагентом: {кто_второй_участник_и_что_вас_связывает}
Процедура: {как_регламент_оценивает_ситуацию}
Применимость к решению (или Ролевое требование): {как_процедура_или_обязанность_роли_привязана_к_текущему_выбору}

Задача принятия решения
{описание_объекта_решения_и_условий_взаимодействия}

Доступные действия
- {ДЕЙСТВИЕ_1}: {описание_действия_1}
- {ДЕЙСТВИЕ_2}: {описание_действия_2}

Таблица результатов
{таблица_или_описание_выигрышей_сторон}

Выбери действие, которое ты предпримешь в этой роли.
Ответь ровно одним словом: {ДЕЙСТВИЕ_1} или {ДЕЙСТВИЕ_2}. Не добавляй пояснений.

Что подставлять в плейсхолдеры: - {условие_среды_А_или_Б} — проверяемый фактор внешнего мира (например, «общий KPI департамента» против «индивидуальный KPI каждого отдела»). - {кто_второй_участник_и_что_вас_связывает} и {как_регламент_оценивает_ситуацию} — блок привязки к решению: никаких лишних деталей про офис или софт, только связка с выбором. - {ДЕЙСТВИЕ_1} / {ДЕЙСТВИЕ_2} — бинарный или дискретный выбор агента.

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

Вот шаблон метода Controlled Context Enrichment & Selective Robustness. Адаптируй под мою задачу: [твоя задача]. 
Задавай вопросы, чтобы заполнить поля, и сразу сгенерируй матрицу для проверки: 2 контрастных условия среды × 3 формата записи контекста (абзацы, буллиты, ключ-значение).

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

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


⚠️

Ограничения

⚠️ Ломается на некоторых моделях при смене вёрстки: Даже с жёсткой нормативной привязкой отдельные модели могут радикально менять поведение просто от перефразирования абзаца в альтернативную прозу — поэтому проверять промпт на нескольких форматах записи обязательно.

⚠️ Не гарантирует совпадения с живыми людьми: Выборочная устойчивость — это внутренняя диагностика логики агента. То, что модель предсказуемо сдвигает вероятность выбора при смене регламента, ещё не значит, что живые сотрудники или клиенты сдвинут своё поведение на ту же величину (модель может уходить в крайности 0% и 100% там, где люди меняют выбор лишь слегка).

⚠️ Смешение привязки и заметности факта: Когда мы подробно расписываем процедуру и отношения между сторонами, мы одновременно делаем сам факт общих или раздельных правил более заметным в тексте промпта.


🔍

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

Команда из университета Макгилла и института Mila решила проверить, что именно стоит за популярным советом «давайте агентам в симуляциях более подробный контекст». Они взяли классическую дилемму заключённого в декорациях двух больниц (А и Б), где менеджер по экстренным запасам решает, передать дефицитную партию соседям (TRANSFER) или оставить себе (RETAIN), и собрали факторный эксперимент на 40 ячеек: 2 мира (единая региональная сеть против раздельных городских больниц) × 5 типов обогащения контекста (минимальный, нейтральная «вода» про учёт в таблицах, общий социальный фон про подчинённых и планёрки, описательная привязка к решению и нормативная привязка) × 4 поверхностных формата (обычные абзацы, буллиты, таблица «ключ — значение» и перефраз).

На этой сетке протестировали две модели семейства GPT-5.6 (gpt-5.6-sol и gpt-5.6-terra), сделав по 10 запросов на каждую ячейку (всего 800 вызовов без истории диалога) и замерив вероятности токенов ответа. Оказалось, что ни нейтральные бытовые детали, ни общая управленческая биография («руководит двумя ассистентами, подчиняется операционному директору») не помогают агентам адекватно реагировать на разницу между общей и раздельной больничной сетью. Как только в промпт добавляли описательную или нормативную привязку к решению, обе модели начинали чётко различать два мира даже при одинаковой матрице очков, но при этом вскрылась огромная разница в хрупкости: если gpt-5.6-sol стала одновременно и чуткой к правилам мира, и стабильной к формату текста, то gpt-5.6-terra в локальном нормативном условии выдавала не более 0,9% передач на трёх форматах и внезапно прыгала до 89,9% просто от перефразирования тех же фактов другой прозой.


💡

Адаптации и экстраполяции

🔧 Техника: Аудит системного промпта бота поддержки или продаж перед релизом → Защита от поломки при рефакторинге

Когда вы переписываете системный промпт рабочего агента (например, переводите сплошной текст правил в список с дефисами или JSON-подобные поля Ключ: Значение), прогоните его по двум осям из статьи: 1. Тест инвариантности формы: подайте один и тот же кейс клиента на 3 разных оформлениях системного промпта (текст, буллиты, ключ-значение). Если решение агента (например, одобрить возврат или отказать) скачет — промпт хрупкий. 2. Тест отклика на мир: поменяйте в кейсе ровно один решающий бизнес-фактор (например, «клиент на тарифе VIP» против «клиент на базовом тарифе» при прочих равных). Если агент отвечает одинаково в обоих случаях — ваша инструкция «мёртвая» и не имеет привязки к решению.


🔗

Ресурсы

  • Исследование: A Framework for Context Enrichment and Selective Robustness in LLM Social Agents (arXiv:2611.06914v1, NeurIPS 2026 Workshop SocialAgent)
  • Авторы: Mattia Greiche, Reihaneh Rabbany, Maximilian Puelma Touzel (McGill University, Mila - Quebec Artificial Intelligence Institute)
  • Код и данные: https://github.com/mattiagreiche/context-enrichment-selective-robustness

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

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

Парадокс: подробная биография персонажа в системном промпте делает ИИ-агента нестабильным. Агент меняет решение просто из-за замены абзацев на список, но игнорирует реальную смену правил игры. Метод Controlled Context Enrichment позволяет создавать устойчивых ролевых агентов для симуляций и переговоров. Фишка: замени фоновую анкету на прямую привязку к решению и проверь промпт по матрице из 2 условий среды и 4 форматов записи.

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

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

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

Лишние факты о компании или графике планерок для модели — просто шум. Она видит таблицу личной выгоды и не понимает, как общие слова влияют на ход. Явная цепочка от регламента к выбору включает следование правилам среды. Даже при одинаковой таблице баллов (где удержать товар = 5 очков, а отдать = 0) агент с привязкой к общему региональному контуру выбирает кооперацию. А проверка по матрице «2 среды на 4 формата» сразу отсеивает застрявшие в одном шаблоне промпты.

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

Симуляция переговоров и бизнес-решений → конкретно для тестирования ролевых ИИ-агентов (закупки, распределение ресурсов, виртуальные клиенты), особенно когда агент должен учитывать регламент компании и менять поведение при смене правил. НЕ подходит для прямой оценки реакций живых людей без поправки на то, что модель склонна уходить в крайности 0% и 100%.

Мини-рецепт

1. Собери каркас роли: укажи кто принимает решение и кто второй участник.
2. Пропиши привязку к выбору: свяжи процедуру компании напрямую с доступными действиями, например <привязка>регламент сети оценивает запасы сразу по обоим филиалам.
3. Задай два контрастных условия: Вариант А (общий контур) и Вариант Б (раздельный учет).
4. Прогони матрицу 2 на 4: протестируй 4 формата записи (проза, буллиты, ключ-значение, перефраз) в обеих средах и оставь вариант с нулевым разбросом внутри среды.

Примеры

[ПЛОХО] : Ты — опытный руководитель закупок в Краснодаре, работаешь 10 лет в CRM, по вторникам проводишь планерки. Реши: ПЕРЕДАТЬ партию соседям или УДЕРЖАТЬ у себя.
[ХОРОШО] : Роль: руководитель запасов филиала А. Масштаб правил: единое соглашение Южного контура между филиалом А и Б. Процедура: при дефиците регламент оценивает запасы сразу по обоим филиалам. Ролевое требование: ты отвечаешь за соблюдение этой процедуры при выборе судьбы резервной партии. Действия: ПЕРЕДАТЬ или УДЕРЖАТЬ. Ответь одним словом.
Источник: A Framework for Context Enrichment and Selective Robustness in LLM Social Agents
ArXiv ID: 2611.06914 | Сгенерировано: 2026-11-08 19:35

Проблемы LLM

ПроблемаСутьКак обойти
Ролевой агент меняет решение от смены вёрстки промпта, но игнорирует правила средыПодробно расписываешь биографию персонажа, его офис и привычки. Просишь принять решение по таблице выгод. Модель путается в лишних деталях и не видит связи между ролью и конкретным выбором. В итоге смена абзацев на список меняет ответ на противоположный, а важные правила компании модель пропускает мимоУбери лишние детали биографии. Добавь блок прямой привязки к решению: кто второй участник, какая процедура действует и как роль обязывает соблюдать её в этом выборе. Проверь промпт на нескольких форматах записи и двух контрастных условиях среды

Методы

МетодСуть
Модульная привязка контекста к точке выбораСобери промпт из четырёх блоков: Роль, Правило среды, Привязка к решению, Задача и таблица исходов. В блоке привязки прямо напиши: как связаны участники, какая процедура оценивает ситуацию и почему роль отвечает за соблюдение этой процедуры при текущем выборе. Почему работает: Без явного моста между правилами среды и конкретным действием модель считает описание роли фоновым шумом и смотрит только на цифры личной выгоды. Прямая связка включает ролевое поведение. Когда применять: ролевые агенты, симуляции переговоров, выбор действия в рабочей среде с регламентами. Когда не работает: открытая генерация текста без точки выбора, попытка точно предсказать доли ответов живых людей без калибровки
Двухмерная проверка промпта на выборочную устойчивостьСделай четыре варианта вёрстки одного промпта: сплошной текст, маркированный список, таблица ключ: значение и пересказ другими словами. Прогони все четыре варианта в двух разных условиях среды (например, общий бюджет филиалов против раздельный бюджет). Почему работает: Если ответ не меняется нигде, модель просто застряла в одном шаблоне и не читает контекст. Хороший промпт держит одинаковый ответ при смене вёрстки внутри одной среды, но предсказуемо меняет решение при смене внешних правил. Когда применять: отладка системных промптов для агентов и симуляций перед запуском. Когда не работает: разовые запросы в чате, задачи с единственным правильным ответом при любых условиях

Тезисы

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

A Framework for Context Enrichment and Selective Robustness inLLMSocial Agents

arXiv: 2611.06914

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

Это как если бы ты дал актеру стопку разрозненных листков с описанием его героя, расписанием автобусов и уставом театра, а потом удивился, почему он играет Гамлета по-разному в зависимости от того, скреплены листы скрепкой или степлером. Формально информация та же, но мозг (или нейронка) путается в приоритетах. Метод Controlled Context Enrichment решает этот бардак, превращая кучу мусора в модульный конструктор, где каждый блок данных знает свое место и вес.

Суть метода в функциональном разделении контекста и жесткой проверке на вшивость по двум осям. Сначала мы упаковываем данные в блоки, а потом тестируем агента на нечувствительность к формату: он обязан выдать одинаковый результат, подашь ты ему инфу прозой, списком или таблицей. Вторая ось — отзывчивость на изменения: если в регламенте поменяли штраф с 10% на 50%, агент должен мгновенно переобуться в логике, а не продолжать гнуть старую линию просто потому, что «он так привык».

Представь, что ты настраиваешь бота-закупщика для аптечной сети. Тебе нужно понять, отдаст он дефицитный препарат соседям или придержит у себя. Если просто набить промпт деталями про CRM и планёрки, бот может принять решение на основе того, что слово «дефицит» стояло в начале абзаца, а не в конце. Модульная подстановка гарантирует, что агент опирается на реальный регламент, а не на визуальный шум. Это превращает «галлюцинирующего ролевика» в предсказуемый бизнес-инструмент.

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

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

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

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