3,583 papers
arXiv:2511.08319 78 11 нояб. 2025 г. FREE

MARA: адаптивное улучшение ответов через мультиагентную проверку

КЛЮЧЕВАЯ СУТЬ
Парадокс: Просишь LLM улучшить свой ответ через повторные итерации — он не исправляет ошибки, а становится увереннее в неправильном. Self-Refine и подобные методы проваливаются на задачах, где нужно одновременно держать в голове факты, персонализацию и связность диалога. MARA позволяет получать ответы, которые одновременно фактически точны + соответствуют профилю пользователя + логично продолжают диалог. Фишка: разделить проверку на трёх специалистов — один смотрит только факты, второй — только персонализацию, третий — только связность с предыдущими репликами. Четвёртый агент-планировщик динамически решает, кого задействовать и в каком порядке — на вопрос "когда построили дом?" сначала fact-agent, на "тебе интересна эта работа?" сначала persona-agent.
Адаптировать под запрос

TL;DR

MARA (Multi-Agent Refinement with Adaptive agent selection) — фреймворк, где три специализированных агента последовательно улучшают ответ LLM: один проверяет факты, второй — соответствие профилю пользователя, третий — связность с предыдущими репликами диалога. Четвёртый агент-планировщик динамически решает, каких агентов задействовать и в каком порядке — в зависимости от типа запроса.

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

Решение MARA: разделить проверку на три специализированных агента + добавить планировщика, который адаптирует набор и порядок агентов под конкретный запрос. На вопрос "когда построили этот дом?" — сначала fact-agent. На вопрос "тебе интересна эта работа?" — сначала persona-agent. Планировщик решает это автоматически.


🔬

Схема метода

ШАГ 0: Responding Agent → генерирует первоначальный ответ

ШАГ 1: Planner Agent → анализирует запрос и ответ → выдаёт:
       • набор нужных агентов (факты? персона? связность?)
       • последовательность их работы
       • обоснование для каждого агента

ШАГ 2-N: Refining Agents → последовательно улучшают ответ:
         Каждый агент получает:
         • текущую версию ответа
         • контекст диалога
         • обоснование от планировщика
         → выдаёт улучшенную версию

ФИНАЛ: Последний ответ → пользователю

Три типа Refining Agents:

  • Fact-refining — проверяет фактическую точность, использует внешние знания
  • Persona-refining — проверяет соответствие профилю/предпочтениям пользователя
  • Coherence-refining — проверяет связность с предыдущими репликами диалога

🚀

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

Задача: Вы ведёте переписку с клиентом в CRM. Клиент — владелец небольшой кофейни в Воронеже, интересуется экологичной упаковкой, ранее упоминал, что бюджет ограничен. Он спрашивает: "Какие есть варианты стаканчиков для капучино?"

Промпт (упрощённая версия для ручного применения):

# Контекст клиента
Профиль: владелец кофейни в Воронеже, интересуется эко-упаковкой, ограниченный бюджет
Предыдущие реплики: [история диалога]

# Мой черновой ответ
[ваш первый вариант ответа]

# Задача
Ты — эксперт по улучшению клиентских коммуникаций. Проверь ответ по трём аспектам:

1. ФАКТЫ: Верна ли информация о продуктах? Есть ли устаревшие данные?
2. ПЕРСОНАЛИЗАЦИЯ: Учитывает ли ответ профиль клиента (эко-интерес, бюджет, локация)?
3. СВЯЗНОСТЬ: Логично ли ответ продолжает предыдущий диалог?

Для каждого аспекта:
- Оцени текущее качество
- Если нужно улучшение — предложи конкретную правку
- Объясни, почему это важно для этого клиента

В конце выдай улучшенную версию ответа.

Результат: Модель проверит ответ по каждому аспекту последовательно. Укажет, например: "Упомянуты стаканчики Huhtamaki — но не указано, что они дороже бумажных на 40%, что важно для клиента с ограниченным бюджетом". Или: "Клиент из Воронежа — добавь информацию о локальных поставщиках". Финальный ответ учтёт все три аспекта.


🧠

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

Слабость LLM: Один агент при многократной итерации не становится точнее — он становится увереннее. Исследователи называют это "self-bias amplification". Модель видит свой предыдущий ответ и думает: "Ну, я же это написал, значит это правильно". Каждый цикл усиливает первоначальные ошибки вместо их исправления.

