3,583 papers
arXiv:2608.12847 80 13 авг. 2026 г. FREE

QCR (Query-Conditioned Reuse): извлечение шаблона действий из прошлого опыта вместо копирования всей истории

КЛЮЧЕВАЯ СУТЬ
Парадокс: чем длиннее прошлый диалог вставляешь в промпт, тем хуже новый результат. Модель начинает тащить старое имя клиента, старую дату, старый номер заказа — как будто это ответ для новой задачи. Метод QCR позволяет повторно использовать успешный прошлый кейс (переговоры, письмо, отчёт) для похожей новой задачи без риска, что модель случайно скопирует чужие данные. Вместо всей истории модель сжимает её в заметку из 4 полей: что делать одинаково, какие значения проверить заново, когда шаблон не подходит, как проверить результат.
Адаптировать под запрос

TL;DR

QCR — техника повторного использования прошлого опыта LLM: вместо того чтобы вставлять в промпт всю историю решения похожей задачи целиком, модель сначала превращает её в компактную заметку из четырёх частей — какой шаблон действий остаётся неизменным, какие значения нужно проверить заново (имена, даты, номера — всё, что изменилось), когда этот шаблон вообще не подходит, и как проверить итоговый результат.

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

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


🔬

Схема метода

ШАГ 1 (отдельный запрос): Дай модели прошлый успешный пример решения похожей задачи
→ попроси разложить его на 4 поля:
   1. Workflow — неизменный порядок действий
   2. Bindings — конкретные значения, которые нужно ЗАНОВО проверить/узнать
   3. Applicability — условия, когда этот шаблон НЕ подходит
   4. Verification — как проверить итоговый результат
→ формат вывода: короткая заметка (в 2 раза короче исходной истории)

ШАГ 2 (новый запрос): Дай модели эту заметку + описание новой задачи
→ модель решает новую задачу по шаблону, но не тащит старые значения
→ формат вывода: решение новой задачи + явная проверка по гайдрейлу

🚀

Пример применения

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

Промпт (шаг 1):

Вот переписка, где я успешно договорился с кандидатом Иваном о найме на позицию 
менеджера по продажам (зарплата 180к, старт 1 марта, без релокации):

{вставить переписку}

Разбери этот успешный кейс на 4 части:
1. Workflow — какая последовательность шагов в переговорах сработала (независимо от деталей)
2. Bindings — какие конкретные значения (зарплата, даты, условия) 
   я должен будет заново узнать/обсудить с новым кандидатом, а не брать из этого кейса
3. Applicability — в каких ситуациях этот подход к переговорам не сработает
4. Verification — как проверить, что переговоры с новым кандидатом прошли так же успешно

Дай короткую заметку, без цитирования старой переписки.

Результат: Модель выдаст компактную заметку на 4 пункта: например, workflow — «сначала обозначить вилку зарплаты, потом обсудить нематериальные условия, потом закрепить дату старта письменно»; bindings — «зарплата, дата старта, релокация — для нового кандидата все эти пункты нужно обсудить с нуля»; applicability — «подход не сработает, если кандидат уже имеет офер от конкурента с дедлайном»; verification — «переговоры успешны, если кандидат подтвердил дату старта письменно». Эту заметку дальше можно вставить в новый диалог о переговорах со следующим кандидатом — без риска, что модель случайно предложит новому человеку зарплату или дату Ивана.


🧠

Почему это работает

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

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

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

Рычаги управления: - Количество полей (4) → для простых повторяющихся задач можно сократить до 2 (workflow + bindings), для рискованных задач (юридические документы, финансы) добавить больше проверочных условий. - Поле Verification → замени формулировку под свою задачу («проверить, что сумма совпадает с договором» вместо общего «проверить результат»). - Applicability → явно добавь свои условия отказа от повторного использования шаблона — это защищает от слепого копирования подхода туда, где он не подходит.


📋

Шаблон промпта

Вот успешный прошлый кейс решения похожей задачи:

{текст прошлой переписки/решения}

Новая задача:
{описание новой задачи}

Разбери прошлый кейс на 4 части и дай короткую заметку (без цитирования исходного текста):

1. Workflow — какая последовательность действий/подход сработали и остаются актуальными
2. Bindings — какие конкретные значения (имена, даты, числа, условия) из прошлого кейса 
   НЕ подходят для новой задачи и должны быть заново получены/уточнены
3. Applicability — при каких условиях этот подход вообще неприменим к новой задаче 
   (когда лучше не использовать этот шаблон)
4. Verification — как проверить, что новая задача решена так же успешно, как прошлая

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

Подставь: {текст прошлой переписки/решения} — любой прошлый успешный результат (переговоры, письмо, отчёт, код, план); {описание новой задачи} — новая похожая ситуация с другими деталями.

🚀 Быстрый старт — вставь в чат:

Вот шаблон QCR (повторное использование прошлого опыта). Адаптируй под мою задачу: 
{твоя задача}. Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

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


⚠️

Ограничения

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

⚠️ Не работает, если задачи структурно разные: метод помогает, когда меняются детали (имена, даты, цифры), но сам подход к задаче одинаковый. Если новая задача требует другой логики решения — заметка не спасёт.

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


🔗

Ресурсы

