3,583 papers
arXiv:2601.18510 74 26 янв. 2026 г. FREE

JitRL: обучение AI-агента через память опыта без обновления весов

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

TL;DR

JitRL (Just-In-Time Reinforcement Learning) — метод, который позволяет LLM учиться на своих прошлых попытках без технического обучения модели. Система ведёт журнал опыта: сохраняет каждую ситуацию, действие и результат в виде компактных записей (состояние, действие, оценка). Когда возникает новая задача, модель ищет в памяти похожие прошлые случаи и оценивает какие действия тогда сработали лучше. На основе этой оценки система корректирует вероятности выбора действий — повышает шансы успешных вариантов и снижает неудачных.

Обычное обучение LLM (reinforcement learning) работает через gradient updates — математически пересчитывает миллионы параметров модели, что требует GPU-кластеров, дней вычислений и стоит тысячи долларов. В результате получается статичная модель, которая не адаптируется к новым ситуациям после развёртывания. Альтернатива — in-context learning (запихнуть всю историю в контекст) — упирается в длину контекста: при 50+ попытках диалог превращается в римский свиток, модель теряет фокус. JitRL обходит обе проблемы: не трогает веса модели (нет затрат на обучение), но использует полноценное обучение с подкреплением (не ограничен текстовыми описаниями).

Метод работает в три шага: (1) Memory Construction — после каждой попытки LLM-оценщик анализирует траекторию и выставляет пошаговые награды, которые сворачиваются в оценку долгосрочной ценности действия; (2) Value Estimation — при новой задаче система извлекает топ-k похожих случаев из памяти и вычисляет среднюю ценность состояния V(s) и каждого действия Q(s,a); (3) Policy Update — вычисляет преимущество A(s,a) = Q(s,a) - V(s) и напрямую корректирует выходные логиты модели по формуле z' = z + β·A. Авторы математически доказали, что это точное решение задачи оптимизации политики с KL-ограничением.


🔬

Схема метода

ЦИКЛ НА КАЖДУЮ ПОПЫТКУ:

┌─ INFERENCE (выбор действия) ─────────────────────────┐
│ 1. Abstraction: текущая ситуация → структурированное  │
│    состояние s (убрать шум, оставить суть)            │
│                                                        │
│ 2. Retrieval: найти top-k похожих (s_i, a_i, G_i)     │
│    из памяти M                                         │
│                                                        │
│ 3. Value Estimation:                                   │
│    V(s) = средняя оценка G по всем похожим состояниям  │
│    Q(s,a) = средняя оценка G для конкретного действия  │
│    A(s,a) = Q(s,a) - V(s)   [насколько действие лучше] │
│                                                        │
│ 4. Logit Update: z'(s,a) = z(s,a) + β·A(s,a)          │
│    [повысить вероятность успешных действий]            │
│                                                        │
│ 5. Выполнить выбранное действие → получить результат  │
└────────────────────────────────────────────────────────┘

┌─ MEMORY UPDATE (после завершения эпизода) ───────────┐
│ 1. LLM-Evaluator анализирует траекторию:              │
│    τ = (s₁, a₁, ..., sₜ, aₜ)                          │
│                                                        │
│ 2. Выставляет награды для каждого шага: r₁, r₂, ...   │
│    (оценка вклада конкретного действия в успех)       │
│                                                        │
│ 3. Вычисляет дисконтированную ценность:               │
│    Gₜ = rₜ + γ·rₜ₊₁ + γ²·rₜ₊₂ + ...                   │
│                                                        │
│ 4. Сохраняет в память M: (sₜ, aₜ, Gₜ) для всех шагов  │
└────────────────────────────────────────────────────────┘

Повтор → с каждой попыткой память растёт, оценки точнее

🚀

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

Задача: Ты продаёшь товары на Ozon и учишься писать продающие описания. Каждый день тестируешь новые формулировки для карточек мебели, отслеживаешь конверсию в покупку и хочешь понять какой стиль текста работает лучше.

Промпт (симуляция принципа JitRL вручную):

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

ПАМЯТЬ ОПЫТА (прошлые попытки):
---
[Ситуация 1] Товар: письменный стол 120×60 см, ДСП, белый
Подход: "Стильный письменный стол белого цвета. Размеры 120×60 см..."
Конверсия: 2.1%
Оценка: средне (-0.3 от базовой 2.4%)

[Ситуация 2] Товар: компьютерный стол с полками, металл+дерево
Подход: "Для тех кто работает дома: стол-трансформер вместит два монитора, 
системник, документы. Полки регулируются по высоте — ставь как удобно..."
Конверсия: 4.8%
Оценка: отлично (+2.3 от базовой 2.5%)

