3,583 papers
arXiv:2610.33245 78 23 окт. 2026 г. FREE

AdaPRA: агент-ревизор проверяет работу кодового агента по рубрикам, запуская код, а не читая его отчёты

КЛЮЧЕВАЯ СУТЬ
Агент пишет «всё готово», файл валидный, в логе ни одной ошибки. А неверный путь превратил все 158 тысяч аудиозаписей в тишину, и модель на каждую отвечает «неизвестно». Метод AdaPRA позволяет ловить такие молчаливые ошибки в работе кодового агента, пока проект ещё не сдан. Фишка: ревизор не читает отчёты агента, а сам пишет код и проверяет файлы. Он пересчитывает метрики, сравнивает разброс прогнозов, ищет утечки. Агенту он показывает только важные и проваленные пункты. Результат на Kaggle: процентиль с 44,5 до 69,0 на простых задачах и с 21,3 до 36,1 на сложных.
Адаптировать под запрос
⚡

TL;DR

AdaPRA — это связка из двух агентов. Первый пишет код и делает ML-проект. Второй, ревизор (process reward agent, PRA), каждые несколько шагов заглядывает в папку проекта и проверяет работу по списку критериев (рубрик). Проверяет не на слово: он сам пишет и запускает код, пересчитывает метрики и смотрит файлы. Провалившиеся и важные для текущего этапа критерии ревизор вставляет рабочему агенту прямо в поток сообщений. Попутно папка проекта сохраняется между попытками, а список критериев пополняется под конкретную задачу.

Главная боль: ошибки молчаливые. Агент отчитывается «всё готово», файл с результатом валидный, в логе ни одной ошибки. На деле неверный путь к файлам превратил все 158 тысяч аудиозаписей в тишину, и модель на каждую отвечает «неизвестно». Другие частые проблемы: агент останавливается на первом рабочем решении и не пробует модели посильнее, а валидация «протекает». Судья, который читает только историю действий, этого не видит: там агент пишет о своих намерениях, а не о реальном состоянии файлов. Поэтому ревизору нужен доступ к самим файлам и возможность запускать проверки.

Метод в четыре хода. Критерии добывают из логов прошлых запусков, сравнивая лучшие попытки с худшими. Ревизор проверяет работу кодом. Агенту показывают только провалившиеся важные пункты. Критерии дописывают под задачу по ходу работы. Итог: средний процентиль на Kaggle вырос с 44,5 до 69,0 на простых задачах и с 21,3 до 36,1 на сложных, причём часть прироста даёт сам сохраняемый между попытками проект.

🔬

Схема метода

ПОДГОТОВКА (один раз, офлайн)
  Логи + папки прошлых запусков → ЛУЧШИЕ и ХУДШИЕ попытки одной задачи
  ШАГ A: LLM вытаскивает «что сработало / что подвело» + цитаты-доказательства
  ШАГ B: LLM сводит всё в набор рубрик без пересечений (MECE) → ~19 рубрик

РАБОТА (на каждой попытке)
  Рабочий агент пишет код ──каждые c шагов и перед финишем──▶
  РЕВИЗОР (отдельный агент, папка агента — только чтение):
    1. Читает историю и файлы выборочно (не всё в контекст)
    2. По каждой рубрике: пишет и запускает свою проверку
    3. Ставит: p (выполнено?), i (важно сейчас?), обоснование, что делать
    4. Фильтр: показать только i ≥ 0,5 И p < 0,6
    5. Короткий отчёт ─▶ прямо в поток сообщений агента
    6. Добавляет / обновляет / снимает рубрики под эту задачу
  Между попытками: папка проекта и сводки прошлых попыток сохраняются

Шаги выполняются в отдельных запусках: рабочий агент и ревизор — разные агенты.

🚀

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

Задача: Вы аналитик у продавца на Wildberries. Claude Code строит модель прогноза спроса на 2 недели по SKU. Агент отчитался: «MAPE 9%, модель готова, прогноз выгружен в forecast.csv». Слишком красиво. Хочется поручить второй сессии проверить работу не по отчёту, а по файлам.

Промпт (для второго агента-ревизора с доступом на чтение к папке проекта и терминалом):


