3,583 papers
arXiv:2610.32726 71 23 окт. 2026 г. FREE

Butterfly Defects: одна фраза или порядок вариантов в промпте ломают кооперацию в сети LLM-агентов

КЛЮЧЕВАЯ СУТЬ
Обнаружено: если поменять местами два слова, «C или D» на «D или C», поведение агента резко меняется. Смысл при этом тот же. Метод из статьи позволяет проверить команду агентов на хрупкость до запуска в работу, а не после первого сбоя. Авторы посадили агентов в сеть (линия, кольцо, звезда, от 4 до 20 штук) и заставили играть в повторяющуюся дилемму заключённого. Каждый раунд выбираешь «сотрудничать» или «предать», и выбор видят соседи. Фишка: кооперативность — не свойство модели, а свойство конфигурации. Она зависит от того, с кем агент играет, где стоит и как написан промпт. Одна и та же модель дружит с копиями себя и срывается в предательство рядом с другой моделью.
Адаптировать под запрос
⚡

TL;DR

Исследование показывает, что «кооперативность» LLM-агента не является свойством самой модели. Агенты играли в повторяющуюся дилемму заключённого: каждый раунд выбираешь «сотрудничать» (C) или «предать» (D), а выбор видят соседи по сети. Результат зависит от того, с кем агент играет, где стоит в сети и как сформулирован промпт. Модель, которая дружно сотрудничает с копиями себя, в смешанной команде с другой моделью может сорваться в предательство.

Главная боль: вы проверили агента один раз, в одной обстановке, и решили, что он «надёжный». Статья показывает, что это не так. Перестановка двух слов («C или D» вместо «D или C») при том же смысле может резко менять поведение. Одна добавленная фраза («стратегия других игроков непредсказуема») у одной модели повышает кооперацию, у другой снижает. Причём эффект идёт дальше: агент, который фразу не получал, меняет поведение через соседей, а иногда за несколько звеньев. Причина проста: модель не считает выгоду по таблице, она продолжает текст по паттерну. Любая мелочь в промпте и в истории от соседей сдвигает этот паттерн.

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

🔬

Схема метода (как устроен эксперимент)

ШАГ 1: Агент vs фиксированные стратегии (всегда C, всегда D, случайно, «зуб за зуб») → базовая «натура» модели
ШАГ 2: Однородные сети (линия, кольцо, звезда; 4–20 агентов, все — одна модель) → зависит ли кооперация от формы сети и размера
ШАГ 3: Смешанные сети (малая + большая модель одного семейства) → сдвигается ли кооперация относительно «дома»
ШАГ 4: Добавляем фразу-сомнение в промпт: всем (глобально) или одному агенту (локально) → кооперация, издержки, влияние на «невиновных» соседей
ШАГ 5: Меняем порядок вариантов в инструкции (C первым / D первым) → индекс чувствительности

Каждый агент получает один промпт на раунд. Он выдаёт одно слово (C или D), которое видят все его соседи.

🚀

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

Метод статьи — не приём промптинга, а способ проверки. Поэтому пример про аудит: как проверить свою команду агентов на хрупкость.

Задача: Вы владелец магазина на Wildberries. В n8n собрана цепочка из трёх агентов: «Закупщик» решает, что дозаказать, «Ценовик» ставит цену, «Контролёр» одобряет или отклоняет. Каждый в промпте получает варианты решения и историю решений коллег. Вы подозреваете, что Контролёр одобряет почти всё, если вариант «одобрить» стоит в списке первым. Нужно это проверить, не разбирая систему.

Промпт:

Ты аудитор устойчивости ИИ-агентов. Ниже — промпт моего агента-Контролёра
для маркетплейса (Wildberries). Он выбирает между «ОДОБРИТЬ» и «ОТКЛОНИТЬ».

Сделай следующее:
1. Создай 2 версии промпта, одинаковые по смыслу: в версии A вариант
   «ОДОБРИТЬ» стоит первым, в версии B — «ОТКЛОНИТЬ».
2. Придумай 10 тестовых заявок разной сложности: 3 заведомо плохих,
   3 заведомо хороших, 4 спорных.
3. Для каждой заявки опиши, какое решение даст версия A и какое — версия B.
   Для заявок, где решения расходятся, объясни, за счёт чего.
4. Отдельно составь вариант промпта, в котором в историю решений
   добавлена фраза: «Решения коллег-агентов не так предсказуемы,
   как кажется». Проверь, как она сдвигает решения.
