3,583 papers
arXiv:2610.17805 81 13 окт. 2026 г. FREE

BRIDGE: выборочный ремонт передачи работы между агентами, а не «чини всё подряд»

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

TL;DR

BRIDGE — управляющий слой для цепочки агентов. Он следит за тем, что один агент передал другому, и сверяет это со списком фактов, которые контракт задачи требует доставить. Если факт потерян, не использован или ушёл не тому, слой чинит передачу. Но только если по накопленной статистике такой ремонт обычно помогает. После ремонта он проверяет, что дыра закрылась. Если не закрылась, сообщение уходит в исходном виде.

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

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

🔬

Схема метода

ОФЛАЙН (HandoffProbe, один раз на модель):
  берём старые прогоны → ломаем передачу → гоняем два продолжения:
  «как есть» и «с ремонтом» → сравниваем итог тестами
  → получаем таблицу: какой ремонт при какой поломке помогает / вредит / бесполезен

ОНЛАЙН (BRIDGE, на каждой передаче):
ШАГ 1: Строим граф: сообщения, результаты инструментов, обязательства контракта
ШАГ 2: Ищем «дыры» (фронтиры) → 3 типа:
        • доставлено, но не использовано
        • факт вообще не появлялся
        • факт ушёл не тому адресату
ШАГ 3: Берём самую раннюю дыру, набираем допустимые ремонты (ASK / INTEGRATE / VERIFY / DECOMPOSE / RETRIEVE)
ШАГ 4: Ворота: польза − риск − цена > 0, риск вреда ниже порога, данных достаточно?
        нет → пересылаем сообщение как есть
ШАГ 5: Делаем снимок состояния, применяем ремонт
ШАГ 6: Проверка: дыра закрыта, старые связи целы?
        да → отправляем исправленное; нет → откат, отправляем оригинал

Шаги 1–4 и 6 выполняет код-контроллер, и LLM для них не нужна. LLM-запрос нужен только для ремонта ASK («спросить отправителя»).

🚀

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

Задача: Вы автоматизируете подготовку коммерческого предложения. Цепочка из трёх агентов: «Сборщик требований» (читает письмо клиента из Битрикс24) → «Копирайтер КП» → «Проверяющий». В письме клиента есть жёсткие факты: бюджет до 450 000 ₽, срок до 15 июня, цена с НДС, нельзя упоминать конкурента «Контур». Раз за разом какой-то из фактов теряется на стыке. А когда вы добавили «пусть копирайтер на всякий случай всё переспросит», стало хуже: он начал переделывать уже верные абзацы.

Промпт (системная инструкция для агента-контролёра, который смотрит на каждую передачу):


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



Обязательные факты (id | суть | кто производит | кому нужен):
F1 | Бюджет не выше 450 000 ₽ | Сборщик требований | Копирайтер
F2 | Срок до 15 июня | Сборщик требований | Копирайтер
F3 | Цены указывать с НДС | Сборщик требований | Копирайтер
F4 | Не упоминать конкурента «Контур» | Сборщик требований | Копирайтер, Проверяющий



Для каждого факта определи статус по истории переписки:
- OK: факт доставлен адресату и отражён в его работе
- UNCONSUMED: факт доставлен, но адресат его не использовал
- ABSENT: факт нигде не появлялся
- MISROUTED: факт ушёл не тому, кому нужен
Если несколько дыр сразу — работай с самой ранней в цепочке.



Подбирай ремонт строго по типу дыры:
- UNCONSUMED → INTEGRATE: вставь факт в исходящее сообщение адресату
- ABSENT → ASK: задай отправителю один точный вопрос по этому факту
- MISROUTED → INTEGRATE: перешли факт нужному адресату
Запрещено: ASK по факту, который уже доставлен (это отвлекает получателя).
Запрещено: INTEGRATE для факта, которого в переписке не было.