Ты ревизор работы другого агента. Папка проекта /project доступна тебе
только на чтение. Свои проверки пиши и запускай в /audit.
Не верь отчётам агента: любое его утверждение проверяй по файлам.



Агент строил прогноз продаж на 14 дней вперёд по SKU Wildberries.
Данные: /project/data/sales.csv (дата, sku, цена, остатки, продажи).
Результат: /project/forecast.csv.



R1 Целостность выгрузки: в forecast.csv все SKU, все 14 дней, нет NaN,
   разброс прогнозов не равен нулю.
R2 Честная валидация: в валидации обучающие даты строго раньше проверочных,
   нет утечки будущего (скользящие средние, остатки «на завтра»).
R3 Сравнение моделей: первая рабочая модель сравнена минимум с одним
   более сильным семейством (например, градиентный бустинг против
   простого базового прогноза).
R4 Признаки: сезонность, акции, цена, остатки действительно дошли
   до финальной модели.
R5 Происхождение результата: forecast.csv получен именно тем
   пайплайном, который описан в отчёте.
R6 Эффективность: нет повторов одной и той же упавшей команды;
   если улучшений нет несколько экспериментов подряд, сменён подход.



Для каждой рубрики:
1. Выбери, что проверить: файлы или историю действий.
2. Если проверка требует вычислений (пересчитать метрику по
   out-of-fold предсказаниям, сравнить разброс прогноза и факта),
   напиши и запусти код в /audit.
3. Выставь:
   p — вероятность, что рубрика выполнена (0–1)
   i — важность рубрики на текущем этапе работы (0–1)
   обоснование — 1–2 предложения с ссылкой на файл или число
   действие — конкретный следующий шаг для агента



- В отчёт попадают ТОЛЬКО рубрики с i ≥ 0,5 и p < 0,6.
- Порядок: по убыванию важности.
- Без похвал и пересказа того, что в порядке.
- Если провалов нет, напиши: «Критичных замечаний нет».
- Если нашёл ошибку, которой нет в рубриках, добавь новую рубрику
  в конец отчёта (название, критерий, как проверять) — только если
  успел запустить для неё проверку.

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

🧠

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

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

Сильная сторона. Модель хорошо пишет короткий код для проверки конкретного факта: пересчитать метрику, сравнить разброс, посмотреть, не одинаковы ли все предсказания. Также она хорошо сравнивает две попытки и выделяет, чем удачная отличается от неудачной.

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

Рычаги управления: - Частота ревизий (c). Чаще — раньше ловишь ошибки, но дороже. Проверка перед финишем нужна всегда. - Пороги важности и вероятности (0,5 и 0,6). Строже — меньше шума, но можно пропустить ошибку. Мягче — больше замечаний. - Список рубрик. Добавляй свои, исходя из ваших типовых ошибок. Это главный рычаг. - Куда идёт отчёт. Авторы пробовали записывать отчёт в файл — агент иногда его не открывал. Вставка прямо в диалог сработала лучше. - Запрет ревизору менять файлы. Нужен, чтобы проверка не подправляла работу молча.

📋

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


Ты ревизор работы агента по задаче: {задача}.
Папка проекта {путь} доступна только на чтение. Свои проверки пиши
и запускай в {папка_ревизора}. Не верь отчётам агента: проверяй
по файлам и результатам запуска.



{список рубрик: ID, название, критерий проверки.
Группы: валидация, выбор и сравнение моделей, подготовка данных,
целостность итогового файла, эффективность работы}



Для каждой рубрики:
1. Реши, что проверять: файлы проекта или историю действий агента.
2. Если нужны вычисления — напиши и запусти код проверки.
3. Выставь p (выполнено, 0–1), i (важность на этом этапе, 0–1),
   обоснование со ссылкой на файл или число, следующее действие для агента.



- Показывай только рубрики с i ≥ {порог_важности} и p < {порог_выполнения}.
- Порядок: по убыванию важности.
- Коротко и по делу, без пересказа того, что в порядке.
- Если нашёл новую ошибку, которой нет в списке, предложи новую рубрику,
  но только после того, как запустил для неё проверку.

Подставьте: - {задача} — что делает агент; - {путь} — папка проекта; - {список рубрик} — 5–20 критериев, которые вы видели нарушенными; - пороги — по умолчанию 0,5 и 0,6.

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

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

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

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

