3,583 papers
arXiv:2610.24383 73 17 окт. 2026 г. FREE

IF-MAP: как выбрать, какого агента в цепочке улучшать первым, замеряя реакцию всей системы на изменения его промпта

КЛЮЧЕВАЯ СУТЬ
Тот, кто чаще всех виноват в провалах цепочки агентов, не обязательно тот, кого выгодно улучшать. Метод IF-MAP позволяет выбрать одного агента, апгрейд которого даст максимум пользы, когда денег хватает не на всех. Для каждого агента делаешь до 10 слегка изменённых промптов и гоняешь всю цепочку целиком. Чем сильнее итог реагирует на правки, тем выше чувствительность агента и тем раньше его улучшать. Дорогая модель только у выбранных агентов даёт примерно вдвое больше пользы, чем у случайного, и на ~64% меньше токенов, чем апгрейд всех.
Адаптировать под запрос
⚡

TL;DR

IF-MAP — способ выбрать одного агента в многоагентной системе, улучшение которого даст максимальный прирост. Для каждого агента делают до 10 слегка изменённых версий промпта (роль и формат вывода те же), прогоняют всю систему целиком и смотрят, как меняется итоговая ошибка. Из этих замеров считают оценку «чувствительности» агента. Чем сильнее итог реагирует на изменения в промпте агента, тем выше его приоритет.

Главная находка: «кто чаще всех виноват в провалах» и «кого выгоднее улучшать» — разные вопросы. Агент может часто ошибаться, но улучшать там нечего. Другой агент ошибается редко, но небольшая правка в его работе заметно поднимает результат всей цепочки. Если улучшать всех подряд или того, на кого указал разбор ошибок, деньги и токены уходят впустую. Иногда правка не в том месте даже ухудшает итог.

Метод работает в пять шагов, и его считает код: эмбеддинги промптов и регрессия. Читателю-практику не нужно воспроизводить математику, но сам принцип переносится: сначала зондируй агентов возмущениями, потом вкладывайся в самого чувствительного. По результатам, дорогой апгрейд модели только у выбранных агентов даёт примерно вдвое больше пользы, чем апгрейд случайного агента. Токенов при этом уходит на ~64% меньше, чем при апгрейде всех.

🔬

Схема метода

ШАГ 1: Берёшь рабочую систему + пробный набор задач с оценкой → базовая ошибка L0
ШАГ 2: Для агента i делаешь до 10 вариантов промпта
        (роль и формат вывода те же, меняется формулировка) → промпты p_i^(1..10)
ШАГ 3: Меняешь промпт ТОЛЬКО у агента i, остальное не трогаешь,
        прогоняешь всю систему → ошибка L_i^(m) и сдвиг ∆ = L0 − L_i^(m)
ШАГ 4: Эмбеддинги промптов → «направление» и «размер» изменения →
        ridge-регрессия в малом подпространстве → вектор реакции g_i
        → приоритет S_i = ‖g_i‖
ШАГ 5: Ранжируешь агентов по S_i → улучшаешь топ-1
        (правка промпта / модель посильнее / дообучение)

Шаги 1–3 и 5 отдельные прогоны системы. Шаг 4 — расчёт на коде.

🚀

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

Сильная зона метода: цепочка из нескольких агентов, есть набор типовых задач и понятная оценка итога (верно / неверно, балл).

Задача: Ты делаешь ИИ-помощника для поддержки продавцов на маркетплейсе (в духе Ozon или Wildberries). В цепочке четыре агента:

  1. Классификатор обращений.
  2. Поисковик по базе правил.
  3. Автор ответа.
  4. Проверяющий тон и политику.

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

Промпт (шаг 2, генерация вариантов промпта для одного агента; другой чат или модель):

Ниже промпт одного агента из цепочки поддержки продавцов маркетплейса.
Агент: «Поисковик по базе правил». Его вход: категория обращения и текст.
Его выход: JSON {"rules": [id1, id2, id3]}.

Исходный промпт:
"""
Ты — поисковик по базе правил маркетплейса. Получи категорию обращения
и текст продавца. Верни ровно 3 id правил, наиболее релевантных вопросу.
Ответ — только JSON: {"rules": [id1, id2, id3]}.
"""

Сделай 10 вариантов этого промпта. Требования:
— роль агента остаётся прежней;
— формат вывода остаётся ровно таким же;
— варианты должны заметно отличаться друг от друга по формулировке,
  структуре и порядку инструкций;
— 3 варианта — лёгкие перефразировки, 4 — перестановка структуры
  (блоки, нумерация, порядок), 3 — добавление конкретного уточнения
  по критерию релевантности;
