3,583 papers
arXiv:2610.11152 75 8 окт. 2026 г. FREE

Direct ICRL как частный случай ICL: модель копирует показанные попытки, а оценки за них почти не читает

КЛЮЧЕВАЯ СУТЬ
Парадокс: агент вроде бы учится на оценках, но модель их почти не замечает. Переверни баллы, подставь случайные числа или убери совсем — кривая улучшения почти не меняется. Эта находка позволяет понять, что класть в контекст, когда агент застрял и в третий раз чинит то же место теми же словами. Фишка: улучшение даёт сам показ прошлых попыток, а не оценки к ним. Это обычное обучение на примерах в промпте (ICL), а не обучение с подкреплением. Оценка влияет всего на ~14% от эффекта самих попыток.
Адаптировать под запрос
⚡

TL;DR

Исследование проверяет популярную схему «агент улучшается по ходу работы». Он делает попытку, получает оценку, кладёт пару «попытка + оценка» в контекст и пробует снова. Выяснилось, что улучшение даёт сам факт показа прошлых попыток, а не оценки к ним. Модель подражает тому, что видит в контексте. Это поведение знакомо по обычным примерам в промпте (ICL, in-context learning), а не по обучению с подкреплением.

Если в оценках поставить всё наоборот, подставить случайные числа или убрать их совсем, кривая улучшения почти не меняется. Модель оценку читает, но влияет она слабо: примерно на 14% от эффекта самих попыток. Хуже того, показанная неудачная попытка повторяется чаще, чем без показа. Явная инструкция «не повторяй это» и пометка «всё провал» повтор почти не снижают. Так выглядит ситуация, когда агент в третий раз подряд делает то же самое и «исправляет» то же место теми же словами.

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

📌

Схема находок

ПОКАЗАЛИ попытку в контексте → модель её повторяет (даже провальную)
ИЗМЕНИЛИ оценку (верная / перевёрнутая / случайная / нет) → почти без разницы
ДОБАВИЛИ «не повторяй» или «всё провал» → повтор почти не падает
ПЕРЕСТАВИЛИ попытку в конец → повтор вырос в разы
ЗАМЕНИЛИ сырые попытки выводами (Reflexion) или чужими задачами → повтор исчез

Это находка, а не пошаговый метод. Практические выводы — в разделе «Шаблон промпта».

🚀

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

Задача: Вы просите Claude Code починить интеграцию с ЮKassa: вебхук приходит, а статус заказа не обновляется. Три патча подряд не сработали. Обычно мы оставляем всю переписку в чате, и каждая новая попытка получается вариацией предыдущей. Лучше открыть чистую сессию и дать краткий разбор, а не лог неудач.

Промпт:

Новая сессия. Задача: после вебхука ЮKassa (payment.succeeded) статус заказа 
в нашей БД остаётся "pending". Стек: Django, Celery, PostgreSQL.

Уже проверено, это НЕ причина (выводы, без кода патчей):
- Подпись вебхука проходит валидацию: проверено логами.
- Эндпоинт отвечает 200 за <1 сек.
- Задача Celery ставится в очередь: видна в Flower.

Не доказано, но не проверялось:
- Что происходит внутри Celery-задачи после постановки.
- Нет ли гонки между созданием заказа и приходом вебхука.

Предложи 3 принципиально разные гипотезы (разные слои системы), 
для каждой — как проверить за 5 минут. Код не пиши, пока я не выберу гипотезу.

Результат: Модель выдаст три гипотезы из разных слоёв (очередь, база, порядок событий) и способ быстрой проверки каждой. Старые неудачные патчи в контексте отсутствуют, поэтому заходов «в то же место» должно быть меньше. Код она не пишет, пока вы не выберете гипотезу.

🧠

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

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

Сильная сторона. Модель хорошо работает с краткими выводами на естественном языке и с релевантными примерами. Сводка вроде «вот что не причина» не даёт ей готового текста для копирования, но сохраняет информацию. В эксперименте именно такая форма (Reflexion) убрала повтор.

Рычаги управления: - Что кладёте в контекст. Сырые неудачные попытки → копирование. Выводы без кода → свобода для нового решения. - Порядок. Самое важное и лучшее ставьте в конец: оно воспроизводится заметно чаще. Образец, который не хотите видеть повторённым, держите подальше от конца или уберите. - Релевантность. Примеры из той же задачи сильнее влияют на результат. Чужая задача дала худший результат. - Оценки и ярлыки. Не рассчитывайте, что «оценка 3/10» заставит модель избегать этой попытки.

📋

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

Авторы не предлагают готовый промпт. Ниже прикладная сборка по условию Reflexion из статьи: сводка вместо сырых попыток. Сама формулировка шаблона не проверялась.

