3,583 papers
arXiv:2602.21053 74 24 фев. 2026 г. FREE

OCR-Agent: Структурированная само-коррекция с памятью предыдущих попыток

КЛЮЧЕВАЯ СУТЬ
Просишь модель улучшить текст второй раз — она предлагает то же самое. Третий раз — снова то же. Это не лень и не баг: у неё просто нет механизма «что я уже пробовала и что не сработало». OCR-Agent решает проблему итеративной доработки, при которой каждый новый раунд правок реально идёт вперёд, а не повторяет предыдущий. Фишка: два запрета в каждом раунде — не предлагай то, что уже пробовали, и не предлагай то, чего нельзя сделать с имеющимся текстом прямо сейчас. Вместо «добавьте данные» и «привлеките эксперта» модель вынуждена искать решения внутри реальных возможностей — и находит их.
Адаптировать под запрос

TL;DR

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

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

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


🔬

Схема метода

Один цикл (повторяется 2-3 раза, каждый раз в отдельном запросе):

ВХОД: {задача} + {предыдущий ответ} + {история рефлексий}

ШАГ 1 — Рефлексия с ограничениями (отдельный запрос):
  → Найди конкретные ошибки в предыдущем ответе
  → Предложи план правок — ТОЛЬКО из того, что можно
     сделать с имеющимся текстом прямо сейчас
  → Добавь эту рефлексию в историю
  ВЫХОД: план_правок + обновлённая_история_рефлексий

ШАГ 2 — Улучшение с памятью (отдельный запрос):
  → Перепиши ответ по плану правок
  → Используй полную историю рефлексий — не повторяй старые ошибки
  ВЫХОД: улучшенный_ответ

→ Повтори цикл 2-3 раза

Итого: 4-6 запросов к модели (по 2 на каждый раунд), история рефлексий — копируешь вручную между запросами.


🚀

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

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


Промпт раунда 1, шаг 1 — Рефлексия:

Вот описание телеграм-канала, которое нужно улучшить:

---
[предыдущий ответ модели]
---

Задача: описание для каталога Telegram, чтобы привлечь подписчиков, 
которые хотят реально зарабатывать на бирже, а не читать новости.

Проанализируй текст. Найди конкретные слабые места — 
что именно мешает читателю понять ценность канала.

Важно: предлагай ТОЛЬКО те правки, которые можно сделать 
прямо сейчас с имеющимся текстом. Не предлагай:
- "добавить отзывы подписчиков" (их нет)
- "указать конкретные результаты" (данных нет)
- "улучшить визуал" (это текст, не картинка)

Сформулируй конкретный план правок из того, 
что реально изменить в самом тексте.

Промпт раунда 1, шаг 2 — Улучшение:

Вот план правок:
[вставить вывод из шага 1]

Перепиши описание канала по этому плану. 
Не повторяй формулировки из предыдущей версии.

Промпт раунда 2, шаг 1 — Рефлексия с памятью:

Вот текущая версия описания:
[вставить результат раунда 1]

История предыдущих попыток улучшения:
[вставить рефлексию из раунда 1]

Проанализируй. Что ещё не работает? 
Предлагай ТОЛЬКО правки из имеющегося текста — 
не предлагай то, что уже пробовали в предыдущей рефлексии.

Результат:

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


🧠

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

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

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

Рычаги управления: - Количество раундов — 2-3 оптимально; для простых задач достаточно 1; больше 3 — убывающая отдача - Список запрещённых предложений в блоке "Не предлагай" — чем конкретнее, тем точнее рефлексия - Детализация истории — можно давать краткое резюме прошлых рефлексий вместо полного текста, если промпт разрастается - Условие остановки — добавь "если текст уже хорош, объясни почему дальнейшие правки не нужны", чтобы избежать правок ради правок


📋

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

Шаблон рефлексии (повторяется каждый раунд):

Вот {тип_задачи}, которую нужно улучшить:

---
{текущий_вариант}
---

Цель: {что должен делать результат / для кого / зачем}.

История предыдущих попыток улучшения:
{история_рефлексий}
(если это первый раунд — напиши "Первая попытка, истории нет")

Найди конкретные слабые места в текущем варианте.
Предложи план правок — ТОЛЬКО из того, что можно изменить 
в самом тексте прямо сейчас. Не предлагай:
- получить дополнительные данные или материалы
- привлечь людей или внешние инструменты
- то, что уже пробовалось в истории выше

Сформулируй 3-5 конкретных правок.

Шаблон улучшения:

Вот план правок:
{план_из_рефлексии}

Полная история предыдущих рефлексий:
{история_рефлексий}

Перепиши {тип_задачи}, применяя план правок.
Не повторяй подходы из истории рефлексий.
Не сохраняй формулировки из предыдущего варианта там, 
где план требует изменений.

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


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

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

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

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


⚠️

Ограничения

⚠️ Ручная работа между раундами: История рефлексий не копируется автоматически — нужно вставлять вывод каждого шага рефлексии в следующий запрос. Для 3 раундов это 6 запросов и 2-3 ручных копирования.

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

⚠️ Зависимость от базовой компетентности модели: Если модель изначально не понимает задачу или не имеет нужных знаний, рефлексия не поможет — она будет "улучшать" неправильный ответ. Метод усиливает хорошее, но не исправляет фундаментальное непонимание.

⚠️ Убывающая отдача после 3 раундов: Исследование показывает, что большинство улучшений происходит в первые 2-3 раунда — дальнейшие итерации дают незначительный прирост.


🔗

Ресурсы

Статья: OCR-Agent: Agentic OCR with Capability and Memory Reflection