— не добавляй новых задач, не удаляй требований формата.
Выведи каждый вариант в отдельном блоке с номером.

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

Результат: Модель выдаст 10 пронумерованных вариантов с тем же ролью и JSON-форматом. Всего у тебя будет примерно 40 прогонов набора, по 10 на агента, и таблица «агент → как менялся итоговый балл». Агента, у которого итог сильно «гуляет» при разных формулировках, считаешь приоритетным для улучшения. Остальных не трогаешь. В оригинале эту оценку считает регрессия, но в ручном режиме можно ориентироваться на разброс и направление сдвигов.

🧠

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

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

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

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

Рычаги: - Число вариантов (в оригинале до 10): меньше — дешевле, но шумнее; больше — стабильнее оценка. - Что сохраняется неизменным (роль и формат вывода): так ты меняешь формулировку, а не задачу агента. Иначе сломается совместимость с соседями. - Что делаешь с победителем: переписать промпт, поменять модель, дообучить. Один и тот же рейтинг работал и для промптов, и для апгрейда модели. - Размер пробного набора: чем он больше, тем меньше случайных скачков в оценке.

📋

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

В тексте статьи готовых промптов нет (полные протоколы в приложениях, их не видно). Ниже мой шаблон шага 2: генерация вариантов, по описанию «роль и формат сохраняются, дубликаты и неработающие отбрасываются». Это не копия авторского промпта.

Ниже промпт одного агента из многоагентной цепочки.
Агент: «{имя_агента}».
Вход агента: {вход}.
Выход агента (строгий формат): {формат_вывода}.

Исходный промпт:
"""
{исходный_промпт}
"""

Сделай {N} вариантов этого промпта для проверки чувствительности системы.
Требования:
— роль агента остаётся прежней;
— формат вывода остаётся ровно таким же: {формат_вывода};
— варианты заметно отличаются друг от друга (не дубли);
— распределение: {k1} — перефразировки, {k2} — перестановка структуры
  (блоки, порядок, нумерация), {k3} — добавление уточнения по {критерий};
— не добавляй новых задач и не удаляй обязательных требований.
Для каждого варианта выведи: номер, тип изменения, полный текст промпта.
Если вариант нарушает формат вывода или дублирует другой — замени его.

Что подставлять: - {имя_агента}, {вход}, {формат_вывода}, {исходный_промпт}: из твоей цепочки. - {N}: 5–10 вариантов. Статья берёт до 10. - {k1}, {k2}, {k3}: доли типов изменений, в сумме N. - {критерий}: что агент должен делать лучше (точность, полнота, тон).

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

Вот шаблон генерации вариантов промпта для проверки чувствительности агента (метод IF-MAP).
Адаптируй под мою цепочку: [опиши свою цепочку агентов и какой у них итоговый результат].
Задавай вопросы, чтобы заполнить поля.

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

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

⚠️

Ограничения

⚠️ Нужна инженерия: оригинальный расчёт требует эмбеддингов промптов, SVD и ridge-регрессии. В обычном чате его не повторить, нужен скрипт.

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

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

⚠️ Один агент за раз: метод выбирает, кого улучшать следующим, а не как несколько агентов взаимодействуют при совместной правке.

⚠️ Проверка узкая: эксперименты на шести задачах из бенчмарков (код, вопросы-ответы, математика). Рабочая цепочка выполнялась в основном небольшой моделью Qwen3-8B. Абсолютные приросты скромные, несколько процентных пунктов. Сколько метод даст в твоём продакшене, неизвестно.

⚠️ Локальная оценка: метод показывает реакцию на небольшие изменения промпта. Это не гарантия, что кардинальная переделка даст пропорциональный прирост.

⚠️ Текст статьи неполный: в предоставленном фрагменте нет приложений, полных таблиц и деталей протокола возмущений.

🔍

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

Идея простая: проверить, предсказывает ли оценка чувствительности реальную пользу от улучшения. Команда взяла шесть многоагентных цепочек из фреймворка AFlow: две на код (HumanEval, MBPP), три на вопросы-ответы (NQ, HotpotQA, DROP) и одну на математику (MATH). Для каждого агента посчитали приоритет. Затем реально улучшили каждого агента по очереди и сравнили: тот ли агент оказался лучшим, на которого указал рейтинг.

Улучшения проверяли двумя способами: автоматической переписью промпта по обратной связи и заменой модели на более сильную (пять моделей, включая Qwen3-235B, DeepSeek-V3.2 и GPT-5 nano). Сравнивали с шестью методами «поиска виновника» (Who&When, A2P, AgentRx, CHIEF, FAMAS, Locator) и со случайным выбором.