Yifei Li, Heng Wang, Lingling Zhang и др. (Xi'an Jiaotong University), «Beyond Retrieval: Query-Conditioned Reuse of Long-Horizon Agent Trajectories». Тестировали на бенчмарках агентов WebArena, WorkArena, AppWorld.


📋 Дайджест исследования

Ключевая суть

Парадокс: чем длиннее прошлый диалог вставляешь в промпт, тем хуже новый результат. Модель начинает тащить старое имя клиента, старую дату, старый номер заказа — как будто это ответ для новой задачи. Метод QCR позволяет повторно использовать успешный прошлый кейс (переговоры, письмо, отчёт) для похожей новой задачи без риска, что модель случайно скопирует чужие данные. Вместо всей истории модель сжимает её в заметку из 4 полей: что делать одинаково, какие значения проверить заново, когда шаблон не подходит, как проверить результат.

Принцип работы

Workflow — правило действия, отделяют от bindings — конкретных цифр и имён. Правило остаётся, цифры помечаются как «узнать заново». Модель работает с заметкой, а не с сырым текстом — и у неё физически нет под рукой старых цифр, чтобы их скопировать.

Почему работает

В длинном контексте все детали выглядят для модели одинаково весомыми. Старое имя клиента и старая дата старта — такие же «данные под рукой», как и всё остальное, и модель хватает их как готовый ответ. Заметка из 4 полей убирает эти цифры из вида — рядом написано «узнать заново», и копировать больше нечего.

Когда применять

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

Мини-рецепт

1. Найди прошлый кейс: успешный пример похожей задачи — переписка, письмо, отчёт.
2. Разложи на 4 части отдельным запросом: workflow (что неизменно), bindings (какие цифры и имена проверить заново), applicability (когда подход не сработает), verification (как проверить успех).
3. Получи короткую заметку: она должна быть заметно короче исходного текста, без цитирования старой переписки.
4. Подставь в новую задачу: дай модели заметку + описание новой ситуации, попроси решить без оглядки на старые значения.

Примеры

[ПЛОХО] : Вот моя переписка с Иваном о найме на 180к с 1 марта — веди так же переговоры с новым кандидатом Петром
[ХОРОШО] : Разбери кейс с Иваном на 4 части: workflow (что делать одинаково), bindings (зарплата, дата старта, релокация — узнать заново для Петра), applicability (когда подход не сработает), verification (как проверить успех). Дай короткую заметку без цитирования переписки
Источник: Beyond Retrieval: Query-Conditioned Reuse of Long-Horizon Agent Trajectories
ArXiv ID: 2608.12847 | Сгенерировано: 2026-08-14 06:26

Проблемы LLM

ПроблемаСутьКак обойти
Модель копирует старые детали из прошлой историиВставляешь в промпт полное прошлое решение похожей задачи. Модель видит там имена, даты, цифры. Она берёт эти старые значения для новой задачи вместо того чтобы узнать актуальные. Чем длиннее история — тем хуже. Это ломается даже когда ты прямо просишь решить новую задачу с другими деталямиНе вставляй сырую историю целиком. Сначала попроси модель разложить прошлый кейс на 4 части: что делать одинаково, какие значения проверить заново, когда подход не годится, как проверить результат. Дальше работай с этой короткой заметкой, а не с полным текстом

Методы

МетодСуть
Разбор прошлого кейса на 4 поля перед повторомСделай это в два шага. Шаг 1: дай модели прошлый успешный пример и попроси выделить Workflow (неизменная последовательность действий), Bindings (значения — имена, даты, числа — которые нужно узнать заново), Applicability (когда этот подход не годится), Verification (как проверить результат). Шаг 2: дай модели эту заметку плюс новую задачу — без исходного текста. Почему работает: заметка явно помечает где правило, а где временное значение, поэтому у модели нет соблазна скопировать старую цифру. Когда применять: повторяющиеся задачи с похожей структурой, но разными деталями — переговоры, письма, отчёты. Когда не работает: нет похожего прошлого примера, или новая задача требует другой логики решения, а не других деталей

Тезисы

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

Beyond Retrieval: Query-Conditioned Reuse of Long-HorizonAgentTrajectories

arXiv: 2608.12847

Суть тут в том, что у нейронок память работает как у золотой рыбки с синдромом отличника: если ты дашь ей пример старой задачи, она вцепится в детали мертвой хваткой. Вместо того чтобы выучить принцип, модель начинает тупо копировать старые даты, имена и цены в новый контекст. Метод QCR (Query-Conditioned Reuse) лечит этот баг, заставляя AI не просто вспоминать прошлое, а проводить над ним жесткую ревизию, превращая громоздкий опыт в компактную и безопасную инструкцию.

Это как если бы ты учил друга готовить борщ по своим старым записям, где написано: «В 14:15 добавил 300 грамм говядины от фермера Васи». Вместо того чтобы переписывать этот бред, ты даешь ему шаблон: «Мясо клади в начале, время зависит от веса, а имя фермера вообще забудь — ищи любого нормального». Формально ты используешь старый опыт, но выкидываешь из него весь мусор, который может сбить новичка с толку.

Чтобы это сработало, модель упаковывает прошлый опыт в четыре конкретных блока. Сначала она выделяет неизменный шаблон действий (алгоритм), затем помечает переменные значения, которые нужно проверить заново (даты, суммы, имена), прописывает стоп-сигналы, когда этот опыт вообще не применим, и добавляет чек-лист для проверки финала. В итоге вместо простыни текста с кучей лишних цифр получается четкий гайд, где 100% информации полезно для текущей задачи.

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

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

Работа с исследованием

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

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с