Сильная сторона LLM: Модели отлично работают, когда им дают узкую специализированную задачу с чётким фокусом. "Проверь только факты" работает лучше, чем "проверь всё". Плюс разные "точки зрения" (агенты) создают конструктивное напряжение — один агент может поймать то, что другой пропустил.

Как MARA использует это: Вместо одного агента-универсала — три специалиста. Каждый смотрит только на свой аспект. Плюс планировщик адаптирует проверку: если вопрос чисто фактический — зачем тратить ресурсы на проверку персонализации?

Рычаги управления:

  • Набор агентов: Для простых фактических вопросов — только fact-agent. Экономия токенов.
  • Порядок агентов: Если персонализация критична — начни с persona-agent
  • Глубина проверки: Можно добавить итерации внутри каждого агента для сложных случаев

📋

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

📌

Для планировщика:

Ты — планировщик проверки ответов в диалоге.

# Контекст диалога
{история_диалога}

# Текущий запрос пользователя
{запрос}

# Первоначальный ответ
{ответ}

# Доступные агенты проверки
- FACT: проверка фактической точности
- PERSONA: соответствие профилю/предпочтениям пользователя  
- COHERENCE: связность с предыдущими репликами

# Твоя задача
Определи:
1. Какие агенты нужны для этого запроса (может быть 1, 2 или все 3)
2. В каком порядке они должны работать
3. Обоснование для каждого агента — на что обратить внимание

Формат ответа:
АГЕНТЫ: [список через запятую]
ПОРЯДОК: [последовательность]
ОБОСНОВАНИЯ:
- FACT: [на что смотреть]
- PERSONA: [на что смотреть]
- COHERENCE: [на что смотреть]
📌

Для агента проверки фактов:

Ты — агент проверки фактической точности.

# Контекст
{история_диалога}

# Внешние знания (если есть)
{релевантные_факты}

# Текущий ответ для проверки
{ответ}

# Указание от планировщика
{обоснование_от_планировщика}

# Твоя задача
1. Найди фактические неточности, устаревшие данные, непроверенные утверждения
2. Для каждой проблемы — предложи исправление с источником
3. Выдай улучшенную версию ответа

Если фактических проблем нет — верни ответ без изменений с пометкой "Фактически корректен".
📌

Для агента персонализации:

Ты — агент проверки персонализации.

# Профиль пользователя
{профиль_пользователя}

# История диалога
{история_диалога}

# Текущий ответ для проверки
{ответ}

# Указание от планировщика
{обоснование_от_планировщика}

# Твоя задача
1. Проверь: учитывает ли ответ интересы, предпочтения, контекст пользователя?
2. Найди упущенные возможности персонализации
3. Выдай улучшенную версию, которая лучше резонирует с этим конкретным пользователем

Если персонализация достаточна — верни ответ без изменений с пометкой "Персонализация ОК".
📌

Для агента связности:

Ты — агент проверки связности диалога.

# Полная история диалога
{история_диалога}

# Текущий ответ для проверки
{ответ}

# Указание от планировщика
{обоснование_от_планировщика}

# Твоя задача
1. Проверь: логично ли ответ продолжает диалог?
2. Найди противоречия с ранее сказанным, разрывы контекста, игнорирование упомянутого
3. Выдай улучшенную версию с лучшей связностью

Если связность хорошая — верни ответ без изменений с пометкой "Связность ОК".

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

Вот система MARA для улучшения ответов в диалогах. Адаптируй под мою задачу: [опиши свой диалог/контекст].

Мне нужно проверить ответ по трём аспектам: факты, персонализация, связность. Сначала как планировщик определи, какие аспекты критичны. Потом проверь по каждому.

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

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


⚠️

Ограничения

⚠️ Затраты токенов: Полный цикл MARA требует 4-5 вызовов LLM (планировщик + 3 агента). Для простых вопросов это избыточно. Используйте, когда ошибка дорого стоит — клиентские коммуникации, экспертные ответы.

⚠️ Зависимость от качества профиля: Persona-agent работает только если есть информация о пользователе. Нет профиля — нет персонализации. Garbage in — garbage out.