Результаты: при оптимизации промпта выбранный агент дал в среднем +3,81 п.п. против +1,85 п.п. при случайном выборе. Лучший из конкурентов (FAMAS) отстал на 0,51 п.п. При апгрейде модели выигрыш был +7,62–16,42 п.п. против +3,81–8,62 п.п. Согласованность рейтинга с реальными приростами (Kendall τb) составила около 0,74.

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

💡

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

🔧 Техника: ручная проверка чувствительности без регрессии → быстрый выбор агента

Это моё упрощение: авторы так не проверяли. Для каждого агента сделай 3–5 вариантов промпта по шаблону выше. Прогони каждый на 30–50 типовых задачах и посчитай итоговый балл. Выбери агента, у которого итог сильнее всего отклоняется от базового (в обе стороны). Именно его есть смысл улучшать или апгрейдить первым. Без эмбеддингов и регрессии оценка грубее, но принцип «сначала зонд, потом вложения» тот же.

🔧 Техника: апгрейд модели только у выбранного агента → экономия токенов

Не переводи всю цепочку на дорогую модель. Подними модель только у агента с высоким приоритетом, промпт оставь прежним. В статье так сделали, и расход токенов упал примерно на 64% против апгрейда всех.

🔗

Ресурсы

  • Работа: IF-MAP: Influence-Function-Inspired Agent Prioritization in Multi-Agent Systems (препринт).
  • Код: https://github.com/s1412/IF-MAS
  • Авторы: Jie Mao, Pingchen Lu, Zikun Qu, Jiahang Sun, Xiangyi Wang, Zhiwei Shang, Zhiyong Wang, Guojun Xiong, Zhongxiang Dai.
  • Университеты: The Chinese University of Hong Kong, Shenzhen; Harbin Institute of Technology; Harvard SEAS.
  • Отсылки: Koh & Liang (2017, influence functions); Who&When (Zhang et al., 2025b); AFlow (Zhang et al., 2025a).

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

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

Тот, кто чаще всех виноват в провалах цепочки агентов, не обязательно тот, кого выгодно улучшать. Метод IF-MAP позволяет выбрать одного агента, апгрейд которого даст максимум пользы, когда денег хватает не на всех. Для каждого агента делаешь до 10 слегка изменённых промптов и гоняешь всю цепочку целиком. Чем сильнее итог реагирует на правки, тем выше чувствительность агента и тем раньше его улучшать. Дорогая модель только у выбранных агентов даёт примерно вдвое больше пользы, чем у случайного, и на ~64% меньше токенов, чем апгрейд всех.

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

Схема простая: потряс агента, посмотрел на итог. 1. Меняешь формулировку промпта только у одного агента. Роль и формат вывода остаются прежними. 2. Гонишь всю цепочку на пробном наборе задач. Смотришь, как сдвинулся итоговый балл. 3. Повторяешь для каждого агента. У кого итог «гуляет» сильнее всех, тот и в приоритете. Важно не сколько агент ошибается в логах, а насколько итог чувствителен к его промпту. Это как простукивать стену: где гулко, там и надо работать. В оригинале сдвиги считает ридж-регрессия по эмбеддингам промптов, с поправкой на размер правки. Руками можно смотреть на разброс и направление сдвигов.

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

В цепочке ошибка одного агента растекается по соседям. По логам виден виновник, но не видно, где правка окупится. Агент может ошибаться часто, а улучшать там нечего. Другой ошибается редко, но небольшая правка у него поднимает всю цепочку. Жесть — правка не в том месте иногда даже ухудшает итог. Если мелкая правка формулировки сильно двигает итог, узел нагружен и запас роста есть. Если итог стоит как стоял, вкладываться туда бесполезно. Метод не гадает по логам, а ставит маленькие контролируемые опыты на каждом агенте. Честно про масштаб: проверяли на шести задачах (код, вопросы-ответы, математика), в основном на небольшой Qwen3-8B. Абсолютные приросты скромные, несколько процентных пунктов. Как это поведёт себя у тебя в продакшене, неизвестно.

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

Цепочки из нескольких агентов → выбор, кого апгрейдить на дорогую модель или переписывать, особенно когда бюджета хватает не на всех. Нужны набор типовых задач и понятная оценка итога (верно/неверно или балл). НЕ подходит для творческих задач без критерия оценки. Не подходит и для случая, когда прогон всей цепочки дороже самого апгрейда: зондирование не окупится. Метод показывает реакцию на небольшие правки, а не гарантирует прирост от полной переделки.

Мини-рецепт