Код: github.com/AIGeeksGroup/OCR-Agent

Бенчмарк: OCRBench v2

Авторы: Shimin Wen, Zeyu Zhang, Xingdou Bian, Hongjie Zhu, Lulu He, Layi Shama, Daji Ergu, Ying Cai

Организации: Southwest Minzu University, AI Geeks


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

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

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

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

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

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

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

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

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

Мини-рецепт

1. Составь запрет-список: перед первым раундом выпиши, что модель не может предложить — нет дополнительных данных, нет доступа к внешним людям, нет возможности изменить исходник. Чем конкретнее — тем точнее рефлексия.

2. Раунд, шаг 1 — Рефлексия: дай текущий вариант + цель + запрет-список + историю прошлых рефлексий (в первом раунде пишешь «первая попытка, истории нет»). Попроси 3-5 конкретных правок из того, что реально можно изменить в тексте прямо сейчас.

3. Раунд, шаг 2 — Улучшение: передай план правок из шага 1 + полную историю всех рефлексий. Попроси переписать, не повторяя подходы из истории и не сохраняя старые формулировки там, где план требует изменений.

4. Повтори 2-3 раза: копируй вывод каждой рефлексии в историю следующего раунда. После 3 раундов отдача резко падает — дальше не стоит.

5. Добавь условие остановки: в промпт рефлексии вставь «если текст уже хорош — объясни почему дальнейшие правки не нужны». Иначе модель будет улучшать ради улучшения.

Примеры

[ПЛОХО] : Это описание телеграм-канала слишком общее. Улучши его.
[ХОРОШО] : Вот описание телеграм-канала про инвестиции: [текст] Цель: привлечь тех, кто хочет зарабатывать на бирже, а не читать новости. История предыдущих попыток улучшения: первая попытка, истории нет. Найди конкретные слабые места. Предложи план правок — ТОЛЬКО из того, что можно изменить в самом тексте прямо сейчас. Не предлагай: добавить отзывы подписчиков, указать реальные результаты сделок, улучшить обложку канала. Сформулируй 3-5 конкретных правок. После шага 1 — передаёшь план в шаг 2 с запросом переписать. В раунде 2 добавляешь вывод первой рефлексии в поле истории — и модель не повторяет «добавь конкретику», а ищет другой подход: меняет структуру, угол подачи, первое предложение.
Источник: OCR-Agent: Agentic OCR with Capability and Memory Reflection
ArXiv ID: 2602.21053 | Сгенерировано: 2026-02-25 05:25

Проблемы LLM

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

Методы

МетодСуть
Двухшаговый цикл улучшения с памятьюКаждый раунд правки — два отдельных запроса. Шаг 1 — диагностика: "найди слабые места и предложи план правок — ТОЛЬКО из того, что можно изменить в самом тексте прямо сейчас". Шаг 2 — улучшение: "перепиши по плану, используй полную историю рефлексий, не повторяй старые подходы". История рефлексий — копируешь вывод шага 1 в следующий запрос вручную. Синтаксис: добавь блок История предыдущих попыток: {история} в каждый запрос на диагностику. Почему работает: диагностика и правка — разные задачи с разным контекстом. Разделение помогает модели сфокусироваться. История блокирует повторение тупиков. Оптимально: 2-3 раунда. После трёх — отдача падает. Не работает: если задача решается с первого раза, если модель не понимает задачу изначально

Тезисы

ТезисКомментарий
Явный список запретов переключает модель с удобного на возможноеБез запретов модель предлагает что выглядит разумно — "добавьте данные", "привлеките эксперта". С явным запретом ("не предлагай то, чего нет в тексте") она вынуждена искать решения внутри реальных ограничений. Механика: модель оптимизирует под критерии запроса. Добавь критерий "только выполнимое" — она переключится. Применяй: в любом запросе на план правок добавляй блок "Не предлагай: X, Y, Z" — чем конкретнее список, тем точнее диагностика
📖 Простыми словами

OCR-Agent: Agentic OCR with Capability and Memory Reflection

arXiv: 2602.21053

Суть проблемы в том, что современные нейронки при попытке исправить свою ошибку ведут себя как зацикленный робот-пылесос. Когда ты просишь модель «сделать лучше», она либо выдает ту же самую фигню в профиль, либо начинает советовать вещи, которые сама выполнить не в состоянии — вроде «нужно нанять эксперта» или «дайте фото получше». OCR-Agent ломает этот тупик, внедряя в процесс рефлексию возможностей и памяти, заставляя ИИ осознавать свои границы и не наступать на одни и те же грабли дважды.

Это как если бы ты учил друга готовить борщ, а он раз за разом пересаливал его, забывая, что уже бахнул соли минуту назад. Обычный ИИ — это повар с амнезией: он каждый раз смотрит на кастрюлю как впервые. OCR-Agent же дает ему блокнот, где записано: «соль уже клал, не помогло, попробуй добавить сахар». Вместо того чтобы тупо повторять действие, модель анализирует историю правок и выбирает новый путь, не выходя за рамки своих реальных инструментов.

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

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

Короче, хватит надеяться, что нейронка сама поймет, что она лажает — ей нужно ткнуть носом в её же прошлые ответы и запретить давать бесполезные советы. OCR-Agent доказывает, что 2-3 цикла с четкой памятью дают результат в разы круче, чем десять попыток «с чистого листа». Кто научит свои промпты запоминать ошибки, тот получит вменяемый результат с первого раза, а остальные будут бесконечно нажимать кнопку «regenerate» в надежде на чудо.

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

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

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