Память LLM-агентов: почему отбор фактов не спасает решение

Память LLM-агентов: почему отбор фактов не спасает решение

Двенадцать фактов, четыре агента, три варианта ответа. В одной раскладке точность 96,7%, в другой 22,2%. Текст фактов при этом не меняется ни на символ, меняется только то, кто из агентов какой факт произнёс.

Именно этот перекос и разбирает работа «Rare, Relevant, and Still Wrong: How Memory Fails LLM Group Decisions» (arXiv:2610.37624, UESTC, Xidian, NUAA). Авторы проверили две самые естественные эвристики сжатия групповой дискуссии в короткую память: оставить самое редкое и оставить самое релевантное. Обе оказываются ставкой на раскладку, а не на качество решения. Средняя точность отбора по редкости не отличается от случайного.

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

Что такое задача скрытого профиля

Задача скрытого профиля (hidden profile) описывает ситуацию, когда часть доказательств есть только у отдельных участников, а полная картина складывается лишь после обмена. Классическая работа Стассера и Титуса 1985 года показала: группы охотно обсуждают общее знание и теряют приватные факты, поэтому решение уходит в сторону от правильного. В LLM-группах тот же эффект воспроизводится через память, которую получает финальный решатель.

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

Что построили авторы

CrossProfile состоит из 60 шаблонов на 12 доменах по пять шаблонов: закупка больничных сканеров, поставщик школьных обедов, маршрут городского автобуса, выбор склада, хостинг для софта, место для поликлиники, кандидат в лабораторию, площадка конференции, подрядчик на ремонт моста, система ирригации для фермы, ремонт библиотеки, место для убежища.

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

Дальше начинается главное. Владение тремя группами фактов переставляется независимо: поддержка может быть приватной или общей, приманка тоже, нерелевантные факты тоже. Тексты при этом фиксированы. Восемь раскладок на 60 шаблонов дают 480 задач, и каждая проверяется при бюджетах памяти 40, 60 и 80% от всех фактов.

Пример шаблона M01 показывает, почему это сложнее, чем кажется. Панель выбирает поставщика сканеров и взвешивает цену, электробезопасность и скорость ремонта. Hallum Diagnostics прошёл все проверки электробезопасности, но в прошлом году девять дней отвечал на срочные вызовы. Ostrava Clinical прошла тесты на утечку, присылает инженера в любое отделение за четыре часа, дала цену на 8% ниже, но провалила тест одной партии на прошлом контракте. Обе компании имеют и сильные, и слабые факты, и оба набора релевантны критериям. Правильный вариант здесь Ostrava.

Почему прежний бенчмарк всех обманул

HiddenBench, предыдущий бенчмарк того же класса, давал красивые числа. На 65 задачах (58 с четырьмя агентами, 7 с тремя, всего 503 факта) отбор по редкости при бюджете 60% выходил на 88,2% у Qwen2.5-7B и 87,7% у Llama-3.1-8B. Суммаризация того же обсуждения давала 51,3% и 59,0%. Разрыв +29,2 пункта [22,9; 35,4] и +26,7 [20,2; 33,2]. Выглядит как убедительная победа правила «сохраняй то, что сказали немногие».

Проверка ссылочными памятями ломает эту картину. Память только из приватных фактов даёт 91,3% и 90,3%, то есть +21,5 и +28,7 пункта к памяти со всеми фактами. Память только из общих фактов даёт 5,6% и 4,6%, что ниже пустой памяти в том же прогоне (35,4% и 36,4%). В HiddenBench общие факты указывают на неверный вариант, поэтому их выброс и есть весь секрет. Редкость там случайно совпала с полезностью, и никакого переносимого правила за ней нет.

CrossProfile как раз снимает эту путаницу: редкость перестаёт быть прокси для полезности.

Редкость не лучше случайного выбора

Усреднение по восьми раскладкам даёт скучный результат. Отбор по редкости (R1) набирает 64,0% против 64,5% у случайного выбора на Qwen и 63,0% против 63,4% на Llama. Разницы нет.

Зато внутри ячеек разброс огромный. Когда поддержка приватна, а приманки общие, R1 выходит на 90–97%, а отбор по первому упоминанию (B4) падает до 11–31%. Когда раскладка обратная, поддержка общая, а приманки приватные, B4 даёт 92–96%, а R1 сползает к 18–40%. Политики меняются местами, потому что каждая из них просто сохраняет то, чего в обсуждении больше.