⚠️

Ограничения

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

⚠️ Без запуска кода хуже: Когда ревизор только читал файлы, результат падал с 69,0 до 63,0 на простых задачах и с 36,1 до 31,8 на сложных. На сложных задачах разница не прошла проверку на значимость.

⚠️ Нужен сильный ревизор: Ревизором была Claude Sonnet 4.6, а рабочим агентом — более слабая открытая модель. Слабый ревизор может сам ошибаться в проверках.

⚠️ Рубрики сделаны под data science: Список из 19 рубрик относится к ML-задачам на Kaggle (валидация, утечки, выбор моделей). Для других работ нужны другие критерии. Принцип переносится, готовый список нет.

⚠️ Шум в метриках: Медали на Kaggle — шумная метрика, и по ней картина противоречива. По медалям вариант без запуска кода на сложных задачах выглядит лучше, а по процентилю хуже. Эффект на «пробиваемость» ограничен: на сложных задачах медалей получают единицы.

⚠️ Сравнение с GPT-5.1 неполное: Одна попытка AdaPRA примерно равна одной попытке GPT-5.1, но внешние результаты взяты из другой статьи и другого запуска.

⚠️ Универсальный судья вредит: DataPRM (пошаговый судья без рубрик) на сложных задачах оказался хуже, чем вообще без супервизии. Шаг «правильный» ещё не значит, что весь процесс разумный.

🔍

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

Исследователи взяли два набора Kaggle-соревнований из DSGym: 38 простых табличных задач (Easy) и 54 сложные с изображениями, текстом, аудио и молекулами (Hard). Рабочим агентом был Qwen3-Coder-Next на 80 миллиардов параметров, ревизором — Claude Sonnet 4.6. Каждой задаче давали по 5 последовательных попыток. Оценки Kaggle ни агент, ни ревизор не видели, их использовали только для измерения.

Рубрики сначала добыли из прошлых запусков на лёгких задачах. LLM-судья нашёл в попытках 906 поведений: 564 проблемы и 342 хороших. Оставили проблемы нижней четверти и хорошее из верхней четверти, потом свели к 17 рубрикам и добавили 2 на переносимость между попытками. Эти 19 рубрик отдали без изменений на сложные задачи. Они сработали: правила, найденные на простом, помогли и на трудном.

Сравнивали шесть вариантов: стандартный DSGym, только сохраняемый проект, DataPRM, полный AdaPRA, без адаптации рубрик и без запуска кода ревизором. Одна лишь сохраняемая между попытками папка уже подняла процентиль с 44,5 до 60,8 на Easy. Ревизор добавил ещё 8,2 пункта. На Hard всё наоборот: сохранение дало 4,2, ревизор 10,6. Сложные задачи требуют контроля сильнее, чем просто памяти.

Из неожиданного. В раннем варианте ревизор отчитывался по всем рубрикам, но большинство проходило почти всегда, и агент действовал одинаково с отчётом и без. Фильтр «только важные провалы» решил проблему. Отчёт в файле агент иногда игнорировал, вставка в диалог работала лучше. Адаптация рубрик под задачу добавила 1,7 пункта на Easy и 4,3 на Hard, а ревизор почти только добавлял рубрики, снимал их практически никогда. Больше всего новых рубрик появлялось в первых двух попытках, и ими стали проверки вроде «разброс предсказаний слишком мал по сравнению с реальными значениями».

📄

Оригинал из исследования

Полные промпты ревизора и добычи рубрик лежат в приложениях (E.2, E.3), в предоставленном тексте их нет. Вот формат оценки и примеры рубрик из основного текста:

S(x, W, τ:t, ρj) = (pj, ij, ej, âj)

pj — probability of satisfaction ∈ [0,1]
ij — importance ∈ [0,1]
ej — rationale
âj — suggested next action

Показывать агенту: ij ≥ 0.5 и pj < 0.6

Пример рубрики: "compare the first valid baseline against at least one stronger model family."
Artifact-grounded: "the submission has the correct columns and row count"
Trajectory-grounded: "kept retrying the same failing command"
Добавленная ревизором: "prediction underdispersion" — проверяет, что out-of-fold предсказания не намного менее разбросаны, чем целевая переменная.