⚠️ Планировщик не идеален: Исследователи показали, что "идеальный" планировщик (который всегда выбирает лучшую комбинацию агентов) даёт значительно лучшие результаты. Текущий планировщик на LLM иногда выбирает не оптимально.

⚠️ Не для креатива: Метод заточен под информационные диалоги — факты, предпочтения, контекст. Для творческих задач (написать стихотворение, придумать слоган) три аспекта MARA не релевантны.


🔍

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

Команда из KAIST, Amazon и UCL проверила MARA на трёх датасетах диалогов: PersonaChat (нужно учитывать профиль пользователя), INSCIT (нужны точные факты из Wikipedia), FoCus (нужно и то, и другое одновременно). Это 1700+ диалоговых запросов разной сложности.

Сравнивали с шестью бейзлайнами: от простого "без улучшения" до Self-Refine и нескольких мультиагентных систем (LLMvLLM, MADR, MultiDebate). Оценивали по четырём метрикам через G-Eval: связность, фактическая точность, естественность, вовлечённость.

Ключевой инсайт из результатов: Self-Refine и SPP (одноагентные методы) помогали на PersonaChat, где важен только профиль, но вредили на INSCIT и FoCus, где нужны факты. Одноагентная итерация усиливала фактические ошибки. MARA показала стабильное улучшение на всех датасетах — потому что разные агенты не "заражают" друг друга своей уверенностью.

Интересная деталь: исследователи попробовали "идеального планировщика" — перебрали все комбинации агентов и выбрали лучшую для каждого запроса. Результат был значительно лучше (Overall 82.88 против 74.38), но при этом использовал меньше вызовов агентов. Вывод: правильный выбор агентов важнее, чем количество проверок.

Human evaluation с 8 участниками подтвердила: люди предпочитают ответы MARA. Корреляция G-Eval с человеческими оценками — 0.35-0.58 в зависимости от метрики.


📄

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

Контекст: Промпты для каждого агента из Appendix исследования.

📌

Planner Agent Prompt:

Given a dialogue history and an initial response, your task is to identify which types of refinement are needed and in what order they should be applied.

Available refinement types:
- FACT: Ensures the response is factually accurate based on provided knowledge
- PERSONA: Ensures the response aligns with the user's persona and preferences
- COHERENCE: Ensures the response is coherent with the dialogue history

For each refinement type you select, provide a brief justification explaining why it is needed.

Dialogue History:
{dialogue_history}

Initial Response:
{initial_response}

Knowledge (if available):
{knowledge}

User Persona (if available):
{persona}

Output format:
Selected refinements (in order): [list]
Justifications:
- [TYPE]: [justification]
📌

Fact-Refining Agent Prompt:

You are a fact-checking agent. Your task is to verify and improve the factual accuracy of a response in a dialogue.

Dialogue History:
{dialogue_history}

Current Response:
{current_response}

Relevant Knowledge:
{knowledge}

Planner's Guidance:
{planner_justification}

Instructions:
1. Check if the response contains any factual inaccuracies
2. Verify claims against the provided knowledge
3. If inaccuracies are found, correct them while maintaining natural dialogue flow
4. If the response is factually accurate, return it unchanged

Output: [refined response or original if no changes needed]
📌

Persona-Refining Agent Prompt:

You are a personalization agent. Your task is to ensure the response aligns with the user's persona and preferences.

Dialogue History:
{dialogue_history}

Current Response:
{current_response}

User Persona:
{persona}

Planner's Guidance:
{planner_justification}

Instructions:
1. Check if the response considers the user's interests, preferences, and characteristics
2. Identify opportunities to make the response more relevant to this specific user
3. Refine the response to better resonate with the user's persona
4. Maintain factual accuracy and dialogue coherence

Output: [refined response or original if no changes needed]
📌

Coherence-Refining Agent Prompt:

You are a coherence agent. Your task is to ensure the response maintains logical consistency with the dialogue history.

Dialogue History:
{dialogue_history}

Current Response:
{current_response}

Planner's Guidance:
{planner_justification}

Instructions:
1. Check if the response logically follows from the previous turns
2. Identify any contradictions with previously stated information
3. Ensure proper reference to earlier mentioned topics
4. Refine the response to improve coherence while maintaining accuracy and personalization