1. Собери полигон: рабочая цепочка и 50+ типовых задач с оценкой итога. Замерь базовый балл.
2. Нагенерируй вариантов: по 5-10 версий промпта на каждого агента. Роль и формат вывода держи неизменными, иначе сломаешь стыковку с соседями.
3. Тряси по одному: подменяй промпт только у одного агента, остальных не трогай. Прогоняй всю цепочку и записывай итоговый балл.
4. Смотри на разброс: у кого итог гуляет сильнее всех, тот в топе. Если есть скрипт, посчитай регрессией, если нет, хватит таблицы.
5. Вложись в одного: перепиши промпт, поставь модель посильнее или дообучи. Остальных пока не трогай.

Примеры

[ПЛОХО] : Автор ответа чаще всех ошибается в разборе провалов. Ставлю на всю цепочку из четырёх агентов самую дорогую модель.
[ХОРОШО] : Вот промпт агента «Поисковик по базе правил». Вход: категория обращения и текст. Выход: JSON {"rules": [id1, id2, id3]}. Сделай 10 вариантов: роль и формат JSON те же, 3 перефразировки, 4 перестановки структуры, 3 с уточнением критерия релевантности. Каждый в отдельном блоке с номером. Дальше подменяешь промпт только у поисковика и гонишь 50 обращений через всю цепочку. Так же делаешь для классификатора, автора ответа и проверяющего. Итого около 40 прогонов. Смотришь, у кого итоговый балл гуляет сильнее всего, и апгрейдишь только его.
Источник: IF-MAP: Influence-Function-Inspired Agent Prioritization in Multi-Agent Systems
ArXiv ID: 2610.24383 | Сгенерировано: 2026-10-20 13:40

Проблемы LLM

ПроблемаСутьКак обойти
В цепочке агентов по логам ошибок не видно, кого выгодно улучшатьАгенты работают друг за другом. Ошибка одного агента растекается по следующим. Разбор провалов указывает на того, кто «виноват» чаще всего. Но правка его промпта может ничего не дать. Иногда итог даже ухудшается. Деньги и токены уходят зря. «Кто чаще ошибается» и «кого выгодно улучшать» — разные вопросыНе гадай по логам. Проверь каждого агента маленькими правками промпта и смотри, как меняется итог всей цепочки. Подробности в методе ниже

Методы

МетодСуть
Зондирование агентов перефразировками — выбор, кого улучшать первымЧто делать: (1) Возьми рабочую цепочку и набор типовых задач с понятной оценкой итога: верно/неверно или балл. Замерь базовый результат. (2) Для одного агента попроси модель сделать 5–10 вариантов его промпта. Роль и формат вывода должны остаться прежними. Меняется только формулировка, структура и порядок инструкций. (3) Подставляй варианты по одному. Меняй промпт только у этого агента. Каждый раз прогоняй всю цепочку и записывай итоговый балл. (4) Повтори для каждого агента. (5) Улучши того, у кого итог сильнее всего «гуляет» от формулировок. Улучшение: переписать промпт, взять модель посильнее или дообучить. Почему работает: Если лёгкая правка у агента сильно двигает итог, этот узел нагружен. Здесь есть куда расти. Если итог не реагирует, правки у этого агента не окупятся, даже если он часто ошибается. Это маленький контролируемый опыт на каждом агенте. Он надёжнее, чем разбор логов. Шаблон запроса для шага 2: Ниже промпт агента «{имя}». Вход: {вход}. Выход строго: {формат}. Сделай {N} вариантов. Роль и формат те же. Варианты заметно разные. Часть — перефразировки, часть — перестановка структуры, часть — добавленное уточнение по {критерий}. Новых задач не добавляй. Если вариант ломает формат или дублирует другой — замени. Когда да: цепочка из нескольких агентов, есть набор задач и числовая оценка, бюджет на апгрейд ограничен. Тогда улучшаешь одного агента вместо всех. Когда нет: творческие задачи без критерия. Один агент. Прогон всей цепочки очень дорог, дороже самого апгрейда. Метод также не показывает, как несколько агентов работают вместе после совместной правки. Он оценивает реакцию только на небольшие правки. Не гарантирует, что полная переделка даст пропорциональный прирост. Совет: чем больше вариантов и задач, тем меньше шума. Для маленького набора ориентируйся на разброс и направление сдвигов, а не на мелкие различия
📖 Простыми словами

IF-MAP: Influence-Function-Inspired Agent Prioritization in Multi-Agent Systems

arXiv: 2610.24383

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

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

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

Метод отлично ложится на любые пайплайны с чёткой оценкой: код, классификация или задачи с метрикой «верно / неверно». Но принцип универсален: он отсекает бесполезную возню с агентами-«склейщиками», полировка которых часто не даёт вообще ничего или делает только хуже. Ты сразу отсекаешь шум и не тратишь недели на тюнинг второстепенных инструкций.

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

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

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

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