Контекст: Это формат, в котором ревизор оценивает каждую рубрику, и порог, по которому отбираются пункты для показа агенту.

💡

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

💡 Адаптация для обычного кодового агента (CLAUDE.md): Статья показывает, что отчёт лучше вставлять в диалог, чем оставлять файлом. Но два принципа можно закрепить в инструкциях и до полной системы с ревизором:

## Перед тем как сказать «готово»
1. Не пересказывай, что сделал. Для каждого пункта чек-листа ниже
   запусти проверку и покажи результат (число, вывод команды).
2. Если первое рабочее решение получено, сравни его минимум с одним
   более сильным вариантом, прежде чем останавливаться.
3. Проверь итоговый файл: размер, колонки, нет ли одинаковых значений
   во всех строках.
4. Веди NOTES.md: что пробовали, что не сработало, что осталось.
   В начале следующей сессии прочти его.

Это самостоятельная адаптация, статья этот текст не проверяла. Пункт 4 соответствует идее сохраняемой памяти между попытками.

🔧 Техника: добывать рубрики из своих логов → критерии под ваши ошибки. Если у вас накопились удачные и неудачные сессии с агентом, дайте LLM по очереди обе группы:

Вот 5 лучших и 5 худших запусков агента по одной задаче: {логи}.
Для каждого найди поведения, которые объясняют разницу результатов,
с цитатой-доказательством. Потом сведи в 10–15 непересекающихся
проверяемых критериев и пометь: можно ли проверить по файлам
или только по истории действий.

Это воспроизводит двухэтапную добычу рубрик из статьи, но в виде промпта. В статье она работала на 906 поведениях из 190 попыток, а в чате у вас будет выборка гораздо меньше.

🔗

Ресурсы

  • AdaPRA: Process Reward Agents with Adaptive Rubrics for Data Science — Atharva Naik, Vivek Chari, Pol Llado, Daniel Fried, Carolyn Rosé, Benjamin Van Durme, Sam Thomson, Justin Svegliato. Carnegie Mellon University, Microsoft. Авторы сообщают, что делятся кодом для воспроизведения.
  • Связанные работы: DSGym (Nie et al., 2026), DataPRM (Qiu et al., 2026), RubricEM (Li et al., 2026), OpenHands (Wang et al., 2025), Zhang et al. (2026b) — контрастное обнаружение рубрик.

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

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

Агент пишет «всё готово», файл валидный, в логе ни одной ошибки. А неверный путь превратил все 158 тысяч аудиозаписей в тишину, и модель на каждую отвечает «неизвестно». Метод AdaPRA позволяет ловить такие молчаливые ошибки в работе кодового агента, пока проект ещё не сдан. Фишка: ревизор не читает отчёты агента, а сам пишет код и проверяет файлы. Он пересчитывает метрики, сравнивает разброс прогнозов, ищет утечки. Агенту он показывает только важные и проваленные пункты. Результат на Kaggle: процентиль с 44,5 до 69,0 на простых задачах и с 21,3 до 36,1 на сложных.

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

Два агента работают раздельно. Первый пишет код. Второй, ревизор, каждые несколько шагов и перед финишем открывает папку проекта. Папка для него только на чтение. По каждому критерию (рубрике) ревизор ставит две оценки: p — выполнено ли, i — важно ли именно сейчас. Дальше срабатывает фильтр: в отчёт попадает только то, что важно сейчас (i ≥ 0,5) и скорее всего провалено (p < 0,6). Короткий отчёт вставляется прямо в диалог рабочего агента. Почему именно в диалог? Отчёт в файле агент иногда просто не открывал. Это как записка на двери: если её не прочитали, её нет. Критерии берутся не из головы, а из логов прошлых запусков: чем лучшие попытки отличались от худших. Их набирается около 19. По ходу задачи ревизор добавляет новые и снимает ненужные.

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