Output: [refined response or original if no changes needed]

💡

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

📌

💡 Адаптация для оценки коммерческих предложений

Три агента MARA можно переназначить для проверки собственных КП:

# Агенты для проверки коммерческого предложения

FACT-AGENT → ЦИФРЫ И ОБЕЩАНИЯ
- Проверь: все ли цифры в КП актуальны?
- Нет ли обещаний, которые не можем выполнить?
- Корректны ли сроки и цены?

PERSONA-AGENT → СООТВЕТСТВИЕ КЛИЕНТУ  
- Учитывает ли КП специфику этого клиента?
- Говорим ли мы о его болях или о наших фичах?
- Подходит ли тон и уровень детализации?

COHERENCE-AGENT → СВЯЗНОСТЬ С ИСТОРИЕЙ
- Соответствует ли КП тому, что обсуждали на встрече?
- Нет ли противоречий с ранее отправленными материалами?
- Учтены ли возражения, которые уже звучали?
📌

🔧 Техника: объединение агентов для простых случаев

Для экономии токенов можно объединить трёх агентов в один запрос:

Проверь ответ по трём аспектам последовательно:

1. ФАКТЫ: [проверка] → [правка если нужно]
2. ПЕРСОНАЛИЗАЦИЯ: [проверка] → [правка если нужно]  
3. СВЯЗНОСТЬ: [проверка] → [правка если нужно]

Выдай финальную версию.

Это даст ~70% эффекта при 25% токенов. Для критичных коммуникаций — используй полную версию с отдельными вызовами.


🔗

Ресурсы

Работа: "Adaptive Multi-Agent Response Refinement in Conversational Systems"

Авторы: Soyeong Jeong (KAIST), Aparna Elangovan (Collate, ex-Amazon), Emine Yilmaz (Amazon, UCL), Oleg Rokhlenko (Amazon)

Базовые модели в исследовании: Claude Sonnet 3/3.5, GPT-4o-mini, LLaMA 3.1 (8B, 70B)

Датасеты: PersonaChat, INSCIT, FoCus, PRODIGy, Ubuntu Dialogue Corpus


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

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

Парадокс: Просишь LLM улучшить свой ответ через повторные итерации — он не исправляет ошибки, а становится увереннее в неправильном. Self-Refine и подобные методы проваливаются на задачах, где нужно одновременно держать в голове факты, персонализацию и связность диалога. MARA позволяет получать ответы, которые одновременно фактически точны + соответствуют профилю пользователя + логично продолжают диалог. Фишка: разделить проверку на трёх специалистов — один смотрит только факты, второй — только персонализацию, третий — только связность с предыдущими репликами. Четвёртый агент-планировщик динамически решает, кого задействовать и в каком порядке — на вопрос "когда построили дом?" сначала fact-agent, на "тебе интересна эта работа?" сначала persona-agent.

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

Не заставляй один агент улучшать всё сразу — дай каждому узкий фокус. Три специализированных агента последовательно проверяют ответ: факты → персонализация → связность. Планировщик анализирует запрос и решает: каких агентов задействовать (может быть один, два или все три) и в каком порядке. Для простого фактического вопроса — только fact-agent, экономия токенов. Для клиентской коммуникации, где важен контекст — все три, но порядок зависит от приоритета.

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

Когда модель видит свой предыдущий ответ и пытается его улучшить, она думает: "Ну я же это написал, значит это правильно". Исследователи называют это self-bias amplification — модель усиливает свои ошибки вместо исправления. Узкая специализация ломает этот паттерн: агент проверки фактов не отвлекается на персонализацию, агент персонализации не тратит "бюджет внимания" на факты. Плюс разные "точки зрения" создают конструктивное напряжение — один агент может поймать то, что другой пропустил. Планировщик адаптирует проверку под тип запроса — не тратит ресурсы на избыточные проверки.

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

Клиентские коммуникации (CRM, поддержка, продажи) → когда один ответ должен быть одновременно точным, персонализированным и связным с историей диалога. Экспертные консультации → где ошибка дорого стоит (медицина, юриспруденция, финансы). Чат-боты с персонализацией → где важен профиль пользователя и контекст беседы. НЕ подходит для творческих задач (стихи, сторителлинг) — там три аспекта MARA не релевантны. НЕ для простых FAQ — избыточные затраты токенов (4-5 вызовов LLM).