Формальный тест взаимодействия H1 это подтверждает: +64,6 пункта [60,3; 69,0] на Qwen и +62,6 [56,8; 68,2] на Llama при p < 0,001 по Холму. Против случайного выбора взаимодействие скромнее, +40,7 [34,6; 47,1] и +34,2 [27,8; 41,0], а при равном числе сохранённых фактов снова взлетает до +66,8 и +72,6. Часть эффекта встроена в сам дизайн: общие утверждения звучат в первом ходе, поэтому B4 почти механически оказывается зеркалом R1.

Хостинговые модели ведут себя так же. На DeepSeek-V4.1-Flash взаимодействие +62,6 [56,7; 68,6] против случайного +28,3 [22,1; 34,7], на 30 шаблонах у DeepSeek-V4-Pro +30,6 [22,5; 38,6].

Релевантность тоже не спасает

Вторая эвристика выглядит умнее: отфильтровать факты по критериям решения, а потом уже резать по бюджету. В среднем она действительно лучшая среди политик с ограничением: +8,5 [3,5; 13,6] к R1 на Qwen, +15,6 [11,1; 19,9] на Llama, +16,7 [12,8; 20,7] на Flash. Средние 72,6% и 74,6% против 64,0% и 63,0% у R1.

Проблема в классической ячейке, где поддержка приватна, приманки общие, а нерелевантные факты приватны. Там R1 держит 96,7% [93,3; 99,4] на Qwen и 97,2% [93,9; 99,4] на Llama, а фильтр по релевантности снимает 22,2 [−28,9; −16,1] и 20,0 [−26,1; −13,9] пункта. Причина в том, что приманки релевантны критериям по определению: они про цену и сроки, просто указывают на неверный вариант.

Дальше авторы убирают последнее оправдание, ошибки фильтра. Оракульный фильтр знает разметку и считает релевантными и поддержку, и приманку. Даже он проигрывает R1 в этой ячейке на 23,3 [−30,6; −16,1] и 31,1 [−38,9; −23,9] пункта. У DeepSeek-V4.1-Flash фильтр почти идеален, precision 99,4% и recall 98,9% против recall 66,0% у Qwen и 85,6% у Llama, и всё равно отставание 32,2 [−40,6; −24,4] пункта.

Релевантность отделяет критерии решения от всего остального, а полезность зависит от баланса доказательств между вариантами. Фильтр этот баланс не видит. Он сохраняет две общие приманки, каждая с четырьмя тегами авторства, и одновременно теряет часть поддержки: 8,3–8,5 факта против 9,0 у R1.

Что на самом деле определяет ответ

Авторы нашли величину, которая объясняет всё: чистый перевес правильного варианта среди сохранённых фактов, посчитанный по разметке. Точность растёт монотонно. При перевесе минус два она 13,5% на Qwen и 10,3% на Llama, при плюс два уже 76,0% и 75,6%, при плюс четыре и выше 96,2% и 96,1%.

В логистической модели со случайным перехватом, где учтены перевес и тон сохранённых нерелевантных фактов, вклад самой политики исчезает: коэффициенты R1-rel, B4 и Random перестают отличаться от нуля. То есть память не «умна» или «глупа», она просто передаёт решателю определённый перекос. Неверные ответы в основном указывают на приманку: B4 выбирает её в 71,1% и 63,3% решений в классической ячейке.

Практический смысл здесь жёсткий. Оптимизировать надо не редкость и не тематическое соответствие, а соотношение фактов за и против каждого варианта в том, что увидит решатель.

Теги авторства включают социальное доказательство

Память со всеми фактами должна быть нейтральной: правильный вариант имеет перевес плюс два в каждой раскладке, значит точность не должна зависеть от владения. На практике она выше на 21,0 пункта [16,5; 25,6] у Qwen и на 13,8 [9,7; 17,9] у Llama, когда поддержка общая, а не приватная. В классической ячейке такая память даёт всего 54,4% и 55,6%, примерно на 40 пунктов ниже памяти R1, собранной из тех же фактов под бюджет 60%.

Разгадка в формате строки. Каждая строка памяти начинается с тегов агентов, которые утверждение произнесли: [A1,A2] текст. Если теги убрать, преимущество общей поддержки падает с 21,0 до 7,2 пункта у Qwen и с 13,8 до 7,6 у Llama. Точность в классической ячейке при этом растёт на 14,4 [7,8; 21,1], 13,3 [6,7; 20,0] и 24,4 [17,2; 32,2] пункта, у Flash с 72,8% до 97,2%.

Дело именно в тегах, а не в порядке строк. Если те же наборы тегов перераспределить между фактами случайно, сохранив порядок, точность в классической ячейке всё равно растёт на 12,8 пункта у обеих открытых моделей. Модель читает «так сказали четыре агента» как свидетельство независимого подтверждения.