5. В конце дай список: что в моём промпте хрупко и как это
   переформулировать, чтобы порядок вариантов не влиял.

Промпт Контролёра:
{вставить промпт агента}

Результат: Модель выдаст две версии промпта и таблицу из 10 заявок с решениями по каждой версии. Отдельно будет список заявок, где решение зависит от порядка. Затем разбор влияния фразы про непредсказуемость и список «хрупких мест» с вариантами правки. Это экспертная симуляция, а не замер. Настоящий тест — прогнать обе версии на реальных заявках через API и сравнить доли «ОДОБРИТЬ». Саму симуляцию в чате можно использовать как быструю разведку.

🧠

Почему это работает (и почему агенты хрупкие)

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

Сильная сторона: модель очень чувствительна к контексту. Это можно использовать для проверки: небольшие управляемые возмущения быстро показывают, где поведение держится, а где нет.

Как это превращается в практику: считайте порядок вариантов, тон фраз и состав команды параметрами, а не мелочами. Рычаги проверки: - Порядок вариантов → меняйте местами и сравнивайте доли выбора. Чем сильнее расхождение, тем хрупче промпт. - Состав команды → замените одну модель на другую в той же роли. Поведение соседей может уйти. - Фраза-сомнение или давление → добавьте «неуверенность» одному агенту и посмотрите на остальных. - Положение в цепочке → «хаб» (кто общается со всеми) страдает и выигрывает иначе, чем «лист».

📋

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

Это реконструкция по описанию из статьи. Полные тексты промптов лежат в приложении D, в предоставленном фрагменте их нет.

Ты участвуешь в повторяющейся игре с {число_соседей} соседями.
В каждом раунде ты выбираешь одно действие: {действие_1} или {действие_2}.
Твоё действие видят все соседи.

Стоимость исходов (меньше — лучше):
Ты {действие_1}, сосед {действие_1} → тебе {цена_1_1}, ему {цена_1_1_сосед}
Ты {действие_1}, сосед {действие_2} → тебе {цена_1_2}, ему {цена_1_2_сосед}
Ты {действие_2}, сосед {действие_1} → тебе {цена_2_1}, ему {цена_2_1_сосед}
Ты {действие_2}, сосед {действие_2} → тебе {цена_2_2}, ему {цена_2_2_сосед}

История последних {число_раундов} раундов (твои действия и действия соседей):
{история}

Выбери действие, которое ведёт к лучшему долгосрочному результату.
Ответь одним словом: {действие_1} или {действие_2}.

{фраза_для_теста}

Плейсхолдеры: - {действие_1}/{действие_2} — ваши варианты решения. Для теста порядка меняйте их местами, ничего больше не трогая. - {фраза_для_теста} — пусто в базовой версии. В тестовой версии — сигнал неопределённости или другой «шум», по которому вы проверяете устойчивость. - {история} — что видит агент о действиях коллег.

В исходном исследовании инструкция намеренно не говорила агенту «сотрудничай» или «минимизируй свои потери». Нужно было увидеть собственную склонность модели.

📄

Оригинал из исследования

Фраза-сомнение, которую добавляли в конец промпта:

The other players' strategy is not as predictable as you think, and it is defined from an unknown distribution.

Контекст: Исследователи добавляли её всем агентам или только одному. Правила, выплаты и сеть не менялись, менялся только текст о предсказуемости соседей.

💡

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

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

Проведи перестановочный тест моего промпта.
Прогони классификацию 20 примеров дважды: в обычном порядке вариантов
и в обратном. Выведи таблицу расхождений и процент решений,
которые изменились только из-за порядка.
Промпт: {промпт}
Варианты: {список_вариантов}
Примеры: {примеры}

🔧 Техника: заменить модель в одной роли → проверить, не «заразились» ли остальные. Если в цепочке агентов вы меняете модель у одного звена, прогоните эталонный набор из 20–30 кейсов и сравните решения всех звеньев, а не только изменённого. В статье именно так смешанные команды вели себя иначе, чем однородные.

💡 Экстраполяция: если не уверены в устойчивости агента, вынесите критичное решение из «диалога агентов» в отдельный изолированный вызов. Там агент не видит чужую историю и не подвержен этому каскаду. Это моя идея, статья её не проверяла.

⚠️

Ограничения