Задача: {задача}

Что уже пробовали и к чему это привело (кратко, без кода/текста попыток):
- {попытка_1}: {результат_и_вывод}
- {попытка_2}: {результат_и_вывод}

Что мы теперь знаем (факты, не гипотезы):
- {факт_1}
- {факт_2}

Лучший образец результата (если есть — одна штука, ставим последним):
{лучший_образец}

Предложи {число} принципиально разных подходов. 
Подходы должны отличаться по {ось_различия}, а не формулировками одного и того же.

Что подставлять: - {попытка_N} — одно предложение: что сделали и что получилось. - {факт_N} — проверенные ограничения и причины неудач. - {лучший_образец} — только если хотите, чтобы модель двигалась в его сторону. - {ось_различия} — слой системы, аудитория, структура, тон и так далее.

⚠️

Ограничения

⚠️ Только прямая схема: проверена простая схема «сырые попытки + оценки подряд в контексте». Агенты со своей памятью, отбором и сводками изучены косвенно (через Reflexion).

⚠️ Малые и средние модели: основной эксперимент на одной модели среднего размера (9B). Другие модели тестировались на части опытов. Как ведут себя крупные флагманы, не показано.

⚠️ Задачи узкого типа: код и текстовая игра с научными заданиями. Тексты, дизайн, креатив не проверялись.

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

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

⚠️ Нет проверенных формул: шаблон выше собран из условий эксперимента, а не взят из статьи. Одна формулировка «не повторяй» провалилась, но другие формулировки могут сработать лучше.

⚠️ Текст обрезан: в предоставленном фрагменте нет конца раздела 6 и обсуждения. Выводы опираются на аннотацию, введение, таблицы 1–5 и начало раздела 6.

🔍

Как исследовали

Исследователи взяли простейшую версию «обучения в контексте»: модель делает попытку, получает оценку, пара добавляется в контекст. Задачи брали из кода (HumanEval+, MBPP+) и из текстового мира ScienceWorld, где агент по шагам решает научные задания. Модели — шесть, от открытых 4–9B до GPT-5-mini и Gemini Flash-Lite. Основные опыты шли на Qwen-3.5-9B, 40 задач, 3 запуска.

Сначала меняли только оценки: настоящие, перевёрнутые, случайные, без них. Кривая улучшения почти не менялась. Из 360 пар «модель + задача» только 14 (3,9%) реагировали на настоящую оценку. В 213 парах (59%) улучшения не было вообще. Потом измерили, насколько оценка меняет вероятность повтора попытки. Вышло ~14% от эффекта самого показа. Неожиданность: когда показали попытки вообще без оценок, худшая повторялась чаще лучшей. Модель копирует, а не выбирает.

Дальше проверяли, что действительно влияет. Позиция сильнее всего: перенос лучшей попытки в конец поднял её повтор с 3,0% до 13,2%. Попытка «всё провал» и явное «не повторяй» повтор не убрали (около 27–30% против 16% без памяти). Сводки Reflexion и чужие задачи убрали (около 12–13%, ниже исходного уровня). Из таблицы 5: перемешанные и испорченные попытки дали такой же результат, как настоящие, а чужие задачи заметно хуже. Работает не смысл попытки, а похожесть на задачу и форма.

💡

Адаптации и экстраполяции

💡 Адаптация для итераций с текстом: вы просите ИИ переписать лендинг, а он показывает вариации одного и того же. Не вставляйте в чат все прошлые версии с «не нравится». Вставьте выводы.

Версии, которые не подошли, и почему (выводы, без текста):
- Версия про «экономию времени»: слишком общая, не про наш ЦА.
- Версия с цифрами: не вызывает доверия без источников.
Нужна версия с другой структурой: начни с кейса клиента, а не с обещания.

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

🔧 Техника: новая сессия вместо длинной переписки. Если чат уже содержит четыре неудачные попытки, перенесите краткие выводы в чистую сессию. Это следует из вывода статьи про повтор и помощь сводок, а сам приём авторы не проверяли.

🔗

Ресурсы

  • Do LLMs Learn from Rewards in Context? Rethinking the role of reward in In-Context Reinforcement Learning — Minchan Kwon, Seunghee Koh, Sunghyun Baek, Minsung Bae, Junmo Kim, KAIST (NeurIPS 2026).
  • Отсылки: Min et al. — роль меток в ICL; Reflexion (Shinn et al.); ExpeL; бенчмарки HumanEval+, MBPP+, ScienceWorld.

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

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

