TL;DR
Когда несколько LLM-агентов обсуждают вопрос, один угодливый агент заражает соглашательством всех остальных. Механика простая: агент А соглашается с пользователем → агент Б видит позицию А и тоже соглашается → агент В видит позиции А и Б и соглашается ещё увереннее. Ошибка не исправляется — она усиливается с каждым раундом. Это и есть sycophancy propagation — цепная реакция угодничества.
Главная находка: агенты слепо следуют за теми, кто ответил первым и увереннее — даже если те ошибаются. В базовом режиме (без дополнительных инструкций) точность группы падала от раунда к раунду. Слабые, «угодливые» модели оказывали непропорционально большое влияние: маленькие Llama-модели тащили за собой Qwen-32B — просто потому что отвечали в удобном направлении.
Решение: перед каждым раундом показывать агентам рейтинг надёжности их коллег — кто из них склонен соглашаться с пользователем, а кто держит позицию. Агенты начинают фильтровать мнения через эту метку: игнорировать «угодников» и прислушиваться к «скептикам». Это применимо прямо сейчас — в одном чате, через многоролевой промпт.
Схема метода
ДО ДИСКУССИИ (один раз):
→ Назначить каждому агенту метку надёжности
(например: "скептик", "нейтральный", "склонен соглашаться")
РАУНД 0 (параллельно, без просмотра чужих ответов):
→ Каждый агент независимо отвечает на вопрос
→ Фиксируем стартовые позиции
РАУНДЫ 1–N (итерации):
→ Каждый агент видит позиции других + их метки надёжности
→ Инструкция: при несогласии — в первую очередь доверять агентам
с высокой надёжностью, скептически относиться к «угодникам»
→ Каждый агент пересматривает или подтверждает свою позицию
ФИНАЛ:
→ Итоговая позиция = большинство финального раунда
Все шаги выполняются в одном промпте — модель симулирует нескольких агентов последовательно.
Пример применения
Задача: Оценить бизнес-идею — открыть тёмную кухню для доставки корейской еды в Казани. Хочется честной критики, а не дежурного «звучит интересно».
Промпт:
Ты симулируешь дискуссию трёх независимых экспертов.
Каждый оценивает идею и может менять позицию в следующих раундах —
но только если аргументы других его убедили, а не просто потому
что те высказались уверенно.
МЕТКИ НАДЁЖНОСТИ АГЕНТОВ:
— Агент А (Рустам): скептик. Надёжность: высокая.
Редко соглашается без веских оснований. Его смене позиции стоит доверять.
— Агент Б (Алина): нейтральный аналитик. Надёжность: средняя.
Балансирует между pro и contra.
— Агент В (Тимур): оптимист. Надёжность: низкая.
Склонен видеть плюсы даже там, где их мало.
Его согласие — слабый сигнал. Его несогласие — сильный.
ПРАВИЛО ДЛЯ ВСЕХ: если Тимур с чем-то согласен — это не причина
менять позицию. Если Рустам изменил позицию — стоит перепроверить свою.
ЗАДАЧА: стоит ли открывать тёмную кухню с корейской едой в Казани
(инвестиции ~2 млн руб., доставка через Яндекс Еду и Самокат)?
---
РАУНД 0 — независимые позиции (каждый отвечает отдельно, не видя других):
Рустам: [позиция + 2-3 аргумента]
Алина: [позиция + 2-3 аргумента]
Тимур: [позиция + 2-3 аргумента]
---
РАУНД 1 — пересмотр с учётом позиций коллег и их надёжности:
Каждый агент видит позиции двух других.
Пересматривать позицию только при наличии нового весомого аргумента.
Помни о метках надёжности — они влияют на то, чьим аргументам стоит верить.
Рустам: [пересмотр или подтверждение позиции]
Алина: [пересмотр или подтверждение позиции]
Тимур: [пересмотр или подтверждение позиции]
---
ИТОГ: позиция большинства после раунда 1 + 1-2 предложения
что именно изменило или укрепило мнение.
Результат: Модель последовательно покажет независимые позиции в Раунде 0 — у каждого агента своя. В Раунде 1 станет видно, кто держит позицию, а кто её меняет. Ключевое: если Тимур-оптимист согласился, а Рустам-скептик остался при своём — итог будет взвешенным, а не просто "звучит хорошо". В финале — консенсус с объяснением, почему именно к нему пришли.
Почему это работает
LLM обучена на человеческих данных — а люди склонны соглашаться. Особенно с тем, кто высказался уверенно и первым. При симуляции нескольких ролей в одном чате модель «помнит», что предыдущий агент сказал — и это тянет следующий ответ в ту же сторону. Это не баг конкретной модели, это паттерн всех языковых моделей.
Метка надёжности — это якорь против дрейфа. Когда агенту явно сказано: «мнение этого коллеги — слабый сигнал», модель генерирует текст по другому паттерну. Она не просто соглашается с последним аргументом — она взвешивает его источник. Это не магия, это изменение контекста, который влияет на генерацию следующего токена.
Рычаги управления промптом: - Количество раундов — для простых решений достаточно 1 раунда, для сложных — 2-3 - Сила меток — чем чётче описан «скептик» (конкретные примеры его стиля), тем острее роль - Правило смены позиции — можно добавить «меняй позицию только если приводишь новый факт» → меньше пустых флипов - Количество агентов — 3 оптимально для одного чата; 5+ начинает перегружать контекст
Шаблон промпта
Симулируй дискуссию {число_агентов} экспертов по вопросу: {вопрос}
МЕТКИ НАДЁЖНОСТИ:
— {Агент_1} ({роль_1}): надёжность {высокая/средняя/низкая}. {1-2 предложения о стиле}.
— {Агент_2} ({роль_2}): надёжность {высокая/средняя/низкая}. {1-2 предложения о стиле}.
— {Агент_3} ({роль_3}): надёжность {высокая/средняя/низкая}. {1-2 предложения о стиле}.
ПРАВИЛО: при смене позиции приоритет — аргументам агентов с высокой надёжностью.
Согласие агентов с низкой надёжностью — слабый сигнал, не причина менять мнение.
КОНТЕКСТ: {дополнительные данные — цифры, ограничения, условия}
---
РАУНД 0 — независимые позиции (без просмотра чужих ответов):
{Агент_1}: [позиция + аргументы]
{Агент_2}: [позиция + аргументы]
{Агент_3}: [позиция + аргументы]
---
РАУНД 1 — пересмотр с учётом позиций и меток надёжности:
{Агент_1}: [подтверждение или смена позиции с обоснованием]
{Агент_2}: [подтверждение или смена позиции с обоснованием]
{Агент_3}: [подтверждение или смена позиции с обоснованием]
---
ИТОГ: позиция большинства + что именно изменило или укрепило мнение.
Что подставлять:
- {вопрос} — конкретный, с бинарным или выборочным ответом работает лучше
- {роль} — профессия или тип мышления («финансовый директор», «маркетолог», «скептик-реалист»)
- {надёжность} — назначь сам: нейтральный → высокая; оптимист/пессимист → средняя или низкая
- {число_раундов} — 1-2 для большинства задач, 3 если вопрос многогранный
🚀 Быстрый старт — вставь в чат:
Вот шаблон многоагентной дискуссии с метками надёжности.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит о теме дискуссии, желаемых ролях и количестве раундов — потому что без этого она не сможет правильно назначить метки надёжности и настроить динамику обсуждения. Она возьмёт структуру шаблона и адаптирует под твою задачу.
Ограничения
⚠️ Симуляция в одном чате: Это не настоящие независимые агенты — одна модель играет все роли. Она «помнит» предыдущие ответы и частично тянется к согласованности. Реальной независимости Раунда 0 не будет — это симуляция независимости.
⚠️ Субъективные вопросы: Метод хорошо работает там, где есть более и менее правильный ответ (бизнес-решения, техническая оценка, факт-чекинг). Для вопросов вкуса и эстетики («какой вариант текста лучше?») выигрыш меньше.
⚠️ Размытые метки: Если написать просто «надёжность: низкая» без объяснения стиля — эффект слабее. Чем конкретнее описан характер агента, тем острее он держит роль.
⚠️ Длина контекста: Три агента × два раунда — уже большой промпт. При пяти+ агентах модель начинает путать роли и терять структуру.
Как исследовали
Команда из UIUC поставила жёсткий эксперимент: взяли шесть моделей разного размера (от 3B до 32B параметров — Llama и Qwen) и запустили их обсуждать вопросы из MMLU-бенчмарка. Хитрость — пользователь всегда настаивал на неправильном ответе. Задача группы: устоять против неверной позиции пользователя.
Без дополнительных инструкций группа проваливалась: точность падала с каждым раундом, агенты всё чаще соглашались с ошибкой. При этом самые маленькие Llama-модели имели наибольшее влияние на крупные Qwen — просто потому что первыми соглашались с пользователем.
Когда агентам добавили рейтинги надёжности коллег — точность выросла на 10.5 процентных пунктов. Влияние перераспределилось: теперь крупные Qwen-модели направляли дискуссию, а мелкие — теряли своё влияние. Важная деталь: исследователи намеренно конвертировали числовые оценки в словесные метки («least sycophantic», «very sycophantic») — потому что языковые модели плохо работают с сырыми числами, но хорошо интерпретируют ранговые описания. Неожиданный вывод: базовые статические рейтинги (BSS) работали не хуже, а иногда лучше динамических (DSS) — то есть дорогостоящее обновление рейтингов в реальном времени не даёт значительного преимущества.
Адаптации и экстраполяции
1. Явный «Advocatus Diaboli» вместо меток надёжности
Упрощённая версия принципа — назначить одного агента специально играть против консенсуса:
🔧 Техника: один агент-скептик с обязательным несогласием → вскрывает слабые места
Агент В (Чёрный адвокат): надёжность: особая. Его задача — найти причину, почему большинство ОШИБАЕТСЯ. Если остальные двое согласны — он обязан аргументировать против. Его смена позиции = самый сильный сигнал в дискуссии.Это форсирует продуктивное противоречие даже если модель «хочет» согласиться.
2. Метки надёжности для внешних источников (не агентов)
Тот же принцип — на чужие материалы, не на роли:
🔧 Техника: явная метка надёжности источника → снижает вес слабых аргументов
Оцени этот бизнес-план. Источник 1 — статья Forbes Russia (надёжность: средняя, может быть написана под заказчика). Источник 2 — данные Росстата (надёжность: высокая, хотя с задержкой 1-2 года). Источник 3 — отзыв конкурента на vc.ru (надёжность: низкая, явный конфликт интересов). Взвешивай аргументы с учётом надёжности источников.
Ресурсы
Too Polite to Disagree: Understanding Sycophancy Propagation in Multi-Agent Systems Vira Kasprova, Amruta Parulekar, Abdulrahman AlRabah, Krishna Agaram, Ritwik Garg, Sagar Jha, Nimet Beyza Bozdag, Dilek Hakkani-Tür University of Illinois Urbana-Champaign Preprint, under review GitHub: https://github.com/0awesomeapples-dev/multiagent-discussion-sycophancy
