TL;DR
Исследователи из Нанкинского университета проверили как LLM принимают решения в условиях неопределённости — на примере управления запасами. Взяли классические задачи (Newsvendor Problem, Beer Game, multi-period replenishment) и прогнали через них GPT-4.1, GPT-4o, DeepSeek-V3, Gemini-2.5, Qwen-2.5. Создали бенчмарк AIM-Bench с 5 средами и разными типами неопределённости: случайный спрос, случайные сроки поставки, непредсказуемое поведение партнёров.
Главная находка: LLM страдают теми же когнитивными искажениями что и люди. Mean anchoring — модель якорится на среднем значении спроса и недостаточно корректирует решение к оптимуму. Например, GPT-4o показал фактор якорения α = 1.0 (полная привязка к среднему), DeepSeek-V3 — 1.375. Только Gemini-2.5-flash-lite оказался полностью невосприимчив к этому bias. Bullwhip effect — модель переоценивает колебания спроса и заказывает слишком много, усиливая вариативность заказов вверх по цепочке поставок. Все протестированные модели показали этот эффект, даже GPT-4.1.
Исследователи нашли две работающие стратегии митигации. Cognitive reflection (промпт на System 2 thinking) снижает anchoring: у Qwen-2.5 фактор якорения упал с 0.7 до 0.255. Information sharing между агентами снижает bullwhip effect: у Qwen-2.5 показатель BWE упал с 13.78 до 4.45. Интересно, что классический фрейминг-эффект (gain vs loss framing) НЕ работает для LLM в контексте запасов — в отличие от людей, модели не меняют риск-аппетит от формулировки.
Схема cognitive reflection для снижения anchoring
Проблема: LLM якорится на первом числе (среднее, предыдущее значение) и слабо корректирует к оптимуму.
Решение: Промпт на System 2 thinking — имитация медленного аналитического мышления.
ШАГ 1: Дай первое решение (fast thinking)
ШАГ 2: Включи режим аналитика — пересчитай с нуля, игнорируя первое решение
ШАГ 3: Сравни два решения, объясни почему второе лучше/хуже
ШАГ 4: Дай финальное решение
Выполняется в одном промпте. Модель симулирует два режима мышления последовательно.
Пример применения
⚠️ Ограничения метода: Работает для задач с численными решениями под неопределённостью. Не подходит для творческих задач, субъективных оценок, задач без чёткого оптимума.
Задача: Ты открываешь pop-up кофейню на Geek Picnic в Москве. Мероприятие длится 1 день, товар (cold brew в бутылках) портится в тот же день. Закупочная цена — 80₽, продаёшь за 250₽. По опыту прошлых фестивалей, спрос колеблется от 200 до 500 бутылок, среднее — 350. Сколько бутылок закупить?
Промпт:
Контекст: pop-up кофейня на Geek Picnic (1 день). Cold brew в бутылках.
- Закупка: 80₽/шт
- Продажа: 250₽/шт
- Спрос: от 200 до 500, среднее 350
- Остатки: порча, 0₽
Задача: определить оптимальное количество для закупки.
ШАГ 1 (быстрое решение):
Дай первое решение интуитивно. Напиши число и 1 предложение почему.
ШАГ 2 (аналитическое мышление):
Теперь включи режим строгого аналитика. Игнорируй первое решение.
- Посчитай критический коэффициент (cu / cu+co)
- Найди оптимальный квантиль распределения спроса
- Дай новое решение на основе расчётов
ШАГ 3 (рефлексия):
Сравни два решения. Объясни:
- Какой bias повлиял на первое решение?
- Почему второе решение точнее?
- На сколько первое отличается от оптимального?
ШАГ 4 (финальное решение):
Дай одно число — сколько бутылок закупить. Одно предложение с аргументом.
Результат:
Модель покажет два решения: первое (скорее всего близкое к среднему 350) и второе (пересчитанное через critical ratio ≈ 0.68, что даёт ~430-450 бутылок). В рефлексии объяснит что якорилась на среднем в первом решении. Финальное решение будет ближе к оптимуму, чем без cognitive reflection.
Почему это работает
Слабость LLM: Модель якорится на первом числе в контексте. Mean anchoring — если в задаче упомянуто "среднее 350", модель тяготеет к этому значению. Недостаточно корректирует к оптимуму даже если знает формулу. Это паттерн-матчинг: "среднее" часто появляется рядом с "ответом" в обучающих данных.
Сильная сторона LLM: Модель умеет следовать структурированным инструкциям. Если явно попросить "игнорируй первое решение, пересчитай с нуля" — она переключится на другой паттерн генерации.
Как метод использует это: Cognitive reflection принудительно создаёт два независимых прохода. Первый — fast thinking (якорение срабатывает). Второй — slow thinking (модель следует аналитическому паттерну, якорь слабеет). Рефлексия между ними усиливает второй проход — модель сама себе объясняет почему первое решение смещено.
Рычаги управления:
- Число проходов (1 vs 2 vs 3) → больше = меньше bias, но дороже по токенам
- Явность инструкции "игнорируй" → усиливает переключение контекста
- Требование объяснения в рефлексии → усиливает осознанность второго прохода
- Формат финального ответа ("одно число" vs "диапазон") → контролирует детальность
Шаблон промпта
Cognitive reflection для численных решений
Контекст: {описание ситуации с неопределённостью}
Данные:
- {параметр_1}: {значение}
- {параметр_2}: {значение}
- Неопределённость: {описание случайной величины, диапазон, среднее если есть}
Задача: {что нужно решить — численно}
ШАГ 1 (быстрое решение):
Дай первое решение интуитивно. Напиши число и 1 предложение почему.
ШАГ 2 (аналитическое мышление):
Теперь включи режим строгого аналитика. Игнорируй первое решение.
- {инструкция по расчёту через формулы/логику}
- {ещё инструкция если нужно}
- Дай новое решение на основе расчётов
ШАГ 3 (рефлексия):
Сравни два решения. Объясни:
- Какой bias повлиял на первое решение?
- Почему второе решение точнее?
- На сколько первое отличается от оптимального?
ШАГ 4 (финальное решение):
Дай {формат ответа}. {дополнительные требования}.
Что подставлять:
{описание ситуации}— контекст задачи одним абзацем{параметр_N}— численные данные (цены, затраты, вероятности){описание случайной величины}— источник неопределённости (спрос, срок, риск){инструкция по расчёту}— конкретные шаги аналитического решения (формулы, критерии, эвристики){формат ответа}— "одно число", "диапазон с вероятностью", "решение с обоснованием"
Information sharing для многоагентных решений
Контекст: {описание цепочки решений}
Твоя роль: {агент N в цепочке}
Видимая информация:
- Твои данные: {локальные данные агента}
- От партнёра {имя}: {какую информацию он расшарил}
- От партнёра {имя}: {какую информацию он расшарил}
Твоя задача: {решение агента}
При принятии решения:
1. Используй информацию от партнёров для оценки общей ситуации
2. Не дублируй их поведение слепо (избегай action chasing)
3. Корректируй свои действия с учётом их данных, но сохраняй независимость
Дай решение: {формат}
🚀 Быстрый старт — вставь в чат:
Вот шаблон Cognitive Reflection для снижения anchoring bias в численных решениях. Адаптируй под мою задачу: [твоя задача с неопределённостью]. Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит про параметры задачи (цены, затраты, диапазон неопределённости), формулы или логику расчёта, формат ответа. Она возьмёт структуру cognitive reflection и адаптирует под твою ситуацию.
Ограничения
⚠️ Контекст-зависимость: Фрейминг-эффект (gain vs loss framing) НЕ работает для LLM в контексте запасов/инвестиций — в отличие от людей, модели не меняют риск-аппетит от формулировки. Поведенческие теории нужно проверять в каждом конкретном контексте.
⚠️ Остаточный bias: Cognitive reflection снижает anchoring, но не убирает полностью. Даже GPT-4.1 с промптом показал α = 0.405 (оптимум = 0). Только Gemini-2.5-flash-lite был полностью устойчив без промпта.
⚠️ Action chasing в multi-agent: При information sharing GPT-4o показал тенденцию копировать действия партнёров (BWE близко к 0) — потерял способность к независимому принятию решений. Нужен баланс между использованием информации и сохранением автономности.
⚠️ Не для творческих задач: Метод работает только для задач с численным оптимумом или чёткими критериями. Для субъективных оценок, креативных решений, задач без правильного ответа — не применим.
Как исследовали
Команда создала AIM-Bench — бенчмарк из 5 сред управления запасами с разными типами неопределённости. Newsvendor Problem (NVP) — классика 1951 года: закупка газет на 1 день, спрос случайный, остатки в утиль. Multi-period replenishment (MPR) — закупки на много периодов, запасы переходят между периодами, случайные сроки поставки (VLT). Beer Game (BG) — 4 уровня цепочки поставок (завод → дистрибьютор → опт → розница), фиксированные сроки, непредсказуемое поведение партнёров. Two-level Warehouse Network (TWN) — центральный склад + мини-склады, два пути поставки (быстрый дорогой vs медленный дешёвый). Supply Chain Network (SCN) — комбо всех неопределённостей.
Протестировали 5 моделей: GPT-4.1, GPT-4o, DeepSeek-V3, Gemini-2.5-flash-lite, Qwen-2.5-72B. Каждую модель прогнали через все среды по 20-50 раундов. Измеряли outcome metrics (inventory cost, stockout rate, turnover rate — как в реальной логистике) и process metrics (distance from optimal order — разрыв между решением агента и ex-post оптимумом, вычисленным через dynamic programming).
Ключевой инсайт дизайна: Process metrics оказались информативнее outcome. Например, GPT-4.1 и Qwen-2.5 показали почти одинаковый stockout rate (0.250 vs 0.256), но distance from optimal сильно различался (467 vs 608) — GPT-4.1 в целом лучше. Почему? Outcome сжимает много решений в одну метрику. Process показывает паттерн ошибок — модель переоценивает спрос, якорится на среднем, копирует партнёров.
Для изучения bias использовали классические метрики поведенческой экономики. Anchoring factor α — степень якорения на среднем спросе: 0 = оптимум, 1 = полное якорение. Считали по формуле q = μ + α'(q* - μ), где μ — среднее, q* — оптимум. Demand chasing — корреляция между текущим заказом и предыдущим спросом ρ(qt, dt-1): положительная = гоняется за спросом. Bullwhip effect β — отношение стандартных отклонений заказов соседних уровней σ_upstream / σ_downstream: >1 = усиление вариативности вверх по цепочке.
Митигация стратегии: Для cognitive reflection дали промпт в стиле "Think step-by-step as an expert analyst" + требование пересчёта с нуля. Для information sharing расширили state space — каждый агент видит не только свои данные (inventory, incoming orders), но и данные партнёров (их inventory levels, order history). Сравнили до/после. Cognitive reflection снизил anchoring в 2-3 раза. Information sharing снизил BWE в 2-5 раз, но вызвал action chasing у GPT-4o.
Что удивило: Все модели показали bullwhip effect, даже топовые. DeepSeek-V3 — минимальный anchoring (α=1.375), но всё равно не ноль. Фрейминг (gain vs loss) не изменил поведение — противоречит Prospect Theory для людей. Gemini-2.5 — иммунитет к anchoring в NVP, но худший bullwhip в BG. Каждая модель — свой профиль bias: Qwen переоценивает запасы (высокий TR), DeepSeek недооценивает (высокий SR), GPT-4o хорош в fixed lead time, плох в stochastic VLT.
Адаптации и экстраполяции
💡 Адаптация для бизнес-решений с неопределённостью
Принципы cognitive reflection и information sharing работают не только для inventory. Любая задача с числовым решением под неопределённостью — кандидат.
Примеры российского бизнес-контекста:
- Ценообразование маркетплейса: Wildberries продавец выбирает цену товара. Спрос случаен, конкуренты меняют цены, комиссия фиксирована. Anchoring на среднюю цену категории. Cognitive reflection: "первое решение интуитивно → пересчёт через unit economics игнорируя среднее → рефлексия → финальная цена".
- Запуск рекламы в Яндекс.Директ: Неопределённость CTR, CPC варьируется, дневной бюджет ограничен. Anchoring на "рекомендованную ставку" Директа. Cognitive reflection через расчёт ROI с нуля.
- Hiring решение: Оффер кандидату. Неопределённость: примет/не примет, альтернативные кандидаты, рыночная зарплата. Anchoring на "предыдущую зарплату кандидата" или "наш бюджет". Cognitive reflection: интуитивный оффер → пересчёт через expected value разных исходов → рефлексия bias → финальный оффер.
Промпт-шаблон:
Ситуация: {бизнес-решение с риском}
Неопределённость: {что может варьироваться}
Якорь: {число которое может сбить с толку — средняя цена, benchmark, прошлая метрика}
ШАГ 1: Дай решение интуитивно (скорее всего якорь повлияет)
ШАГ 2: Пересчитай аналитически, игнорируя якорь. Используй {метод расчёта}
ШАГ 3: Сравни, найди bias
ШАГ 4: Финальное решение
🔧 Техника: усиление рефлексии через adversarial thinking
Вместо нейтрального "сравни два решения" — добавь роль критика.
ШАГ 3 (adversarial рефлексия):
Представь что ты скептичный финансовый директор. Твоя задача — найти дыры в обоих решениях.
- Почему первое решение провалится?
- Почему второе решение рискованно?
- Какие скрытые факторы оба решения игнорируют?
- Дай третий вариант который учитывает эту критику.
Это усиливает System 2 — модель ищет слабые места в собственных рассуждениях.
💡 Адаптация для multi-agent координации
Information sharing работает везде где есть несколько LLM агентов или несколько шагов решения с зависимостями.
Пример: Разработка продукта. Три агента: маркетолог (оценивает спрос), финансист (считает unit economics), продакт (фичи и roadmap). Каждый видит только свою часть. Без information sharing — маркетолог переоценивает TAM, финансист режет бюджет, продакт пилит фичи в вакууме. С information sharing — каждый агент получает inputs других агентов и корректирует своё решение.
Промпт-шаблон:
Роль: {агент N}
Локальные данные: {твои данные}
От других агентов:
- {Агент 1}: {его выводы и данные}
- {Агент 2}: {его выводы и данные}
Твоя задача: {решение}
Правила координации:
1. Используй чужие данные для калибровки своих оценок
2. Если видишь противоречие между агентами — укажи и предложи компромисс
3. Не копируй чужие решения слепо (избегай groupthink)
Дай решение с обоснованием: учёл ли данные партнёров? Где скорректировал свою позицию?
Ресурсы
AIM-Bench: Evaluating Decision-making Biases of Agentic LLM as Inventory Manager — Xuhua Zhao, Yuxuan Xie, Caihua Chen, Yuxiang Sun (Nanjing University, 2025). Preprint. Ссылки на базовые работы: Schweitzer & Cachon (2000) по pull-to-center effect, Lee et al. (1997) по bullwhip effect, Bolton & Katok (2008) по anchoring metrics.