Вмешивайся только если одновременно:
1. Пропущенный факт есть в списке обязательных.
2. Его потеря меняет результат (бюджет, срок, запрет — да; тон и мелкие формулировки — нет).
3. Подходящий ремонт из  существует.
Иначе — верни статус FORWARD и перешли сообщение без изменений.



После ремонта перепроверь: факт теперь есть в сообщении адресату?
Остальные факты остались на месте? Ничего лишнего не переписано?
Если «да» — статус COMMIT и исправленное сообщение.
Если «нет» или сомневаешься — статус ROLLBACK и исходное сообщение.



Таблица фактов: id | статус | решение.
Затем: FORWARD / COMMIT / ROLLBACK и итоговое сообщение для следующего агента.

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

🧠

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

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

Сильная сторона LLM. Сверять сообщение со списком заранее заданных фактов модель умеет хорошо, это простая сверка. В исследовании единый проход по графу зависимостей дал диагностику на уровне многошаговых цепочек, но с затратами на 32–42% меньше.

Как метод использует это. Он превращает расплывчатое «что-то пошло не так» в конкретную дыру с типом. Тип определяет, какой ремонт допустим. Ворота отсекают лишнее вмешательство, а проверка с откатом не даёт ремонту испортить рабочее.

Рычаги управления: - Список обязательных фактов (контракт) → короче список, меньше шума. Включайте только то, без чего результат ломается. - Условие «Gate» → строже условие, реже вмешательство и дешевле. Мягче условие, больше ремонтов и выше риск навредить. - Таблица «тип дыры → ремонт» → пополняйте её по своим логам: какой ремонт у вас реально помогал. - Вердикт ROLLBACK → если не уверен, отправь оригинал. Это страховка от «лечения хуже болезни».

📋

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


Ты — контролёр передач между агентами в задаче: {задача}.
Ты не выполняешь работу сам. Ты проверяешь, дошли ли обязательные факты
до нужного агента, и вмешиваешься только когда это необходимо.



Обязательные факты (id | суть | кто производит | кому нужен):
{список_фактов}



Для каждого факта определи статус по истории переписки:
- OK: доставлен адресату и отражён в его работе
- UNCONSUMED: доставлен, но не использован
- ABSENT: нигде не появлялся
- MISROUTED: ушёл не тому, кому нужен
Если дыр несколько — работай с самой ранней в цепочке.



Подбирай ремонт строго по типу дыры:
- UNCONSUMED → INTEGRATE: вставь факт в исходящее сообщение
- ABSENT → ASK: задай отправителю один точный вопрос
- MISROUTED → INTEGRATE: перешли факт нужному адресату
- {другие_правила}
Запрещено: ASK по факту, который уже доставлен.
Запрещено: INTEGRATE для факта, которого не было в переписке.



Вмешивайся только если пропущенный факт обязателен,
его потеря меняет итог, и подходящий ремонт существует.
Иначе верни FORWARD и перешли сообщение без изменений.



После ремонта проверь: целевой факт на месте, остальные факты не тронуты.
Да → COMMIT и исправленное сообщение.
Нет или сомнение → ROLLBACK и исходное сообщение.



Таблица: id | статус | решение. Затем FORWARD / COMMIT / ROLLBACK
и итоговое сообщение для следующего агента.



{сообщение_от_предыдущего_агента}



{история_переписки}

Что подставлять: {задача} — что делает цепочка. {список_фактов} — 3–8 обязательных пунктов с владельцем и адресатом. {другие_правила} — свои пары «тип дыры → ремонт», если нашли их по опыту. {сообщение_от_предыдущего_агента} и {история_переписки} — то, что контролёр проверяет на этой передаче.

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

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

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

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

⚠️

Ограничения

⚠️ Полный метод требует кода: граф зависимостей, ворота по статистике, снимки состояния и откат выполняет программа-контроллер, а не промпт. Промптом можно воспроизвести только идею и диагностику, а не саму систему.

⚠️ Ворота в промпте слабее, чем по статистике: в исследовании «решение самой LLM, вмешиваться или нет» дало заметно меньше пользы, чем решение по накопленной статистике офлайн-прогонов. Промптовая версия ворот — это приближение.