Парадокс: агент вроде бы учится на оценках, но модель их почти не замечает. Переверни баллы, подставь случайные числа или убери совсем — кривая улучшения почти не меняется. Эта находка позволяет понять, что класть в контекст, когда агент застрял и в третий раз чинит то же место теми же словами. Фишка: улучшение даёт сам показ прошлых попыток, а не оценки к ним. Это обычное обучение на примерах в промпте (ICL), а не обучение с подкреплением. Оценка влияет всего на ~14% от эффекта самих попыток.

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

Всё, что лежит в контексте, модель читает как образец. Форму, структуру, ход решения — всё берёт как шаблон. Провальная попытка тоже образец, и пометка «0 баллов» его почти не ослабляет. Фраза «не повторяй это» тоже мало помогает. Рычагов три: - Позиция. Попытка в конце контекста повторяется в разы чаще. - *Релевантность. Примеры из той же задачи влияют сильнее, чужие работают хуже. - Форма. Краткие выводы вместо сырых попыток (в статье это Reflexion) убирают тягу к повтору. Не показывай модели то, что не хочешь увидеть снова — покажи, что из этого следует. Это как учитель, который на доске пишет не неправильное решение, а список причин, почему оно не сработало. Копировать тут нечего.

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

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

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

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

Мини-рецепт

1. Открой чистую сессию: старые неудачные патчи в контексте тянут новые попытки в ту же сторону.
2. Сожми неудачи в выводы: одно предложение на попытку — что сделали и что узнали. Без кода и без текста попыток.
3. Раздели знание: отдельно «проверено, не причина», отдельно «не проверялось».
4. Следи за концом контекста: то, что стоит последним, модель повторяет охотнее всех. Лучший образец — одна штука и только в конце. Если ищешь новое, образец вообще не клади.
5. Задай ось различия: слой системы, аудитория, структура или тон. Иначе получишь одну идею в разных формулировках.
6. Не надейся на запреты: «не повторяй» и «это провал» работают слабо. Убирай образец из контекста, а не ругай его.

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

Примеры

[ПЛОХО] : Вот три патча, которые не сработали (весь код ниже). Все они провальные, не повторяй их. Почини вебхук ЮKassa, статус заказа остаётся pending.
[ХОРОШО] : Новая сессия. После вебхука ЮKassa (payment.succeeded) статус заказа в БД остаётся "pending". Стек: Django, Celery, PostgreSQL. Уже проверено, это НЕ причина (выводы, без кода патчей): подпись вебхука проходит; эндпоинт отвечает 200 за секунду; задача Celery видна в очереди. Не проверялось: что происходит внутри Celery-задачи; нет ли гонки между созданием заказа и приходом вебхука. Предложи 3 принципиально разные гипотезы из разных слоёв системы, для каждой — как проверить за 5 минут. Код не пиши, пока я не выберу. В плохом запросе модель видит три готовых образца и делает четвёртый такой же. В хорошем копировать нечего, зато вся информация сохранена.
Источник: Do LLMs Learn from Rewards in Context? Rethinking the role of reward in In-Context Reinforcement Learning
ArXiv ID: 2610.11152 | Сгенерировано: 2026-10-09 05:20

Проблемы LLM

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

Методы

МетодСуть
Сводка выводов вместо сырых попыток — свежий взгляд на задачуЗамени историю неудач короткой сводкой. Что пробовали: одно предложение на попытку (что сделали → что получилось). Что теперь знаем: проверенные факты и ограничения. Что не проверено. В конце попроси: "Предложи N принципиально разных подходов, отличающихся по {оси}". Ось: слой системы, аудитория, структура, тон. Почему работает: в сводке нет готового текста для копирования. Информация сохранена, образца нет. Модель свободна искать новое решение. Когда применять: поиск нового решения, отладка, после 2–3 неудач подряд. Когда не нужно: если надо воспроизвести удачный образец (формат отчёта, стиль). Там копирование помогает
📖 Простыми словами

DoLLMsLearn from Rewards in Context? : Rethinking the role of reward in In-Context Reinforcement Learning

arXiv: 2610.11152

Модели не умеют учиться на ошибках на лету, вопреки сказкам про in-context reinforcement learning. Если ты скармливаешь сетке прошлую попытку с припиской «ноль из десяти, так не делай», она кладёт на твою оценку болт. LLM фундаментально заточена подражать тексту в контексте, а не делать глубокие выводы из штрафов. Любой косяк в истории чата она считывает просто как готовый шаблон для продолжения.

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

Исследование разносит в щепки популярный миф: модель меняет ответы просто от перебора вариантов, а награды и баллы значат ноль. Твой строгий фидбек не работает как стоп-сигнал. Вместо иллюзорной дрессировки внутри промпта работает классический In-Context Learning через правильные примеры. Реально спасает не критика, а полная чистка контекста: вместо простыни из трёх тупиковых попыток покажи один внятный разбор задачи.

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

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

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

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

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