У эффекта есть и обратная сторона. Там, где поддержка общая, а приманки приватные, удаление тегов снижает точность Qwen на 10,6 пункта [−16,7; −4,4]. Когда широко разделённые факты действительно полезны, сигнал помогает. В CrossProfile общие факты назначались каждому агенту, а не наблюдались независимо, поэтому теги не несли никакой дополнительной информации, только вес. Это тот же эффект общего знания, что описан у Джигоне и Хэсти, но возникающий уже после обсуждения, на стороне решателя.

В естественных дискуссиях доказательства теряются раньше памяти

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

Ни одна политика памяти не показывает различимого преимущества: R1 минус суммаризация даёт −1,4 пункта [−5,0; 2,4] на Qwen и −3,1 [−9,2; 2,7] на Llama. Причина видна до всякой памяти. Полный транскрипт (REF) хуже пустой памяти на всех трёх моделях: 22,1% против 33,8% у Qwen, 33,8% против 36,9% у Llama, 25,6% против 35,9% у Flash. Собственное финальное голосование группы угадывает в 23,6%, 31,8% и 24,6% случаев, тогда как та же модель со всеми фактами даёт 70,3%, 61,5% и 89,7%.

Приватные факты просто не произносятся. В дискуссиях Flash эвристика по строкам находит приватный факт произнесённым полностью лишь в 1,7% случаев [0,6; 2,9]. Никакая политика сжатия не восстановит то, чего не было в обсуждении.

Один промпт частично лечит болезнь. Просьба сначала изложить доказательства и только потом рекомендовать поднимает точность полного транскрипта у Llama на 30,8 пункта [21,5; 39,5], а в парном прогоне с новыми сидами на 25,1 [15,9; 34,4]. У Qwen изменения не обнаруживается. Зато когда доказательства в дискуссии появляются, политика памяти снова начинает значить: у Llama R1 даёт 57,1% против 22,9% у B4 и 53,2% у суммаризации, тогда как в исходных обсуждениях все три держались в трёх пунктах друг от друга (29,2%, 29,4%, 32,3%).

Что с этим делать инженеру

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

Второе: не показывать решателю количество агентов, сказавших факт, если источники не независимы. Формат [A1,A2,A3] в строке памяти даёт до 24 пунктов разницы, причём в обе стороны. Либо убирать теги, либо заменять их чем-то содержательным, например указанием на происхождение доказательства и его проверяемость.

Третье: проверять disclosure до оптимизации сжатия. Если приватные факты не звучат в обсуждении, память не при чём. В работе это 1,7% произнесённых полностью приватных фактов, и именно поэтому полный транскрипт проигрывает пустой памяти.

Четвёртое: тестировать раскладки, а не одну. Средняя по вариантам владения скрывает провал в 22,2% и победу в 96,7% в одной и той же модели на одних и тех же фактах. Отчёт без разбивки по ячейкам ничего не говорит о надёжности схемы.

Пятое, менее очевидное: формат памяти не так важен, как её содержимое. Копирование утверждений тратит около 95% бюджета, суммаризация 79–85%, но при равном балансе доказательств разницы в точности не остаётся. Экономия токенов на суммаризации не конвертируется в качество решения автоматически.

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

Часто задаваемые вопросы

Почему отбор по редкости выглядит рабочим?

Потому что в классических задачах скрытого профиля общие факты указывают на неверный вариант, и редкость случайно совпадает с полезностью. Стоит переставить владение фактами, сохранив тексты, и преимущество исчезает: 64,0% против 64,5% у случайного выбора. Правило работало как прокси для другого свойства данных.

Суммаризация лучше копирования утверждений?

Нет. В CrossProfile суммаризация даёт 72,0% и 58,7% против 73,1% и 72,6% у памяти со всеми фактами, то есть теряет числа и детали без выигрыша в балансе. Она дешевле по токенам (79–85% бюджета), но при равном перевесе доказательств разницы в точности нет.

Можно ли просто убрать теги авторства?

В экспериментах это даёт от 13 до 24 пунктов, но там принадлежность назначалась случайно и не несла информации. В реальных командах совпадение мнений коррелирует с качеством, поэтому теги стоит не удалять, а проверять независимость источников: два агента на одной модели и одних данных не два свидетельства.

Результат держится на больших моделях?

Да. DeepSeek-V4.1-Flash на всех 60 шаблонах повторяет картину: взаимодействие H1 +62,6 пункта, релевантность в классической ячейке −32,2, удаление тегов +24,4. На 30 шаблонах DeepSeek-V4-Pro даёт +30,6 против случайного выбора, то есть масштаб модели этот тип ошибки не лечит.

Итог

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

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

← Все записи