⚠️ Статистика привязана к модели: таблица «что помогает» переносилась между разными задачами, но не переносилась между разными моделями. Сменили модель — калибруйте заново.

⚠️ Нужны видимые следы: метод опирается на то, что поломка видна в переписке и логах. Если сбой целиком внутри «чёрного ящика» одного агента, он бессилен.

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

🔍

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

Идея была простой: перестать гадать, помогает ли вмешательство, и измерить это на повторах. Сначала команда взяла записи прошлых прогонов мультиагентных систем и искусственно ломала в них передачи: терялся факт, адресат игнорировал данные, сообщение уходило не туда. Из каждой точки поломки запускали два продолжения. Одно шло как есть, второе с ремонтом. Итог оценивали тестами, а не LLM-судьёй. Так получилась таблица: ремонт X при поломке Y помогает, вредит или ничего не меняет.

Потом метод проверили на двух бенчмарках с двумя моделями. Сравнивали с Self-Refine, AgentAsk, MOC и VeriMAP. На SILO-BENCH успех вырос с 63,3% до 75,6% на одной модели и с 68,9% до 77,8% на другой. На TeamBench прирост составил до 11,1 пункта. Таблицу, собранную на синтетических данных, применили к TeamBench без доводки, и она сработала. Дополнительные токены — от 2% до 5%. Диагностику отдельно проверили на 562 реальных трассах MAST. Там метод показал около 70% F1 за один вызов вместо двухшаговых цепочек.

Самые полезные для практики данные в абляциях. Если вмешиваться всегда, успех падает до 56,7%, то есть на 6,6 пункта ниже, чем вообще без помощи. Столько же теряется без отката. Замена графа плоским чеклистом даёт 68,9%. Замена статистики на самооценку модели даёт 70,0%. Отдельно показано, что подбор ремонта под тип дыры критичен. Вставка недостающего контекста исправляла около половины случаев «доставлено, но не использовано», но не давала ничего при «факта нет совсем». Лишний вопрос по уже доставленному вредил. Удивило, что ломаются не только слабые вмешательства. Любое неточное «лечение» тоже ломает.

💡

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

🔧 Техника: правила вмешательства в файл инструкций агента → меньше «лишней суеты».

Это не метод из статьи, а перенос его выводов в AGENTS.md / CLAUDE.md. Эффект такой формулировки в статье не измерялся, проверьте на своих задачах.

## Правила передачи работы между агентами
- В начале задачи составь список обязательных фактов: что, кто производит, кому нужно.
- При каждой передаче сверяй сообщение со списком. Не «улучшай» сообщение, если обязательные факты на месте.
- Пропал факт, которого не было в переписке → задай один точный вопрос его владельцу.
- Факт был доставлен, но не использован → вставь его в сообщение получателю. Не переспрашивай.
- Никогда не переспрашивай то, что уже передано.
- После правки проверь: нужный факт появился, остальные не изменились. Не уверен — отправь исходное сообщение.
🔗

Ресурсы

  • Работа: BRIDGE: Selective Boundary Repair with Dependency Graph Evidence in Multi-Agent Systems
  • Авторы: Encheng Su, Pengze Li, Ziheng Hua и др. Университет науки и технологий Китая (USTC), Фуданьский университет, Шанхайская лаборатория искусственного интеллекта и другие.
  • Бенчмарки: SILO-BENCH, TeamBench, MAST (таксономия сбоев мультиагентных систем, Cemri et al., 2025).
  • Сравнивались с: AgentAsk, Self-Refine, MOC, VeriMAP.

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

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

Парадокс: в цепочках агентов «подстраховка» вредит чаще, чем помогает. Метод BRIDGE позволяет находить потерянные при передаче факты (бюджет, срок, запреты) и чинить только их, не ломая рабочие куски. Фишка: сначала определи тип дыры, потом реши, стоит ли вообще вмешиваться. Жесть — около 88% лишних ремонтов ничего не меняли, а «чинить всегда» давало результат хуже, чем не чинить вовсе. Внутри контроллер: он сверяет сообщение со списком обязательных фактов и при сомнении отправляет оригинал.

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

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

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

