RCOT, или Reversing Chain-of-Thought, это verification-паттерн, который проверяет reasoning необычным способом: не только смотрит на полученный ответ, но и пытается восстановить исходную задачу или условия по уже сгенерированному решению. Если восстановленная версия расходится с оригиналом, значит в reasoning есть фактическая несогласованность.

В 2026 это особенно полезно для задач, где модель склонна "додумывать" условия, подменять числа или терять одно из ограничений. Обычный CoT может выглядеть гладко, но RCOT заставляет решение пройти обратную трассировку.

Техника особенно полезна против ошибок вида "модель решила уже немного другую задачу". Итог может выглядеть разумно, но в середине reasoning были незаметно изменены исходные условия.

Коротко

RCOT работает так:

  1. модель решает задачу;
  2. затем по своему решению восстанавливает исходные условия;
  3. система сравнивает восстановленную версию с оригиналом;
  4. если есть расхождения, решение пересматривается.
ПромптGPT-5
Реши задачу, а затем выполни RCOT-проверку: восстанови исходные условия по своему решению и сравни их с оригиналом.

Задача: На счёте было 8400 руб. После оплаты подписки за 1290 руб. и комиссии 3% от суммы подписки клиент пополнил счёт на 2500 руб. Сколько денег стало на счёте?
Ответ модели

Решение:

  • комиссия = 1290 x 0.03 = 38.7
  • остаток после списаний = 8400 - 1290 - 38.7 = 7071.3
  • после пополнения = 9571.3

RCOT-проверка: Восстановленные условия: старт 8400, списание 1290, комиссия 3% именно от подписки, пополнение 2500. Сравнение: условия совпадают, потери одного ограничения нет.

Ответ: 9571.3 руб.

Главная польза RCOT не в том, что модель "думает дольше", а в том, что она проверяет, не подменила ли задачу по дороге.

Почему RCOT нужен

Во многих reasoning-задачах проблема не в финальной арифметике, а в fact drift внутри цепочки:

  • модель переписывает число;
  • меняет процент;
  • игнорирует одно условие;
  • интерпретирует вопрос чуть иначе, чем он был задан.

Такие ошибки особенно неприятны, потому что они часто выглядят правдоподобно. Пользователь видит аккуратное решение и не замечает, что модель в середине рассуждения уже ушла в соседнюю задачу.

RCOT делает именно этот drift видимым.

Как работает обратная проверка

Сначала модель строит обычное reasoning. Затем ей дают задание в обратную сторону: "восстанови, какие были исходные условия, если верить твоему решению".

Если восстановленная формулировка отличается от оригинала, у вас есть точка отказа:

  • потеря условия;
  • галлюцинация лишнего ограничения;
  • замена чисел или сущностей;
  • неправильная трактовка связи между величинами.

Это делает RCOT сильнее многих грубых проверок уровня "верный ли ответ", потому что он бьёт по более раннему источнику ошибки.

Обычная проверка
Система сравнивает только финальный ответ. Если он случайно выглядит правдоподобно, скрытая подмена условий остаётся незамеченной.
RCOT
Система проверяет, можно ли из reasoning восстановить исходную задачу без искажений. Если нельзя, решение отмечается как недостоверное.

Где техника особенно полезна

RCOT лучше всего работает для:

  • word problems;
  • вычислений с несколькими условиями;
  • policy reasoning;
  • задач на даты, ставки, комиссии и проценты;
  • QA по длинным условиям, где легко потерять один фрагмент.

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

Когда обратная реконструкция особенно ценна

RCOT даёт максимум пользы там, где ошибка часто выглядит как "разумное решение не той задачи". Это типичный failure mode для word problems, policy questions и длинных условий, где модель теряет один constraint, но сохраняет гладкий reasoning style.

Практический пример:

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

Именно поэтому техника полезна не как general-purpose judge, а как узкий filter against condition drift.

Как внедрять RCOT

Чем RCOT отличается от Self-Verification

Self-Verification спрашивает: "подтверждается ли ответ обратной проверкой?"

RCOT спрашивает более узко и жёстко: "не изменилась ли сама исходная задача в твоём reasoning?"

То есть Self-Verification чаще проверяет согласованность ответа, а RCOT проверяет согласованность reasoning с входными условиями.

На практике эти техники хорошо сочетаются:

  • RCOT ловит condition drift;
  • Self-Verification проверяет, выдерживает ли кандидат обратный тест;
  • дальше можно делать rewrite или reject.

Ограничения

RCOT не идеален.

  • Если модель и в решении, и в реконструкции ошибается одинаково, проверка ослабевает.
  • Для open-ended задач нечего "восстанавливать", техника теряет смысл.
  • Нужно аккуратно сравнивать тексты: не все различия критичны, некоторые лишь перефраз.
  • Если reconstruction делать только свободным текстом, критичные mismatch-ы легко пропустить за счёт правдоподобного paraphrase.

Поэтому RCOT лучше всего работает там, где можно сравнивать структурированные факты, а не только свободный текст.

Зачем техника полезна в 2026

Сегодня многие команды используют большие контексты, сложные инструкции и agentic flows. На таком фоне локальный condition drift становится ещё дороже: ошибка в одном месте может привести к неверному tool call, расчёту или решению по policy.

RCOT хорош тем, что его можно встроить как узкий контроль качества именно на задачи с чёткими условиями. Это не универсальный judge, а практичный consistency filter.

Техническая реализация

const solution = await model(`Реши задачу:\n${task}`)

const reconstruction = await model(`
По решению ниже восстанови исходные условия задачи.
Не оценивай ответ, только реконструируй вход.

${solution}
`)

// Далее сравнение original task vs reconstruction

Практический паттерн: хранить conditions в структурированном виде. Тогда RCOT можно делать не по двум абзацам текста, а по JSON-полям вроде amount, rate, deadline, constraint.

Ещё полезно разделять mismatch по типам: number drift, entity drift, missing constraint, wrong dependency. Такая классификация быстро показывает, какой именно reasoning failure mode чаще всего даёт модель.

Проверьте себя

1. Какую ошибку RCOT ловит особенно хорошо?

2. Что делает RCOT после получения решения?

3. Когда RCOT уместнее всего?