Журнал · Rit.work

CoMem превращает найденные ошибки в рабочую память LLM-агента

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

Rit.work
Студия разработки
20 октября 2026 г.4 мин чтения

Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.

Память LLM-агента научили использовать прошлые ошибки для прогноза следующего сбоя, а не только показывать их основной модели как примеры. Хотя препринт не рецензирован и числа получили сами авторы, на BigCodeBench-Hard CoMem прибавил 4,73 процентного пункта к результату ближайших вариантов памяти. Архитектура позволяет отделить накопление опыта от основной модели и заранее направлять её решение.

Найденный опыт меняет гипотезу, а не только промпт

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

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

CoMem, которую предложили Yun Shen, Ming Shen и Tianjun Yao, соединяет эти части последовательно. Сначала агент собирает собственные успешные и неудачные исправления. Для каждой обучающей задачи система находит похожий успешный случай и ошибку, после чего базовая модель пишет гипотезы о том, как новая попытка может пойти не так.

Эти гипотезы становятся материалом для обучения отдельного модуля через LoRA. Модуль получает и условие текущей задачи, и найденные случаи. Поэтому он учится не воспроизводить общий совет вроде «проверьте крайние случаи», а переносить конкретный тип ошибки с учётом различий между задачами.

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

Разнообразие выросло, но преимущество зависит от задачи

Проверка охватила Qwen3-4B и Qwen3-8B на пяти наборах задач: MATH для математики, HumanEval+ и LiveCodeBench для кода, HotpotQA и MuSiQue для ответов по нескольким источникам. Для программ считали долю решений, прошедших скрытые тесты с первой генерации; математические ответы проверяли на эквивалентность, а ответы на вопросы — отдельной моделью-оценщиком.

Гипотезы CoMem повторяли друг друга реже. На задачах с вопросами показатель Self-BLEU-4, который измеряет сходство текстов между собой и должен снижаться при росте разнообразия, упал с 0,508 у обычного дообучения до 0,419. Одновременно выросло разнообразие отдельных слов и их пар.

Перенос проверяли отдельно: память учили на одном наборе, а затем применяли к задачам другого распределения. CoMem лучше ParamMem и DoT-Bank справился с математическими наборами AIME и OlympiadBench, а также с BigCodeBench-Hard. На 2WikiMultiHopQA он остался на уровне ParamMem, поэтому соединение двух видов памяти не даёт одинакового выигрыша во всех областях.

Гипотезы от меньшей Qwen3-8B также направляли Qwen3-Next-80B-A3B-Instruct. Такая связка показала лучший или близкий к лучшему средний результат на математике, коде и вопросах по нескольким источникам, но CoMem и ParamMem там выступили сходно. Значит, меньшую модель можно использовать как отдельный модуль памяти, однако именно составная схема пока не доказала преимущество над обычной параметрической памятью при каждом переносе на более сильную модель.

Когда CoMem стоит закладывать в архитектуру

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

За такой схемой стоит дополнительный контур данных. Нужно сохранять не только успешный ответ, но и неудачную попытку, обратную связь, объяснение ошибки и исправление. Затем требуется поиск похожих случаев и дообучение модуля, который умеет сопоставлять их с новой задачей. В эксперименте полезные подсказки получались уже при обучении на 1 000 примерах, но на коде и вопросах результат заметнее отставал от обучения на полном наборе.

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

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

Источники

Пауза в чтении

Похоже на вашу задачу?

Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.

Rit.work

Студия разработки

Собираем мобильные приложения и помогаем командам получать от AI реальную пользу. Основатель и команда, работаем удалённо — с клиентами в России и за рубежом.

← Ко всем материалам
Понравилось? Обсудим вашу задачу