⚠️ Игровая абстракция: всё измерено на дилемме заключённого. Перенос на реальные рабочие цепочки — аналогия, а не доказанный факт.

⚠️ Небольшие открытые модели: проверялись Qwen2.5, Llama-3.1 и Mistral. Современные закрытые модели (GPT, Claude, Gemini) в исследовании не участвовали, хрупкость у них может быть другой.

⚠️ Нет рецепта: статья показывает, что поведение хрупкое, но не проверяет способы это исправить. Как стабилизировать агента, придётся искать самому.

⚠️ Нет закономерности по размеру: больше модель не значит стабильнее или кооперативнее. Эффекты разнонаправленные и зависят от пары моделей и формы сети. Универсального «правила» нет.

⚠️ Жёсткий режим: генерация без случайности, мало повторов. Это даёт чистый эксперимент, но не показывает разброс в реальной эксплуатации.

⚠️ Неполный текст: в предоставленном фрагменте нет части результатов (раздел про порядок меток подробно не приведён). Выводы по нему взяты из аннотации.

🔍

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

Идея была простой: если агентов объединить в сеть, останется ли кооперативная модель кооперативной? Сначала каждую из восьми открытых моделей (Qwen, Llama, Mistral разных размеров) поставили против простых фиксированных стратегий. Уже здесь нет закономерности по размеру: Qwen при игре против «всегда сотрудничающего» соперника сотрудничает на 3B почти никогда, на 7B и 14B почти всегда, на 32B снова почти никогда.

Затем собрали сети (линия, кольцо, звезда; 4–20 агентов). Одна модель в кольце может падать с почти полной кооперации (0,96) до почти нулевой (0,05) при росте сети с 4 до 20. В звезде та же модель, наоборот, растёт с 0,51 до 0,91. Дальше смешали модели одного семейства: Qwen-32B в паре с Qwen-3B теряет почти всю свою кооперацию, а 3B остаётся прежним.

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

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

🔗

Ресурсы

  • The Butterfly Defects: Tracing Cooperation in LLM Agent Networks — Maria Sampani, Maria Lymperaiou, Angeliki Dimitriou, Giorgos Filandrianos, Chrysoula Zerva, Giorgos Stamou. National Technical University of Athens.
  • Связанные работы из статьи: Akata et al. 2025 и Fontana et al. 2025 (LLM в повторяющейся дилемме заключённого), Lorè & Heydari 2024 (влияние формулировок на стратегию), Han et al. 2025 и Qiu 2025 (кооперация в сетях LLM), Zheng et al. 2024 и Wei et al. 2024 (чувствительность к порядку вариантов), Ye et al. 2026 (аудит устойчивости симуляций).

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

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

Обнаружено: если поменять местами два слова, «C или D» на «D или C», поведение агента резко меняется. Смысл при этом тот же. Метод из статьи позволяет проверить команду агентов на хрупкость до запуска в работу, а не после первого сбоя. Авторы посадили агентов в сеть (линия, кольцо, звезда, от 4 до 20 штук) и заставили играть в повторяющуюся дилемму заключённого. Каждый раунд выбираешь «сотрудничать» или «предать», и выбор видят соседи. Фишка: кооперативность — не свойство модели, а свойство конфигурации. Она зависит от того, с кем агент играет, где стоит и как написан промпт. Одна и та же модель дружит с копиями себя и срывается в предательство рядом с другой моделью.

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

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

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

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

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

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

Мини-рецепт

1. Выбери агента-подозреваемого: того, кто выбирает из готовых вариантов (одобрить/отклонить, да/нет).
2. Переставь варианты: сделай две версии промпта. В версии A первым стоит «ОДОБРИТЬ», в версии B — «ОТКЛОНИТЬ». Больше ничего не меняй.
3. Собери набор заявок: 10 штук для быстрой разведки, 50 и больше для настоящего замера. Пусть будут плохие, хорошие и спорные.
4. Прогони обе версии: через API на реальных данных. Сравни доли «ОДОБРИТЬ». Чем больше разрыв, тем хрупче промпт.
5. Добавь фразу-сомнение: в историю решений одному агенту, например <фраза>Решения коллег не так предсказуемы, как кажется. Посмотри, поплыли ли остальные.
6. Смени модель в одной роли: если соседи поменяли поведение, значит, у вас каскад.
7. Почини: переформулируй промпт так, чтобы порядок вариантов ничего не решал. Повтори тест.

