Все материалы
Многоагентные системы4 мин чтения

Больше агентов не создают независимую проверку

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

Read in English

Голосование не делает ответы независимыми

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

Работа Agents Catching Agents проверила это на клинических задачах. Одна ложная подсказка меняла решение отдельного агента в 5-16% случаев. Когда два внешне независимых участника называли один и тот же неверный ответ, третий принимал его уже в 38% случаев.

Обычный дополнительный контролер оказался бесполезен: в одной постановке он давал 100% ложных тревог. Лучше работал проверяющий, который решал задачу заново и не видел обсуждение группы. На задачах с изображениями его точность положительных сигналов составляла 77-88% при 13-21% ложных срабатываний.

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

Координатор теряет важное раньше, чем модель ошибается

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

OrchBench отделяет качество координации от качества исполнителей. Задача представлена направленным графом зависимостей. Планировщик назначает подзадачи и решает, какие результаты передавать дальше и насколько подробно. Детерминированный симулятор оценивает качество, расход контекста и длительность без запуска настоящих исполнителей.

Оценки симулятора коррелировали с выполнением Claude Code на уровне 0,816, при этом требовали 1,3% объема токенов и 10,3% времени. Главный результат оказался не про число агентов. Сохранение критичной информации влияло на итог сильнее, чем добавление новых исполнителей.

Симуляция не заменяет настоящий запуск. Она может неверно оценить редкий переход или неожиданное поведение инструмента. Зато позволяет дешево проверить структуру плана и найти места, где результат одной ветки исчезает до использования.

Общий контекст создает общий источник ошибки

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

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

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

Передача состояния является частью результата

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

Сокращение контекста тоже должно оставлять след. Если координатор удалил часть результата, система обязана знать, какой источник можно открыть заново. Иначе краткий пересказ превращается в необратимую потерю данных.

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

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

Отдельно стоит считать повторы координации. Если два агента независимо открывают один источник, потому что первый результат не был передан, система тратит время и контекст без появления нового доказательства. Эта стоимость обычно скрывается внутри общего числа вызовов модели.

Когда дополнительный агент действительно помогает

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

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

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

Количество агентов является параметром расходов. Надежность появляется из независимых данных, разных способов проверки и сохраненной передачи состояния.

Автор / руководитель исследованийДмитрий / R&D Club

Принесите задачу, у которой нет очевидного пути реализации.

hello@rnd.club ↗