[Ситуация 3] Товар: журнальный столик круглый, стекло
Подход: "Элегантный столик из закалённого стекла и металла..."
Конверсия: 1.9%
Оценка: плохо (-0.7 от базовой 2.6%)
---

НОВАЯ ЗАДАЧА:
Товар: рабочий стол угловой, венге, с выдвижной полкой для клавиатуры
Целевая аудитория: удалёнщики в однушках

ТВОИ ДЕЙСТВИЯ:
1. Найди похожие ситуации из памяти (по типу товара, аудитории)
2. Оцени какие подходы там работали: V(ситуация) и Q(ситуация, подход)
3. Вычисли A(подход) = насколько лучше среднего
4. Предложи 3 варианта текста с оценкой вероятности успеха для каждого
5. Объясни почему рекомендуешь конкретный вариант на основе прошлого опыта

Формат ответа:
- Релевантные кейсы: [какие ситуации похожи]
- Паттерн успеха: [что работало в похожих случаях]
- Варианты текста с оценками:
  → Вариант А (вероятность +X%): [текст]
  → Вариант Б (вероятность +Y%): [текст]  
  → Вариант В (вероятность +Z%): [текст]
- Рекомендация: [какой вариант и почему]

Результат:

Модель проанализирует паттерны из памяти: Ситуация 2 (компьютерный стол для работы дома) показала отличную конверсию благодаря конкретике про use-case и функциональным деталям. Ситуация 1 и 3 с общими описаниями провалились. На основе этого модель присвоит высокую оценку A(подход) варианту в стиле Ситуации 2 и предложит текст: "Угловой стол для однушки: экономит метр стены, влезет ноут + монитор + лампа. Полка для клавиатуры выезжает — колени не упираются. Венге не маркий..." с объяснением что этот паттерн в прошлом дал +2.3% конверсии. Другие варианты получат оценки ниже с указанием рисков на основе провальных кейсов.


🧠

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

LLM плохо учится в рантайме потому что веса модели заморожены после обучения. Каждый новый диалог начинается с чистого листа — модель не помнит что работало вчера. Gradient-based обучение (классический RL) решает это, но требует пересчёта миллиардов параметров GPU-кластером. На практике это означает: остановить сервис, собрать данные, запустить обучение на сутки, задеплоить новую версию. Для продакшена это мёртвый номер.

LLM отлично умеет находить паттерны в данных и оценивать вероятности при наличии контекста. JitRL использует эту силу через non-parametric память: вместо изменения весов система хранит сырые факты (ситуация X + действие Y = результат Z) и ищет похожие кейсы on-the-fly. Это как опытный менеджер, который не переучивается каждый раз, а вспоминает: "В прошлом месяце с похожим клиентом сработал подход А, попробую его".

Ключевая магия — advantage function A(s,a). Вместо абсолютной оценки действия ("это хорошо на 7 из 10") метод вычисляет относительное преимущество: насколько действие лучше среднего в данной ситуации. Если в похожих случаях среднее V(s)=3.2, а конкретное действие давало Q(s,a)=4.8, то A=+1.6 — это сигнал повысить вероятность. Математически доказано что прямая корректировка логитов z'=z+β·A — точное решение KL-constrained policy optimization. Система не ломает базовую модель (KL-constraint сохраняет языковые способности), но сдвигает распределение к успешным действиям.

Рычаги управления: - β (температура): сила корректировки. β=1.0 — агрессивно доверяем памяти, β=0.1 — осторожно. Уменьши для незнакомых доменов. - k (топ похожих): сколько кейсов учитывать. k=5 — фокус на самых близких, k=20 — шире контекст но больше шума. - γ (discount factor): вес будущих наград. γ=0.9 — долгосрочное мышление, γ=0.5 — фокус на немедленный результат. - Evaluator prompt: как LLM оценивает шаги. Можешь дать конкретные критерии (speed, accuracy, user satisfaction) вместо общей оценки.


📋

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

Для читателя: Полная система JitRL требует API-доступа к logits и коду. Но принцип можно симулировать вручную через структурированный промпт:

Ты работаешь в режиме обучения через память опыта.

═══ ПАМЯТЬ ═══
{вставить прошлые попытки в формате:
[Кейс N] Ситуация: {описание}
Действие: {что сделал}
Результат: {что получилось}
Оценка: {успех/провал, числовая метрика если есть}
}

═══ ТЕКУЩАЯ ЗАДАЧА ═══
Ситуация: {описание новой задачи}

═══ ПРОЦЕСС РЕШЕНИЯ ═══
Шаг 1 — Поиск похожих:
Найди в памяти 3-5 кейсов максимально похожих на текущую ситуацию.
Критерии сходства: {тип задачи / контекст / цель / ограничения}