Мини-рецепт

1. Планировщик анализирует запрос: Скармливаешь ему диалог, запрос пользователя и черновой ответ. Он решает: какие агенты нужны (факты? персона? связность?) и в каком порядке. Выдаёт обоснование для каждого агента — на что обратить внимание.

2. Fact-agent проверяет факты: Получает текущий ответ + внешние знания (если есть) + обоснование от планировщика. Ищет неточности, устаревшие данные, непроверенные утверждения. Выдаёт исправленную версию.

3. Persona-agent проверяет персонализацию: Получает профиль пользователя + историю диалога + текущий ответ. Ищет упущенные возможности персонализации — учитывает ли ответ интересы, предпочтения, контекст конкретного человека. Выдаёт версию с лучшей персонализацией.

4. Coherence-agent проверяет связность: Получает полную историю диалога + текущий ответ. Ищет противоречия с ранее сказанным, разрывы контекста, игнорирование упомянутого. Выдаёт версию с лучшей связностью.

Примеры

[ПЛОХО] : Улучши этот ответ клиенту: "Стаканчики Huhtamaki — отличный выбор для капучино" (один агент пытается улучшить всё сразу — факты, персонализацию, связность. Модель становится увереннее в исходном ответе, а не точнее)
[ХОРОШО] : Сначала планировщик: Проанализируй запрос клиента (владелец кофейни, эко-интерес, ограниченный бюджет, вопрос про стаканчики). Какие агенты нужны и в каком порядке? → Планировщик решает: FACT → PERSONA → COHERENCE. Потом fact-agent: Проверь факты: верна ли информация про Huhtamaki? Есть ли упущенные детали? → находит что не указана цена (+40% к бумажным). Потом persona-agent: Учитывает ли ответ что у клиента ограниченный бюджет и эко-интерес? → добавляет информацию про локальных поставщиков в Воронеже. Coherence-agent: Логично ли продолжает предыдущий диалог? → проверяет что не противоречит ранее сказанному.
Источник: Adaptive Multi-Agent Response Refinement in Conversational Systems
ArXiv ID: 2511.08319 | Сгенерировано: 2026-01-11 20:11

Концепты не выделены.

📖 Простыми словами

MARA: адаптивное улучшение ответов через мультиагентную проверку

arXiv: 2511.08319

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

Это как если бы ты писал важное письмо боссу, а над душой стояли три занудных коллеги. Один — фактчекер, который бьет по рукам за вранье. Второй — психолог, следящий, чтобы ты не хамил и учитывал контекст. Третий — редактор, проверяющий, не забыл ли ты, о чем вы говорили пять минут назад. Формально ты автор, но на выходе получается идеальный текст, потому что каждый «зануда» отвечает только за свой участок фронта и не дает тебе уйти в самолюбование.

Вся магия держится на четырех ролях. Сначала Responding Agent выдает черновик, а потом в дело вступает планировщик. Он не гонит текст через всех подряд, а решает, кто нужен здесь и сейчас. Если клиент спрашивает про цены, включается агент по фактам. Если жалуется на жизнь — агент по персонализации. Метод адаптивного выбора экономит ресурсы и не превращает ответ в кашу. В итоге ответ проходит через фильтры реальности, истории диалога и личных предпочтений пользователя, становясь в разы точнее базовой выдачи.

Тестировали это на сложных диалогах, но принцип разделения труда применим везде: от умных CRM до техподдержки и личных ассистентов. Вместо того чтобы мучить одну модель промптами в духе «будь внимательнее», проще собрать конвейер из мелких агентов. Это решает главную беду AI — галлюцинации и потерю нити разговора. Мультиагентные системы — это не просто мода, а единственный способ заставить нейронку не нести отсебятину в ответственных задачах.

Короче, эпоха одиночных чат-ботов заканчивается, наступает время командной работы. Если хочешь, чтобы AI реально помогал в бизнесе, а не просто генерировал вежливый шум, забудь про один промпт. Нужно внедрять динамическую проверку, где каждый агент грызет свой кусок задачи. Кто продолжит юзать «голые» модели, тот так и будет краснеть перед клиентами за уверенный бред своего бота.

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

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

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