Агент с неполной передачей всё равно выдаёт правдоподобный ответ. Снаружи не видно, что потерялось. Команды «переспроси всё» и «доработай» не знают, где дыра, а где норма. Поэтому они портят уже рабочие абзацы. Зато сверять сообщение со списком заданных фактов модель умеет хорошо. Это простая сверка, а не творчество. Фактам дан тип, ремонт привязан к типу, а проверка с откатом не даёт ремонту навредить. В исследовании единый проход по графу зависимостей дал диагностику на уровне многошаговых цепочек. Затраты при этом были на 32–42% ниже. Слабое место: ворота в промпте работают хуже, чем ворота по накопленной статистике.

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

Цепочки из 2+ агентов, где результат зависит от жёстких фактов → например, коммерческие предложения, отчёты, обработка заявок, особенно когда то срок, то бюджет, то запрет «теряется на стыке». Промптом получится воспроизвести идею и диагностику, а не всю систему. Граф зависимостей, статистику ворот, снимки состояния и откат делает только код. НЕ подходит, если сбой целиком внутри одного агента и в переписке его не видно. Статистику «какой ремонт помогает» нужно заново собирать при смене модели. Выборки в исследовании небольшие: направление убедительное, точные цифры хрупкие.

Мини-рецепт

1. Выпиши контракт: 3–8 фактов без которых результат ломается. У каждого владелец (кто производит) и адресат (кому нужен). Тон и мелкие формулировки не включай.
2. Заведи четыре статуса: OK (доставлен и использован), UNCONSUMED (доставлен, но не использован), ABSENT (нигде не появлялся), MISROUTED (ушёл не тому).
3. Привяжи ремонт к типу: UNCONSUMED и MISROUTED лечатся вставкой факта в сообщение нужному адресату. ABSENT лечится одним точным вопросом отправителю.
4. Поставь ворота: вмешивайся, только если факт обязателен, его потеря меняет итог и подходящий ремонт есть. Иначе FORWARD (переслать как есть).
5. Проверь после ремонта: целевой факт на месте, остальные не тронуты? Да — COMMIT (отправить исправленное). Нет или сомневаешься — ROLLBACK (отправить оригинал).
6. Пополняй таблицу по логам: записывай, какой ремонт у тебя реально помогал, и добавляй в правила.

Примеры

[ПЛОХО]: `Копирайтер, на всякий случай переспроси у сборщика всё про бюджет, срок и НДС и перепиши КП` [ХОРОШО]: `Ты контролёр передач между агентами, сам КП не пишешь. Обязательные факты: F1 бюджет до 450 000 ₽, F2 срок до 15 июня, F3 цены с НДС, F4 не упоминать конкурента «Контур». Для каждого факта дай статус: OK, UNCONSUMED, ABSENT или MISROUTED. Если потерян срок или бюджет, вставь факт в сообщение копирайтеру и перепроверь весь список. Если пропал только тон, верни FORWARD и перешли сообщение без правок. Не уверен после правки, верни ROLLBACK и исходное сообщение.` [ПЛОХО]: `Проверь, всё ли передал предыдущий агент, и исправь недочёты` [ХОРОШО]: `Факт F2 (срок до 15 июня) не появлялся в переписке, статус ABSENT. Задай сборщику требований один точный вопрос: какой срок указан в письме клиента. Уже доставленные факты F1 и F3 не переспрашивай.`
Источник: BRIDGE: Selective Boundary Repair with Dependency Graph Evidence in Multi-Agent Systems
ArXiv ID: 2610.17805 | Сгенерировано: 2026-10-14 23:40

Проблемы LLM