Шаг 2 — Анализ паттернов:
Для каждого найденного кейса:
- Какой подход использовался?
- Какой был результат?
- Что это говорит про текущую ситуацию?

Вычисли среднюю успешность V(ситуация) = средняя оценка по похожим кейсам

Шаг 3 — Оценка вариантов:
Предложи {N} вариантов действий.
Для каждого:
- Q(вариант) = ожидаемая успешность на основе похожих прецедентов
- A(вариант) = Q - V  [насколько лучше среднего]
- Вероятность успеха: {процент}
- Обоснование: {почему такая оценка}

Шаг 4 — Рекомендация:
Выбери вариант с максимальным A(вариант).
Объясни выбор через конкретные кейсы из памяти.

═══ ФОРМАТ ОТВЕТА ═══
**Релевантные кейсы:** [номера и краткое сходство]

**Базовая линия:** V = {средняя оценка}

**Варианты:**
→ Вариант 1 [A = +X.X]: {описание}
  Обоснование: {на основе кейса N...}
  Риски: {что может пойти не так}

→ Вариант 2 [A = +Y.Y]: {описание}
  ...

**Рекомендация:** {вариант} потому что {объяснение через данные}

═══ ПОСЛЕ ВЫПОЛНЕНИЯ ═══
Когда получишь результат, добавь в ПАМЯТЬ:
[Кейс {N+1}] Ситуация: {текущая}
Действие: {что выбрал}
Результат: {что случилось}
Оценка: {объективная метрика}

Это обновит базу для следующих задач.

Пояснения: - {вставить прошлые попытки} — твой журнал задач: ситуация → действие → результат. Начни с 3-5 записей, добавляй новые после каждой попытки. - {N} — сколько вариантов генерить. 3 для быстрого выбора, 5-7 для важных решений. - {критерии сходства} — что делает ситуации похожими в твоём домене. Для текстов: тема+аудитория. Для переговоров: тип клиента+запрос. Для кода: язык+паттерн.

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

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

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

LLM спросит: (1) какие прошлые попытки у тебя есть (нужны для заполнения ПАМЯТЬ), (2) какая текущая задача (заполнить ТЕКУЩАЯ ЗАДАЧА), (3) какие критерии сходства важны в твоём домене (для поиска релевантных кейсов), (4) как измерять успех (чтобы вычислить V и Q). Эти данные нужны потому что система обучается на конкретных примерах — без прецедентов нет паттернов для анализа. Модель возьмёт структуру из шаблона и настроит под твой контекст.


⚠️

Ограничения

⚠️ Холодный старт: В первых 5-10 попытках система слабее базовой модели — памяти недостаточно для надёжных оценок. Метод начинает обгонять статичный подход после накопления опыта.

⚠️ Качество абстракции: Если состояния описаны слишком специфично ("задача #4352") — система не найдёт похожих кейсов. Слишком обобщённо ("что-то про текст") — найдёт нерелевантное. Нужна структурированная абстракция: выделять суть задачи, игнорируя шум.

⚠️ Требует стабильных метрик: Метод опирается на числовые оценки результатов. Для субъективных задач ("креативный текст") сложно выставлять награды — LLM-Evaluator может быть непоследователен. Лучше работает where результат измерим: конверсия, скорость, точность.

⚠️ API logits недоступны в чатах: Полная система JitRL корректирует выходные логиты z'=z+β·A, что требует API-доступа (не ChatGPT/Claude интерфейс). В чатах можно симулировать принцип через промпты (см. шаблон выше), но это не идентичная реализация.

⚠️ Рост памяти: После 100+ эпизодов retrieval замедляется. Исследователи используют vector search (embeddings + approximate nearest neighbors), что требует кода. Вручную можно периодически чистить память — оставлять только top-performing кейсы.


🔗

Ресурсы

Just-In-Time Reinforcement Learning: Continual Learning in LLM Agents Without Gradient Updates — Yibo Li, Zijie Lin, Ailin Deng, Xuan Zhang, Yufei He, Shuo Ji, Tri Cao, Bryan Hooi (National University of Singapore) | https://github.com/liushiliushi/JitRL | Тестировали на бенчмарках WebArena (навигация по вебсайтам) и Jericho (текстовые игры)


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

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

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

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

Три шага вместо переобучения. Сначала сохраняй каждую попытку: описание ситуации, что сделал, что получил (числовая оценка результата). Потом ищи паттерны: когда возникает новая задача, модель находит 5-10 похожих прошлых случаев и вычисляет среднюю ценность V(ситуация) и ценность конкретного действия Q(действие). Наконец корректируй на лету: преимущество A = Q − V показывает насколько действие лучше среднего — система напрямую повышает вероятность успешных вариантов через формулу z′ = z + β·A, где β — сила доверия к памяти.

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