Судья, который читает только историю действий, верит словам агента. Агент пишет «проверил валидацию», и судья принимает это как факт. Самые вредные ошибки (утечка будущего, неверный путь, остановка на простой модели) в логе не видны. Там агент рассказывает о намерениях, а не о состоянии файлов. Модель при этом хорошо пишет короткий код для проверки одного факта. Например, не одинаковы ли все предсказания. Метод меняет вопрос «похоже ли, что агент всё сделал правильно» на вопрос «подтверждается ли это файлами». Запуск кода даёт заметный вклад. Когда ревизор только читал файлы, результат падал с 69,0 до 63,0 на простых задачах и с 36,1 до 31,8 на сложных. Фильтр тоже важен. Если выдать агенту полный отчёт по всем критериям, он тонет в «всё хорошо» и работает как без отчёта. Прикол: универсальный пошаговый судья без рубрик (DataPRM) на сложных задачах оказался хуже, чем вообще без проверки. Часть прироста даёт и сам проект, который сохраняется между попытками. Не всё заслуга ревизора.

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

Длинные автономные задачи кодового агента с файлами на выходе (data science, прогнозы, обучение моделей) → особенно когда агент рапортует «готово», а проверить результат нечем. Хорошо подходит, если у вас уже есть типовые ошибки: утечка в валидации, остановка на первой рабочей модели, пустой или одинаковый прогноз. НЕ подходит для коротких задач в один шаг. Слабая модель в роли ревизора тоже не годится: она сама ошибается в проверках. Готовые 19 рубрик из статьи заточены под Kaggle. Для других работ критерии придётся собрать самому.

Мини-рецепт

1. Открой вторую сессию: отдельный агент с терминалом. Папку проекта дай только на чтение.
2. Выпиши свои боли: 5-20 ошибок, которые у агента уже случались. Превратим их в рубрики, у каждой есть название и способ проверки.
3. Заставь считать, а не верить: для каждой рубрики ревизор пишет и запускает свой код в отдельной папке. Нужны ссылка на файл или число.
4. Задай две оценки: p (выполнено, 0-1) и i (важно сейчас, 0-1). Порог по умолчанию: i ≥ 0,5 и p < 0,6.
5. Режь отчёт: только проваленное и важное, по убыванию важности. Без похвал.
6. Перенеси руками: скопируй отчёт прямо в чат рабочего агента, не в файл.
7. Проверяй перед финишем: последняя ревизия обязательна. Промежуточные делай каждые несколько шагов. Чаще значит дороже.
8. Пополняй список: новую ошибку добавляй в рубрики, но только если для неё уже есть рабочая проверка.

Это упрощённая версия. В статье отчёты вставляются автоматически, в чате переносишь их сам.

Примеры

[ПЛОХО] : Проверь, всё ли хорошо в проекте с прогнозом продаж, и скажи, что думаешь
[ХОРОШО] : Ты ревизор. Папка /project только на чтение, свои проверки пиши и запускай в /audit. Не верь отчёту агента, проверяй по файлам. Рубрики: R1 в forecast.csv есть все SKU и все 14 дней, нет пустых значений, разброс прогнозов не нулевой. R2 в валидации обучающие даты строго раньше проверочных, нет утечки будущего. R3 первая рабочая модель сравнена минимум с одним более сильным семейством, например с градиентным бустингом. Для каждой рубрики напиши и запусти код проверки, поставь p (выполнено, 0-1) и i (важность сейчас, 0-1), дай обоснование со ссылкой на файл или число и следующее действие для агента. В отчёт включай только рубрики с i ≥ 0,5 и p < 0,6, по убыванию важности. Если провалов нет, напиши: Критичных замечаний нет. В чём разница. Первый запрос получит ответ «выглядит нормально». Второй заставит ревизора пересчитать метрику и открыть файл с прогнозом. Агент с «ошибкой 9%» будет пойман, если прогноз окажется одинаковым для всех SKU.
Источник: AdaPRA: Process Reward Agents with Adaptive Rubrics for Data Science
ArXiv ID: 2610.33245 | Сгенерировано: 2026-10-27 23:30

Проблемы LLM

ПроблемаСутьКак обойти
Агент пишет «всё готово», а работа сломанаАгент отчитывается об успехе. Файл результата валидный. В логе нет ошибок. На деле данные не загрузились или проверка «протекает». Проверяющая модель читает только историю действий. А там агент пишет о намерениях, не о реальном состоянии файлов. Она верит словам. Сломанная работа проходит как хорошая. Это касается любых длинных задач агента: код, данные, отчётыДай проверяющему доступ к файлам и терминалу. Пусть не читает отчёт, а проверяет результат. В запросе пиши: «Не верь отчётам агента. Любое утверждение проверяй по файлам». Запретить менять файлы нужно обязательно
Длинный отчёт по всем критериям не меняет поведение агентаПроверяющий выдаёт полный список: 20 пунктов, 17 из них «всё хорошо». Два важных замечания тонут в этом шуме. Рабочий агент действует так же, как без отчётаПоказывай только то, что провалено и важно сейчас. Подробности в методе «Фильтр отчёта» ниже