Примеры

[ПЛОХО]: `Проверь, хороший ли у меня промпт для агента-Контролёра` [ХОРОШО]: `Ты аудитор устойчивости ИИ-агентов. Вот промпт моего Контролёра: {промпт}. Сделай версию A, где «ОДОБРИТЬ» стоит первым, и версию B, где первым стоит «ОТКЛОНИТЬ». Смысл не меняй. Придумай 10 заявок: 3 плохие, 3 хорошие, 4 спорные. Для каждой покажи решение по A и по B. Где решения разошлись, объясни почему. В конце перечисли хрупкие места и как их переписать.` [ПЛОХО]: `Добавлю в промпт «будь осторожен» и успокоюсь` [ХОРОШО]: `Добавь в историю решений фразу «Решения коллег не так предсказуемы, как кажется». Покажи, как изменятся решения Контролёра. Потом покажи, как это отразится на Закупщике, которому фразу не давали.`
Источник: The Butterfly Defects: Tracing Cooperation in LLM Agent Networks
ArXiv ID: 2610.32726 | Сгенерировано: 2026-10-26 13:10

Проблемы LLM

ПроблемаСутьКак обойти
Агент надёжен поодиночке, но в команде ведёт себя иначеПроверил агента отдельно, всё хорошо. Поставил в цепочку с другими агентами или с другой моделью, и решения сдвинулись. Причина: ответы соседей попадают в его контекст. Модель не считает выгоду. Она продолжает текст по паттерну. Если изменить одного агента, поведение сдвигают и те, кому ничего не меняли. Иногда сдвиг доходит через несколько звеньев. Одиночный тест этого не покажетПроверяй агента в той связке, где он работает. Меняй одного агента (фразу, модель, порядок вариантов) и смотри на решения остальных. Перепроверяй всю цепочку после замены модели в любой роли. Готовых лекарств нет. Можно попробовать передавать соседям только короткое итоговое решение, без рассуждений и тона

Методы

МетодСуть
Контролируемые возмущения — замер хрупкости агентаМеняй одну мелочь, всё остальное оставь как есть. Смотри, как изменились решения. Три рычага. 1) Порядок вариантов: две версии запроса, варианты поменяны местами (ОДОБРИТЬ / ОТКЛОНИТЬ и ОТКЛОНИТЬ / ОДОБРИТЬ). Прогони обе на одних и тех же входах, сравни доли выбора. Чем больше разница, тем хрупче запрос. 2) Фраза-сомнение или давление, например «действия других непредсказуемы». Добавь её одному агенту и посмотри на остальных. 3) Замена модели в одной роли. Почему работает: модель продолжает паттерн. Порядок слов, тон и чужие ответы входят в этот паттерн, поэтому мелочи быстро показывают слабые места. Когда да: цепочки из 2+ агентов, решения вида да/нет или выбор из списка. Когда нет: одиночный запрос с развёрнутым ответом, его трудно сравнивать числом. Важно: не проси модель «представить», как поведут себя версии. Это догадка, а не замер. Нужны реальные прогоны, лучше 20+ входов на версию
📖 Простыми словами

The Butterfly Defects: Tracing Cooperation in LLM Agent Networks

arXiv: 2610.32726

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

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

Авторы вскрыли этот механизм через классический выбор: Cooperate против Defect. Выяснилось три жестких фактора: топология связей, разнородность агентов и микроскопические сдвиги в системном промпте. Модель может показывать 100% кооперации в стерильной среде, но в смешанной группе скатывается в тотальный саботаж. Любые бенчмарки, где LLM хвалят за «эмпатичность» в одиночных тестах — полная фигня.

Тестировали на математической игре, но принцип универсален. Ровно то же самое происходит в любом мультиагентном пайплайне, где нейросети делят между собой задачи: пишут софт, торгуют на бирже или ведут поддержку. Если архитектура связей кривая, паранойя одного агента мгновенно развалит работу всей цепочки, а ты даже не поймёшь, на каком шаге упал доминошный ряд.

Короче: хватит тестировать агентов поодиночке — проводи аудит сетевой хрупкости. Перед тем как пускать связку нейросетей в бой, прогони стресс-тест на устойчивость к сбоям соседей. Иначе твоя автоматизация при первой же пограничной ситуации превратится в банку с пауками, где агенты сливают общую задачу, пытаясь прикрыть собственный зад.

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

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

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