Gradient-based обучение требует пересчитать миллиарды параметров на GPU-кластере — сутки работы, тысячи долларов, остановка сервиса. JitRL обходит это через non-parametric память: вместо изменения весов модель хранит сырые факты (ситуация X + действие Y = результат Z) и ищет похожие на лету. Ключевая механика — advantage function A(s,a): она измеряет не абсолютную ценность действия ("это хорошо на 7 из 10"), а относительное преимущество над средним в данной ситуации. Если в похожих случаях среднее V=3.2, а конкретное действие давало Q=4.8, то A=+1.6 — модель повышает вероятность этого варианта. Математически доказано что прямая корректировка логитов — точное решение KL-constrained policy optimization (сохраняет языковые способности, но сдвигает распределение к успешным действиям).

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

Повторяющиеся задачи где результат измерим → конкретно для тестирования подходов (креативы, email-темы, продающие тексты, переговорные тактики), особенно когда нужно адаптироваться к специфике домена без переобучения модели. НЕ подходит для разовых креативных задач — метод требует 10+ попыток для накопления значимой памяти.

Мини-рецепт

1. Структурируй память опыта: После каждой попытки записывай (Ситуация: <описание задачи>, Действие: <что сделал>, Результат: <метрика успеха 0-10 или процент>). Начни с 5-10 прошлых кейсов если есть.

2. Научи модель искать паттерны: В промпте для новой задачи добавь блок ПАМЯТЬ с прошлыми записями, попроси найти 3-5 максимально похожих по критериям (тип задачи/аудитория/контекст), вычислить V (средняя оценка похожих) и Q (оценка для каждого варианта действия).

3. Генерируй варианты с преимуществом: Попроси модель предложить 3-5 вариантов действий, для каждого вычислить A=Q−V (насколько лучше среднего) и обосновать через конкретные кейсы из памяти. Выбери вариант с максимальным A.

4. Обновляй базу: После выполнения добавь новую запись (Ситуация, Действие, Результат) в ПАМЯТЬ — следующий запрос будет умнее.

Примеры

[ПЛОХО] : Напиши тему письма для рассылки про скидку
[ХОРОШО] : ПАМЯТЬ: [Кейс 1] Тема "Скидка 20%..." → открытий 12%. [Кейс 2] Тема "Только для вас: новинки + промокод" → 24.7%. ЗАДАЧА: скидка 15% для постоянных клиентов. Найди похожее, вычисли V (средний %), предложи 3 темы с оценкой A=Q−V, объясни выбор через данные из памяти.
Источник: Just-In-Time Reinforcement Learning: Continual Learning in LLM Agents Without Gradient Updates
ArXiv ID: 2601.18510 | Сгенерировано: 2026-01-27 06:33

Методы

МетодСуть
Журнал опыта с числовыми оценкамиВеди таблицу прошлых попыток: ситуация (суть задачи без шума), действие (что сделал), результат (конкретная метрика). Когда возникает новая задача — найди 3-5 похожих записей. Попроси модель вычислить среднюю успешность ситуации V и успешность каждого варианта действия Q. Выбирай действие с максимальным преимуществом A = Q - V. Почему работает: Модель видит конкретные прецеденты вместо абстрактных инструкций. Числовые метрики создают чёткий сигнал что работало лучше. Относительная оценка (лучше среднего на X) точнее абсолютной (хорошо на 7/10). Когда применять: есть повторяющиеся задачи одного типа, результат измеряется числом (конверсия, скорость, точность), можешь накопить 10+ примеров. Когда не работает: разовые креативные задачи, субъективные оценки без метрик, нет времени вести журнал
📖 Простыми словами

Just-In-Time Reinforcement Learning: Continual Learning inLLMAgents Without Gradient Updates

arXiv: 2601.18510

LLM-агенты обычно работают как рыбки с памятью в три секунды: каждый новый запрос для них — это чистый лист, даже если минуту назад они совершили ту же ошибку. Проблема в том, что нейронки «заморожены» после обучения, а переучивать их через градиентный спуск — это долго, дорого и требует мощностей целого дата-центра. Метод JitRL (Just-In-Time Reinforcement Learning) меняет правила игры, позволяя модели учиться на лету, вообще не трогая её внутренние настройки и веса.

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

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

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

Короче, хватит ждать, пока OpenAI или Google выкатят новую версию модели с исправленными багами — можно заставить текущую LLM умнеть самостоятельно. JitRL превращает статичный алгоритм в живую систему, которая помнит свои косяки и не повторяет их. Это дешево, быстро и, главное, работает прямо сейчас, избавляя от необходимости гонять GPU-кластеры ради каждой мелочи. Кто внедрит динамический опыт вместо статики, тот и выживет в этой гонке.

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

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

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