WikiTrace учит ИИ-агента сверять уроки памяти с исходными прогонами

Wait 5 sec.

Исследователи из корейского института KAIST и компании DeepAuto.ai 10 ноября выложили на arXiv препринт «Don't Just Trust Your Memory» с системой памяти WikiTrace для ИИ-агентов: каждый урок, вынесенный из прошлых задач, хранится со ссылкой на прогон, из которого он выведен, и агент может свериться с этим прогоном до того, как уроку следовать. По замерам авторов на пяти бенчмарках средний результат агента с WikiTrace составил 90,2 против 79,5 без памяти и 87,0 с теми же уроками без доступа к источникам.Работа касается всех, кто даёт агенту «опыт»: файлы с правилами, заметки о прошлых сессиях, базы уроков, память из заметок и вики. По данным авторов, агент с такой памятью проваливает часть задач, которые без неё решал, а предлагаемое средство простое: исходные журналы прогонов остаются рядом с уроками, и агент получает инструкцию к ним возвращаться. Препринт подан в ACL Rolling Review и рецензию ещё не прошёл, независимого воспроизведения результатов нет, код открыт на GitHub под лицензией Apache 2.0.Препринт arXiv:2611.14320 вышел 10 ноября 2026 года и находится на рецензии; все числа ниже — замеры самих авторов.Средний результат по восьми наборам задач пяти бенчмарков: WikiTrace 90,2, те же уроки без источников (Insights Only) 87,0, ReasoningBank 81,7, AWM 81,6, ExpeL 80,3, агент без памяти 79,5.Среди задач, которые агент решал без памяти, с WikiTrace проваливается 4,5%, с одними уроками 6,5%; повторный запуск того же агента без памяти даёт 9,7%.Решение одной задачи с WikiTrace в среднем в 1,17 раза дороже, чем с теми же уроками без доступа к источникам.Все уроки кладутся в первое сообщение агенту; случай, когда они перестают помещаться в контекст, авторы оставили открытым.Почему память иногда делает агента хуже?Потому что урок в памяти — это догадка о причине успеха или провала, и проверить её агенту нечем. Память агента обычно строят так: модель читает траекторию прошлой задачи, то есть последовательность действий и ответов среды, и сжимает её до короткого правила. У траектории при этом одна метка, «успех» или «провал», и она не говорит, какое из действий привело к исходу. Автор урока угадывает, а агент получает правило уже без траектории.Авторы называют следствие memory-induced degradation, деградацией из-за памяти, и приводят пример из ALFWorld, текстового симулятора домашних дел. В памяти метода ExpeL оказалось правило «задачи с лампой завершаются, когда предмет лежит рядом с включённой лампой». В задаче «рассмотри вазу под настольной лампой» агент с этим правилом включил лампу рядом с вазой и объявил задачу выполненной; без памяти он брал вазу в руки, включал лампу и задачу решал. Исходный прогон, из которого правило выведено, ему противоречит: там эпизод завершился, только когда агент взял предмет в руки.Чтобы оценить масштаб, авторы отобрали задачи, которые агент решил во всех трёх прогонах без памяти и провалил с памятью, и отдали пары прогонов LLM-судье (gpt-5.6-sol со средним уровнем рассуждений). По его разметке в 52% таких случаев провал связан с записью из памяти, которой агент последовал. В 20% всех разобранных случаев неверной была сама запись, в остальных из этих 52% верное правило применили вне его условий, истолковали слишком широко или предпочли более подходящему. В прочих случаях связи с памятью судья не нашёл.However, memory can also lead to memory-induced degradation, where an agent fails on tasks it would solve without memory, often because it follows a lesson that is incorrect, or misapplies or misreads a valid one.Как устроен WikiTrace?Это три слоя файлов, связанных ссылками сверху вниз. Нижний слой raw/ хранит прогон как он был: задачу, исход и полный журнал ходов с рассуждениями, действиями и ответами среды. Средний слой compilation/ — разбор прогона, который пишет модель-компилятор: ключевые решения, если задача решена, или вероятные причины провала. Верхний слой insight/ — короткие уроки, не больше трёх на прогон; в каждом сказано, что делать, когда это применимо, из какого прогона урок взят и был ли тот успешным. Слои описаны в README модуля памяти.Как WikiTrace строит память (a), как выглядят её документы (b) и когда агент идёт по ссылкам к источнику (c). Источник: Lee et al., arXiv:2611.14320, CC BY 4.0Компилятор вызывается один раз на прогон и видит только задачу, ходы и признак успеха; эталонного решения у него нет. Уроки не объединяются, не фильтруются и после записи не меняются, поэтому в памяти могут лежать повторяющиеся и противоречащие друг другу правила. Шаблон документа урока в репозитории выглядит так:На новой задаче агент получает в первом сообщении все уроки и список трёх прошлых прогонов, чьи задачи больше всего похожи на текущую. Сама память смонтирована в песочнице только для чтения в каталог /work/corpus, и агент читает её обычными инструментами терминала read и bash. Когда идти по ссылке к источнику, задаёт промпт; авторы называют этот шаг спуском (descent). Вот его ключевая часть в варианте для ALFWorld, по шаблону в репозитории и приложению к статье:Условий спуска четыре: урок говорит, что делать, но не говорит, как именно; он взят из неудачного прогона; два урока расходятся; действие не удалось. Воспроизводить прошлый прогон целиком правила запрещают: из него берётся только факт, проверяемый на текущей задаче. Выше в том же промпте модель предупреждают, что достоверны только сырые ходы: «Only the raw turns are certain».Что показали замеры и с чем сравнивали?WikiTrace оказался первым на всех восьми наборах задач, а главный контроль — вариант Insights Only с теми же уроками, но без смонтированных источников и без инструкции спускаться — отстал в среднем на 3,2 пункта. Бенчмарков пять. Три — текстовые миры, где агент отдаёт по одной команде: ALFWorld (домашние дела), ScienceWorld (научные опыты) и PlanCraft (крафт в Minecraft). Два — среды с вызовом инструментов: AppWorld (повседневные задачи через API приложений) и tau3-bench Retail (диалог с симулированным покупателем и операции над базой заказов).Все методы работали на одном агенте — терминальном агенте Pi с моделью deepseek-v4-flash на высоком уровне рассуждений; та же модель строила память. Каждый метод один раз собирал память из одних и тех же прогонов без памяти на обучающих задачах (от 38 до 54 задач на бенчмарк) и проверялся на одних и тех же тестовых (от 76 до 134 задач в наборе), по три повтора. Сравнивали с тремя опубликованными методами: AWM превращает успешные траектории в сценарии, ExpeL ведёт список правил в свободной форме, ReasoningBank извлекает стратегии из успешных и неудачных прогонов и подбирает их по сходству задач.Средний результат агента на deepseek-v4-flash по восьми наборам задач пяти бенчмарков, три повтора. График: Tproger по данным Lee et al., arXiv:2611.14320, таблица 1Результаты по наборам задач, среднее трёх повторов (deepseek-v4-flash, агент Pi)Набор задачБез памятиAWMReasoningBankExpeLInsights OnlyWikiTraceALFWorld, seen94,494,792,194,496,798,7ALFWorld, unseen94,397,392,898,097,398,8ScienceWorld83,788,985,091,994,996,1PlanCraft, seen72,376,384,774,088,793,3PlanCraft, unseen56,357,361,351,073,081,3tau3-bench Retail86,885,586,482,585,188,2AppWorld, Test-Normal75,479,380,880,586,889,5AppWorld, Test-Challenge72,773,470,770,073,775,8Среднее79,581,681,780,387,090,2Источник: Lee et al., arXiv:2611.14320, таблица 1. Метрики у бенчмарков разные: доля успешных задач в ALFWorld и PlanCraft, средний балл в ScienceWorld, доля выполненных задач (TGC) в AppWorld, доля пройденных задач в tau3-benchТаблицу стоит читать с двумя оговорками. Среднее складывается из разных метрик, поэтому 90,2 нельзя читать как «90,2% решённых задач». И разброс между повторами местами велик: на PlanCraft unseen у WikiTrace 81,3 при стандартном отклонении 8,5, у Insights Only 73,0 при 10,7. На tau3-bench Retail все остальные методы с памятью оказались ниже агента без памяти; WikiTrace, по словам авторов, единственный ни на одном наборе не опустился ниже этой планки.Насколько реже агент ломает то, что умел без памяти?По замерам авторов, с WikiTrace проваливается 4,5% задач из тех, что решались без памяти, с одними уроками 6,5%. Средний балл не различает, помогла память решить новое или сломала старое, поэтому авторы считают эти эффекты отдельно. Gain — доля успехов на задачах, которые агент без памяти проваливал, Regression — доля провалов на задачах, которые он без памяти решал; «решал» означает исход большинства из трёх прогонов без памяти.Regression: доля провалов среди задач, которые агент решал без памяти; среднее по восьми наборам. График: Tproger по данным Lee et al., arXiv:2611.14320, раздел 4.3Строка «повторный запуск без памяти» задаёт уровень шума: агент недетерминирован, и три дополнительных прогона без всякой памяти дают Regression 9,7%. Поэтому сам показатель не доказывает, что конкретный провал вызвала память. У WikiTrace, как пишут авторы, Regression ниже, чем у Insights Only, на семи наборах из восьми, и это единственный метод, чей 95-процентный доверительный интервал целиком лежит ниже полосы повторного запуска. Gain у WikiTrace выше уровня повторного запуска на 35 процентных пунктов, у Insights Only на 27, у опубликованных методов на 7–14.К источникам агент обращается чаще там, где труднее: в трёх текстовых мирах он открывал разбор или сырой прогон в 22% запусков на лёгких задачах и в 44% на трудных. Открытый прогон менял план агента в 43% запусков со спуском, и в них отрыв от Insights Only составил 8,3 пункта против 4,4, когда источник лишь подтвердил план или не пригодился. Эти доли размечали LLM-судьи, а агент сам выбирает, когда спускаться, поэтому запуски со спуском и без него отличаются не только спуском.Сколько это стоит и повторяется ли на другой модели?На этапе решения задача с WikiTrace обходится в среднем в 1,17 раза дороже, чем с Insights Only; это среднее по наборам задач, и база сравнения здесь — вариант с теми же уроками; с агентом без памяти эта цифра ничего не сравнивает. Увеличенный бюджет на построение памяти конкурентам не помог: когда построитель AWM прогнали по тем же траекториям девять раз, а ExpeL и ReasoningBank по три, их средние выросли до 83,8, 83,3 и 82,8 и остались ниже 87,0 у Insights Only.Вторую модель проверили в меньшем объёме: GLM-5.3-flash на среднем уровне рассуждений и только на трёх наборах задач (оба PlanCraft и ScienceWorld). Там WikiTrace набрал в среднем 92,7 против 90,9 у Insights Only и 71,2 без памяти, а каждый из трёх опубликованных методов хотя бы на одном наборе оказался ниже агента без памяти. Основной результат 90,2 относится только к deepseek-v4-flash.Что делать тем, кто строит агентов с памятью?Готового продукта здесь нет: репозиторий воспроизводит эксперименты статьи. Из работы следуют три вещи, которые можно проверить на своём агенте; это наше прочтение результатов, авторы таких рекомендаций списком не дают.Хранить сырые журналы прогонов рядом с выжимками и ставить в каждом уроке ссылку на прогон-источник и пометку, успешным ли он был.Описать в промпте условия, при которых агент обязан свериться с источником: уроку не хватает деталей, он взят из неудачного прогона, два урока расходятся, действие не удалось.Измерять отдельно, что память починила и что сломала, и сравнивать с повторным запуском без памяти: средний балл эти эффекты смешивает. О том, как устроить проверку памяти у себя, мы писали в материале о методике проверки памяти ИИ-агента.Чтобы повторить замеры, нужны Python 3.11 или новее, uv, Node 20, Docker и ключ OpenRouter. Команды из README репозитория: установка окружения и бенчмарка ALFWorld, построение памяти на обучающих задачах, тестовый прогон метода wikitrace и расчёт Gain и Regression. Это один повтор. Чтобы analyze посчитал показатели, по документации модуля анализа у каждой задачи должны быть результаты метода no-memory для повторов 0, 1 и 2, а у сравниваемого метода — те же повторы, то есть build и run повторяются с --trial 0, 1 и 2, а run запускается ещё и с --method no-memory.Чего эта работа не доказывает?Ссылка на источник не делает урок верным, и авторы пишут об этом сами. Память строится по бинарному исходу прогона, поэтому диагноз компилятора и любой урок из него могут быть ошибочными.A source link lets the agent check an insight against its run but does not verify the insight.Масштаб. Все уроки кладутся в первое сообщение, чтобы агент ни одного не пропустил, и промпт растёт вместе с памятью. В примере промпта для ALFWorld из приложения к статье в сообщении 141 урок. Поиск по памяти, которая не помещается в контекст, авторы оставили открытой задачей.Разметка причин. Категории провалов и причины спусков определяли LLM-судьи по рассуждениям агента, то есть они описывают, что агент написал, и не обязательно то, что привело к исходу. Согласие двух судей авторы оценивают каппой Коэна 0,77 для повода к спуску, 0,63 для его цели и 0,46 для эффекта.Сравнение. Конкурентов запускали по официальным реализациям, но в общем для всех офлайн-протоколе: память строится один раз и замораживается. ReasoningBank поэтому не обновлялся после каждой тестовой задачи, а ExpeL работал без повторных попыток и подбора примеров.Охват. Основной эксперимент проведён на одной модели, а среди пяти бенчмарков нет задач на работу с репозиторием кода.Статья подана в октябрьский цикл ACL Rolling Review 2026 года, и её выводы могут измениться после рецензии. О соседней проблеме длинной истории — наш разбор того, как контекст агента деградирует в продакшене. Пошаговый пример авторы выложили на странице проекта WikiTrace.Источники: Lee et al. Don't Just Trust Your Memory: Evidence-Linked Memory Reduces Memory-Induced Degradation in LLM Agents (arXiv:2611.14320), HTML-версия препринта, Репозиторий WikiTrace на GitHub, README модуля памяти WikiTrace, Шаблон промпта спуска descend.j2, Документация модуля анализа Gain и Regression, Страница проекта WikiTrace, Pi Agent HarnessИзображение на обложке: Изображение: Lee et al., arXiv:2611.14320