ПроблемаСутьКак обойти
Добавил «подстраховку» в цепочку шагов, а стало хужеСтроишь цепочку из нескольких агентов или шагов. Добавляешь «переспроси», «перепроверь», «доработай». Ждёшь улучшения. Но чаще всего правка ничего не меняет и тратит токены. А иногда ломает то, что уже было верно. Модель не знает, где дыра, а где норма. Поэтому правит всё подрядНе включай правку по умолчанию. Дай жёсткое условие: правь, только если потерян обязательный факт и его потеря меняет итог. Иначе перешли сообщение без изменений. Пропуск мелочи, тона или формулировок правкой не считай
Неполная передача между шагами не видна снаружиОдин агент передал другому неполные данные. Получатель всё равно выдал гладкий, правдоподобный ответ. По тексту не видно, что факт потерялся. Ошибка всплывает позже, в готовом результатеЗаранее задай список обязательных фактов. Для каждого укажи, кто его производит и кому он нужен. Сверяй каждую передачу с этим списком. Без списка настоящую потерю не отличить от безобидного пропуска

Методы

МетодСуть
Ремонт по типу дыры с проверкой и откатом — правка без вредаСначала определи тип дыры для каждого обязательного факта. Есть четыре статуса. OK — факт доставлен и учтён. UNCONSUMED — доставлен, но не использован. ABSENT — факта нигде не было. MISROUTED — факт ушёл не тому адресату. Если дыр несколько, бери самую раннюю в цепочке. Потом подбери ремонт строго по типу. UNCONSUMED и MISROUTED → INTEGRATE: вставь или перешли факт нужному адресату. ABSENT → ASK: задай отправителю один точный вопрос. Запрещено переспрашивать то, что уже доставлено. Запрещено вставлять факт, которого не было. После правки проверь две вещи. Нужный факт теперь на месте? Остальные факты не тронуты? Если да — COMMIT, отправляй исправленное. Если нет или сомневаешься — ROLLBACK, отправляй оригинал. Почему работает: тип дыры сужает выбор правки. Переспрос доставленного отвлекает получателя от верного. Откат не даёт лечению стать хуже болезни. Когда да: цепочки из нескольких агентов или шагов, где есть чёткий список обязательных фактов (3–8 пунктов). Когда нет: сбой целиком внутри одного агента и не виден в переписке. Задача без проверяемых фактов. Ещё учти: полный метод (граф связей, снимки состояния, статистика) требует кода. Промптом воспроизводится только идея и диагностика. Таблицу «тип дыры → ремонт» пополняй по своим логам. При смене модели калибруй заново

Тезисы

ТезисКомментарий
Сверка с готовым списком фактов — простая задача для модели. Поиск неизвестных ошибок — сложнаяКогда пункты заданы явно, модель просто проверяет «есть или нет». Это она делает надёжно и дёшево. Когда просишь «найди что не так», она гадает и портит рабочее. Сверка по списку даёт качество диагностики не хуже сложных многошаговых проверок, а затраты ниже на треть и больше. Применяй: вместо «проверь передачу» дай пронумерованный список фактов. Пусть модель ставит статус каждому пункту
📖 Простыми словами

BRIDGE: Selective Boundary Repair with Dependency Graph Evidence in Multi-AgentSystems

arXiv: 2610.17805

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

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

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

В исследовании гоняли цепочку генерации коммерческих предложений с кучей условий по ценам и НДС, но принцип универсален. Метод одинаково нужен везде, где работают связки агентов: от пайплайнов разработчик → тестировщик до скоринга заявок и юридического аудита. Везде, где потеря строчки "не упоминать конкурента" превращает работу в дорогостоящий факап, бесконтрольные диалоги агентов опасны.

Короче: хватит пичкать агентов наивными промптами в духе "будь внимательнее". Контролируй стыки между моделями через жесткие факты и проверяемый точечный ремонт. Либо ты ставишь над связкой архитектурный фильтр, либо твои агенты продолжат виртуозно сливать бизнес-логику прямо в продакшене.

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

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

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