Тестирование мультиагентных систем
Проверять мультиагентную систему по одному агенту бессмысленно: отказ возникает на связи между ними. Агенты согласуются, передают друг другу искажение и договариваются до неверного ответа, хотя каждый в отдельности вёл себя корректно.
Три вида отказов, которых нет у одиночного агента
Сговор
Согласованное поведение, ухудшающее общий результат, без злого умысла у каждого участника. Измеряется сравнением результата группы с результатом её же участников по отдельности.
Распространение искажения
Ошибка или внедрённая инструкция переходит от агента к агенту через общую память, документы или переписку и сохраняется при пересказе.
Скрытый канал
Обмен не текстом, а внутренними представлениями: журнал сообщений остаётся чистым, а управление происходит. Отсюда требование контролировать топологию связей, а не содержание реплик.
Потеря доказательности
«В логах чисто» перестаёт быть выводом: канал может не оставлять текста, а необнаруженный отказ накапливается с числом эпизодов.
Как это проверяется
- Сценарий с известным правильным ответом. Без эталона нельзя отличить сговор от полезной кооперации.
- Замер в двух конфигурациях. Каждый агент отдельно и группа целиком: разница между ними и есть вклад связей.
- Управляемая инъекция. Инструкция подаётся в тот канал, который агент обязан прочитать, — иначе поверхность атаки не проверена.
- Повторные прогоны. Результат считается устойчивым, если воспроизводится; единичный прогон мы не публикуем как факт.
- Защита прав. Отдельно проверяется, теряют ли агенты полномочия после шага: это ограничивает ущерб, не требуя распознать атаку.
Что мы уже измеряли и публикуем
Первый полный прогон стенда — отчёт с сырыми данными, включая неудачные срабатывания. Обзор мировой практики измерений — в заметке «Надзорный контур в мультиагентной системе», там же разобраны числа чужих препринтов (мы их не воспроизводили и помечаем это прямо).