TL;DR
MAR (Multi-Agent Reflexion) — техника, которая заменяет самокритику LLM на структурированные дебаты между несколькими персонами-критиками. Вместо того чтобы модель сама проверяла свою работу и делала выводы (как в оригинальной Reflexion), MAR запускает дискуссию: каждая персона анализирует ошибку со своей точки зрения, критики спорят друг с другом, а судья синтезирует их мнения в единую рефлексию для следующей попытки.
Одноагентная рефлексия страдает от зацикливания на ошибке: когда одна и та же модель генерирует ответ, оценивает себя и формулирует выводы, она часто повторяет ту же логику вместо исправления. Это называют "деградацией мышления" (degeneration of thought) — модель оправдывает свою ошибку, переформулирует её, но не меняет подход. В экспериментах с кодом исследователи видели: модель генерирует баг → критикует себя → генерирует тот же баг снова. С многошаговыми рассуждениями (HotPotQA) — то же самое: неверная логика повторяется от попытки к попытке.
MAR разделяет роли: актёр решает задачу, критики с разными стилями мышления анализируют провал (один требует фактов, другой ищет альтернативы, третий проверяет логику), судья собирает их аргументы в консенсус. Этот консенсус становится рефлексией для следующей попытки актёра. Обычно хватает 2 раундов дебатов — дальше отдача падает, а расход токенов растёт.
Схема метода
ШАГ 1: Актёр решает задачу → ответ + рассуждения
ШАГ 2: Оценка результата → успех/провал
[Если провал:]
ШАГ 3: Судья передаёт ошибку критикам → каждая персона пишет диагноз
ШАГ 4: Дебаты (1-2 раунда) → критики оспаривают/дополняют друг друга
ШАГ 5: Судья синтезирует → консенсусная рефлексия
ШАГ 6: Актёр пробует снова с новой рефлексией в памяти
Все шаги требуют отдельных запросов. Один цикл = примерно 3x больше токенов, чем обычная Reflexion.
Пример применения
Задача: Ты раздумываешь — выходить ли на Wildberries с новым брендом эко-свечей ручной работы. Средний чек 800₽, вложения на старт 300к, конкуренция высокая. Твоя первая попытка анализа зациклилась на "низкая цена = много продаж", но интуиция говорит что-то не так.
Промпт (ШАГ 1 — Актёр):
Проанализируй решение: выходить ли на Wildberries с эко-свечами ручной работы?
Данные:
- Средний чек: 800₽
- Стартовые вложения: 300 000₽
- Конкуренция: высокая (10+ брендов в топе)
- Позиционирование: экологичность, ручная работа
Дай рекомендацию с обоснованием.
→ Актёр выдаёт ответ, например: "Да, выходи. Снизь цену до 600₽ для конкуренции."
Промпт (ШАГ 3-4 — Дебаты критиков):
Актёр дал рекомендацию: "Да, выходи. Снизь цену до 600₽."
Я считаю, что это может быть неверно. Запусти дебаты между критиками:
**Верификатор** (требует фактов): проверяет логику по данным — юнит-экономика, реальная конверсия на WB, стоимость привлечения.
**Скептик** (ищет риски): какие допущения могут быть неверны? Что, если низкая цена убьёт восприятие "премиум ручная работа"?
**Логик** (строгость к метрике): считаем точно — при 600₽ и комиссии WB 15-20%, какова маржа? Окупятся ли 300к?
**Креативщик** (альтернативы): а если вообще не WB? Может, Instagram-продажи с личным брендом дадут больше?
Пусть каждый критик напишет диагноз, потом 1 раунд дебатов (кто с кем не согласен и почему).
Промпт (ШАГ 5 — Судья):
Вот дебаты критиков [вставить вывод из предыдущего шага].
Ты судья. Синтезируй консенсус:
- Какие аргументы самые сильные?
- Где критики согласны?
- Какую рефлексию дать актёру для пересмотра решения?
Сформулируй короткую рефлексию (3-5 тезисов).
Промпт (ШАГ 6 — Актёр с рефлексией):
Вот твоя первая рекомендация: "Да, выходи. Снизь цену до 600₽."
Вот рефлексия от критиков:
[вставить консенсус от судьи]
Пересмотри решение с учётом этой рефлексии. Дай новую рекомендацию.
Результат:
Ты получишь 3 слоя анализа:
- Первая попытка актёра — часто поверхностная, зацикленная на одной логике.
- Дебаты критиков — 4 разных угла зрения: один считает цифры, другой ищет риски, третий проверяет допущения, четвёртый предлагает альтернативы. Видно где они спорят, где соглашаются.
- Итоговая рекомендация актёра — после рефлексии, учитывает аргументы всех сторон. Обычно глубже и практичнее первой попытки.
Формат: текстовые блоки с рассуждениями каждой персоны, затем синтез судьи, затем финальный ответ актёра.
Почему это работает
Слабость LLM: Модель не может "выйти из своей головы". Когда она генерирует ответ, оценивает его и делает выводы — она использует ту же систему мышления. Ошибка в логике воспроизводится на всех трёх этапах. Это как редактировать свой текст сразу после написания — ты не видишь косяков, потому что мозг ещё в той же колее. Результат: модель переформулирует ошибку, но не исправляет.
Сильная сторона LLM: Модель отлично играет разные роли, если им дать явные инструкции и контрастные установки. "Ты скептик — ищи дыры в логике" работает иначе, чем "Ты оптимист — ищи возможности". Когда несколько ролей спорят, модель генерирует разные паттерны рассуждений, а не повторяет один и тот же.
Как MAR использует это: Разделяет процесс на роли. Актёр думает свободно. Критики — каждый со своей оптикой (факты/риски/строгость/альтернативы) — анализируют с разных сторон. Судья выбирает самые сильные аргументы. Это как показать свой текст редактору, корректору и читателю — каждый увидит своё. В результате актёр на втором заходе получает не "ты ошибся потому что ошибся", а структурированную критику с разных точек зрения.
Рычаги управления промптом:
- Число критиков (4 в примере) → уменьши до 2-3 для простых задач или экономии токенов. Больше критиков = больше углов зрения, но дороже.
- Раунды дебатов (1-2) → для сложных задач дай 2 раунда, для средних — 1. Третий раунд почти не даёт прироста, а токены жрёт.
- Персоны критиков → замени абстрактные роли (Верификатор/Скептик) на конкретные под задачу. Для кода: Senior Engineer/QA/Code Reviewer. Для текста: редактор/SEO-специалист/читатель. Для стратегии: финансист/маркетолог/операционист.
- Инструкция судье → добавь "выдели 3 самых сильных аргумента" или "укажи где критики согласны" — фокусирует синтез.
- Условие консенсуса → можно задать "если критики расходятся — дай ещё раунд", но это увеличит расход. Или наоборот: "синтезируй даже при разногласиях".
Шаблон промпта
# ШАГ 1: Актёр решает задачу
{задача}
Проанализируй и дай рекомендацию/решение.
---
# ШАГ 2: Оценка (делаешь сам или через LLM)
[Если результат неверный/неполный — переходи к ШАГУ 3]
---
# ШАГ 3-4: Дебаты критиков
Актёр дал такой ответ:
"{ответ_актёра}"
Я считаю, что это может быть неверно/неполно. Запусти дебаты между критиками:
**{персона_1}** ({фокус_1}): {что проверяет/анализирует}
**{персона_2}** ({фокус_2}): {что проверяет/анализирует}
**{персона_3}** ({фокус_3}): {что проверяет/анализирует}
**{персона_4}** ({фокус_4}): {что проверяет/анализирует}
Каждый критик:
1. Напиши диагноз — что могло пойти не так в рассуждениях актёра
2. Прочитай диагнозы других — согласен/не согласен и почему
Один раунд дебатов.
---
# ШАГ 5: Судья синтезирует
Вот дебаты критиков:
[вставить вывод из ШАГА 3-4]
Ты судья. Синтезируй консенсус:
- Какие аргументы самые сильные?
- Где критики согласны?
- Какую рефлексию дать актёру для пересмотра?
Сформулируй короткую рефлексию ({число_тезисов} тезисов).
---
# ШАГ 6: Актёр пробует снова
Вот твоя первая попытка:
"{ответ_актёра}"
Вот рефлексия от критиков:
[вставить консенсус от судьи]
Пересмотри решение с учётом рефлексии. Дай новую рекомендацию.
Как заполнять плейсхолдеры:
{задача}— твоя задача целиком (вопрос/проблема/контекст){ответ_актёра}— то, что выдала модель на первой попытке{персона_1..4}и{фокус_1..4}— роли критиков под твою задачу:- Для бизнес-решений: Финансист (цифры/юнит-экономика), Маркетолог (спрос/позиционирование), Скептик (риски), Креативщик (альтернативы)
- Для кода: Senior Engineer (архитектура), QA Engineer (edge cases), Code Reviewer (читаемость/стандарты), Performance Engineer (оптимизация)
- Для текста: Редактор (структура/ясность), SEO (ключевые слова/читаемость), Читатель (понятно ли с нуля), Эксперт в теме (фактчекинг)
{число_тезисов}— обычно 3-5, для сложных задач можно больше
🚀 Быстрый старт — вставь в чат:
Вот шаблон Multi-Agent Reflexion (MAR) — техника дебатов между критиками для глубокого анализа.
Адаптируй под мою задачу: {опиши свою задачу}.
Задай вопросы: какие персоны-критики нужны для этой задачи (с учётом специфики), сколько раундов дебатов, на чём фокусироваться судье при синтезе.
[вставить шаблон выше]
LLM спросит про специфику задачи и нужные роли критиков — потому что для бизнес-решения нужны одни персоны (финансист/маркетолог), для кода — другие (Senior Engineer/QA), для текста — третьи (редактор/читатель). Она возьмёт структуру "дебаты → синтез → пересмотр" из шаблона и подставит персоны под твою задачу.
Ограничения
⚠️ Расход токенов: Один цикл MAR = примерно 3x больше токенов, чем обычная Reflexion (которая уже в 2x дороже базового промпта). Каждый провал запускает 4 критиков + дебаты + судью + повторную попытку. На сложных задачах с несколькими итерациями — это сотни тысяч токенов. Годится для важных решений, не для рутины.
⚠️ Overkill для простых задач: Если вопрос решается за один заход (например, "переформулируй этот абзац" или "найди ошибку в коде из 5 строк") — дебаты критиков не нужны. Базовый промпт сработает быстрее и дешевле.
⚠️ Чувствительность к формулировке персон: Если роли критиков слишком похожи (например, все "проверяют логику") — дебаты вырождаются в переформулирование одних и тех же мыслей. Нужно явно контрастные фокусы: цифры vs риски, факты vs альтернативы, строгость vs креатив.
⚠️ Несколько запросов: MAR — это workflow из 4-6 промптов, не one-shot. Нужно вручную передавать выводы между шагами (или скриптом, если есть API). Для тех, кто привык к "один вопрос = один ответ", это может быть непривычно.
Как исследовали
Исследователи взяли оригинальную Reflexion (где один агент сам себя проверяет и делает выводы) и воспроизвели её на двух бенчмарках: HotPotQA (многошаговые вопросы по Википедии, нужно связать факты из разных документов) и HumanEval (генерация кода на Python под спецификацию с unit-тестами). Использовали GPT-3.5-Turbo для всех ролей, чтобы изолировать эффект мультиагентности от мощности модели.
Воспроизвели проблему: В логах Reflexion они увидели систематическое зацикливание. Примеры: - В HumanEval модель генерировала баг (например, off-by-one в цикле) → писала рефлексию "надо проверить границы" → генерировала тот же баг снова. - В HotPotQA модель делала неверный логический шаг → критиковала себя → повторяла ту же логику другими словами.
Это называют degeneration of thought — модель не может выйти из своей колеи, потому что актёр, оценщик и рефлектор — одна и та же система.
Добавили мультиагентность: Заменили одного рефлектора на 4 персоны-критиков с явно контрастными фокусами. Для HotPotQA: Verifier (требует фактов), Skeptic (ищет дыры), Logician (строгость к метрике), Creative (альтернативы). Для HumanEval: роли из реального софтверного цикла (Senior Engineer, QA, Code Reviewer, Performance Engineer). Критики спорят 1-2 раунда, судья синтезирует → рефлексия идёт актёру.
Результаты удивили масштабом на коде: На HotPotQA улучшение скромное — 44% → 47% Exact Match (3 пункта). Но на HumanEval — 76.4% → 82.6% pass@1 (6.2 пункта). Это значительно, учитывая что базовый GPT-3.5 даёт 67%, а GPT-4 — 81.7%. То есть MAR на слабой модели обошёл сильную модель без рефлексии.
Почему HotPotQA дал меньше прироста? Исследователи копнули глубже и обнаружили: Exact Match (EM) — слишком строгая метрика. Она считает ответ неверным, если есть лишний пробел, синоним вместо точного слова или изменён порядок элементов. В логах они нашли кейсы, где MAR давал семантически правильный ответ (например, "Джон Смит" вместо "John Smith" или "столица Франции — Париж" вместо просто "Париж"), но EM засчитывал провал. Модель получала ложный негативный сигнал и меняла верный ответ на неверный. Это как учиться по экзамену, где правильное решение считается неправильным из-за опечатки — ты начинаешь сомневаться в верной логике.
Инсайт для практики: Мультиагентная рефлексия особенно сильна на задачах с точной проверкой (код, математика, логика), где обратная связь однозначна. На задачах с субъективной/неточной оценкой (как HotPotQA с EM) эффект размывается, потому что модель получает зашумлённый сигнал. Если хочешь применять MAR для текста/бизнес-решений — критерий успеха должен быть чётким.
Адаптации и экстраполяции
🔧 Техника: Конкретные имена вместо ролей → острее критика
Вместо абстрактных "Скептик" и "Креативщик" дай критикам узнаваемые имена или бренды. Для бизнес-решений: "Олег Тиньков (риски и жёсткая правда)" и "Артемий Лебедев (эстетика и UX)". Для маркетинга: "performance-маркетолог из Яндекса" и "бренд-стратег из BBDO". Модель играет роль острее, когда есть конкретный референс.
Пример фрагмента:
**Олег Тиньков** (риски/финансы): Разбери юнит-экономику жёстко. Где подводные камни? Что убьёт бизнес в первые 3 месяца?
**Артемий Лебедев** (эстетика/UX): Оцени визуал и клиентский опыт. Это выглядит дёшево? Почему клиент должен выбрать это, а не конкурента?
Работает, потому что у модели есть паттерны мышления этих фигур из обучающих данных — она генерирует критику в их стиле.
🔧 Техника: Динамический выбор персон → экономия токенов
Не запускай всех критиков сразу. Сначала дай одной персоне-триагу оценить тип ошибки, потом запускай только релевантных критиков.
Пример промпта:
Актёр дал ответ: "{ответ}".
Ты триаж-персона. Определи тип ошибки:
- Логическая (неверные выводы) → нужны Логик + Скептик
- Фактическая (неверные данные) → нужны Верификатор + Эксперт
- Креативная (узкий подход) → нужны Креативщик + Альтернативщик
Какие 2 критика запустить?
Потом запускаешь только выбранные роли. Это снижает расход токенов в 2 раза, сохраняя качество.
🔧 Техника: Асинхронные дебаты → последовательная критика
Вместо одновременных дебатов (все критики отвечают параллельно, потом спорят) используй цепочку: первый критик анализирует провал актёра, второй критикует первого, третий — обоих, судья синтезирует.
Пример:
# Раунд 1: Логик анализирует ответ актёра
[вывод Логика]
# Раунд 2: Скептик критикует Логика
Вот анализ Логика: "{анализ}".
Где он мог ошибиться? Что упустил?
# Раунд 3: Креативщик предлагает альтернативу
Вот критика Скептика: "{критика}".
Какой принципиально другой подход мог бы сработать?
# Раунд 4: Судья
Синтезируй цепочку: анализ Логика → критика Скептика → альтернатива Креативщика.
Плюс: каждый критик видит мысли предыдущих, критика становится накопительной. Минус: больше шагов, дольше по времени.
Ресурсы
MAR: Multi-Agent Reflexion Improves Reasoning Abilities in LLMs
Onat Ozer, Grace Wu, Yuchen Wang, Daniel Dosti, Honghao Zhang, Vivi De La Rue
University of Michigan
Репозиторий: https://github.com/danpro1011/reflexion
Связанные работы: - Reflexion (Shinn et al. 2023) — оригинальный фреймворк самокритики - Multi-Agent Debate (Du et al. 2023, Liang et al. 2023) — структурированные споры агентов - Chain-of-Thought (Wei et al. 2022) — пошаговое рассуждение - ReAct (Yao et al. 2022) — рассуждение + действия в среде