Методы

МетодСуть
Проверка кодом вместо чтения — ловит скрытые ошибкиПроверяющий сам пишет короткий код под каждый критерий и запускает его. Пересчитывает метрику. Смотрит, не одинаковы ли все предсказания. Проверяет, что в итоговом файле нет пустых значений. Папка проекта — только чтение. Свои проверки — в /audit. Почему работает: модель хорошо пишет короткий код под один конкретный факт. Вопрос «подтверждается ли это файлами» точнее вопроса «похоже ли, что всё сделано правильно». Результат кода трудно выдать за правду на слово. Когда да: любая работа агента с файлами, данными, кодом. Когда нет: результат нельзя проверить вычислением, например стиль текста. Проверяющий должен быть не слабее рабочего агента, иначе он сам ошибётся в проверках
Фильтр отчёта: две оценки на критерий — короткий отчёт только о важномДля каждого критерия проверяющий ставит две оценки от 0 до 1. p — выполнено ли. i — насколько важно на текущем этапе. В отчёт попадают только i ≥ 0,5 и p < 0,6. Порядок: по убыванию важности. Для каждого пункта: обоснование со ссылкой на файл или число и конкретное действие. Если провалов нет: «Критичных замечаний нет». Почему работает: короткий список из двух-трёх пунктов агент выполняет. Важность зависит от момента. Сравнение моделей важно в середине работы, целостность выгрузки перед финишем. Рычаги: строже пороги — меньше шума, но можно пропустить ошибку. Мягче — больше замечаний. Запускай проверку каждые несколько шагов и всегда перед финишем
Критерии из пар «лучшая и худшая попытка» — проверка по реальным ошибкамВозьми несколько попыток одной и той же задачи. Раздели на лучшие и худшие. Попроси модель: «Чем удачные отличаются от неудачных? Что сработало, что подвело? Приведи цитаты-доказательства». Потом попроси свести всё в список критериев без пересечений. Каждый критерий: название, как проверить, цитата-доказательство. Почему работает: модель хорошо сравнивает две попытки. Критерии берутся из настоящих сбоев, а не из головы. Получаются проверки вроде «агент остановился на первой рабочей модели» или «обучение и проверка перемешаны по времени». Когда да: задача повторяется, есть история попыток. Когда нет: одна разовая задача. Тогда составь 5–10 критериев из ошибок, которые уже видел. Готовый список из одной области в другую не переносится. Переносится сам приём
📖 Простыми словами

AdaPRA: Process Reward Agents with Adaptive Rubrics for Data Science

arXiv: 2610.33245

AI-агенты безбожно врут, а мы верим их красивым отчётам. Когда модель пишет код, она выдаёт победный лог: «валидация пройдена, метрика космос». Обычный LLM-судья читает эту сказку, довольно кивает и ставит зачёт, пропуская дикие утечки данных и скрытые краши. Архитектура AdaPRA ломает эту порочную практику: агент-ревизор игнорирует победные реляции и сам запускает проверочный код прямо в файлах проекта.

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

Система держится на двух механиках: модуль Process Reward Agent регулярно инспектирует рабочую папку независимыми скриптами, а механизм адаптивных рубрик гибко подстраивает чеклист под текущий этап. Главный трюк — ревизор не вываливает простыню из сотни правил, в которой модель мгновенно захлебнётся. Он скармливает рабочему агенту только проваленные критерии, заставляя переделывать конкретный косяк, а не имитировать бурную деятельность.

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

Хватит использовать нейросети как слепых судей, верящих чужим отчётам на слово. Единственная рабочая схема — жёсткий аудит артефактов руками второго агента, вооружённого интерпретатором кода. Внедряй независимый запуск проверок прямо в процесс, иначе твои помощники построят идеальный карточный домик, который развалится в первом же проде.

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

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

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