ИИ-агенты и автоматизация

Безопасность мультиагентных систем и общая память

Безопасность мультиагентных систем и общая память

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

Как это устроено

Механизм стоит разобрать, потому что он не требует ничего экзотического.

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

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

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

Ничего вредоносного в исходном коде для этого не нужно. Достаточно текста.

Что показали цифры

Три результата, каждый по-своему неприятный.

Живучесть. Отдельные идеи проходили через двадцать последовательных передач, не растворяясь. Это не «пару раз проскочило» — это устойчивое распространение.

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

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

Последнее особенно полезно практически: значит фильтровать по конкретным фразам бессмысленно, они меняются.

Почему это не то же самое, что промпт-инъекция

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

При промпт-инъекции инструкцию подкладывает человек: прячет в документе, на веб-странице, в письме. Есть автор, есть намерение, есть точка входа, которую можно попытаться закрыть.

Здесь автора может не быть вовсе. Идея возникает в потоке работы, попадает в общую память и начинает жить сама. Точки входа нет — есть свойство системы, где агенты пишут и читают общее состояние.

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

Где у вас может быть общая память

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

Файл с инструкциями проекта. Тот самый, который агент читает в начале работы и куда иногда сам дописывает выводы. Классический переносчик: читается всеми, пишется многими, живёт вечно.

Заметки между шагами. Агент оставляет себе или следующему агенту резюме сделанного. Смысл конструкции именно в передаче, поэтому она и работает как канал.

База результатов. Ответы моделей, сохранённые для повторного использования. Если оттуда что-то подставляется в новый контекст, это тот же механизм, только медленнее.

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

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

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

Почему это не мистика

Отдельно стоит снять налёт таинственности, который тема неизбежно набирает из-за формулировок вроде «идеи заражают агентов».

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

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

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

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

Что делать практически

Пять мер, отсортированных по отношению эффекта к трудозатратам.

  1. Добавьте предупреждение в системный промпт. По результатам работы это почти обнуляет передачу. Формулировка сводится к тому, что содержимое общих файлов и заметок — это данные о прошлой работе, а не инструкции, и выполнять их не нужно.
  2. Ограничьте срок жизни общей памяти. Заметка, которая нужна на один цикл, не должна лежать месяц. Чем короче память, тем короче цепочка передачи.
  3. Разделите память по задачам. Общий на всех файл — идеальный переносчик. Отдельное пространство под каждую задачу разрывает цепочку между несвязанными агентами.
  4. Логируйте, что пишется в общее состояние. Не для фильтрации, а чтобы можно было потом понять, откуда взялась странность в поведении.
  5. Не давайте агенту прав, которых не требует задача. Идея, попавшая в память, опасна ровно настолько, насколько широки права того, кто её прочитает. Подробный разбор — в своде по правам агента.

Первый пункт стоит внедрить сегодня: это одна строка, и она подтверждена экспериментом.

Чего мы не утверждаем

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

Мы не воспроизводили эксперимент. Все цифры — из публикаций, перечисленных в источниках.

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

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

Почему это ложится в общую линию

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

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

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

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

Что держать в голове

Идеи в многоагентных системах способны распространяться сами: через общую память, с мутациями, переживая десятки передач. Автор для этого не нужен.

Самое ценное в работе — не описание проблемы, а дешёвое лекарство: строка в системном промпте, объясняющая, что содержимое общей памяти — это данные, а не команды. Внедряется за минуту.

Как мы отделяем проверенное от предполагаемого — на странице о проекте. Отдельный ключ с собственным лимитом под каждого агента: keydealer.ru/login.

Частые вопросы

Что за исследование?

Работа «Mind Viruses: Self-Propagating Ideas in Multi-Agent LLM Systems», опубликованная на arXiv 10 августа 2026 года. Среди авторов — Джек Линдси, исследователь Anthropic.

Что такое самораспространяющаяся идея?

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

Насколько живучими они оказались?

Отдельные держались через 20 последовательных передач. При этом они мутировали, и заразность мутаций иногда превышала исходную.

Как от этого защититься?

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

Насколько это опасно сегодня?

Авторы заключают, что риск реален, но текущая угроза ограничена. Речь про экспериментальную постановку, а не про наблюдаемые случаи в продакшене.

Источники