Self-reflection у агентов: когда цикл самооценки окупается
Один прогон LLM или цикл, где агент проверяет и переделывает свой ответ. Reflexion давал прирост в разы на бенчмарках, но платите вы токенами и задержкой. Разбираем, где это оправдано.

Агент решает задачу за один прогон модели или в цикле: сделал — проверил — переделал. Второй подход называют self-reflection, и на некоторых бенчмарках он поднимает долю успешных решений с примерно 60 до 90 процентов. Но каждый круг рефлексии — это дополнительные вызовы модели, а значит больше токенов, больше денег и больше секунд ожидания. Разберём, где цикл самооценки реально окупается, а где вы просто жжёте бюджет.
Что такое self-reflection на практике
Обычный агент выглядит так: получил задачу, вызвал модель, вернул ответ. Если ответ неверный — пользователь узнаёт об этом сам. Агент с самооценкой добавляет минимум один шаг: после генерации он оценивает собственный результат, формулирует, что пошло не так, и пробует снова с учётом этой обратной связи.
Классическая формулировка идеи — работа Reflexion (Shinn и соавторы, 2023). Там агент не переобучает веса, а хранит словесные выводы о прошлых неудачах в памяти и подставляет их в следующий заход. На задачах вроде HumanEval и ALFWorld это давало заметный прирост по сравнению с одиночным прогоном.
Три источника обратной связи
Рефлексия бесполезна, если агенту не с чем сверяться. Сигнал берётся из одного из трёх источников:
- Внешний детерминированный — тесты прошли или упали, компилятор выдал ошибку, API вернул 400. Самый надёжный случай: агент точно знает, что провалился.
- Внешний нечёткий — вторая модель-критик или поиск в документации. Уже слабее: критик тоже ошибается.
- Внутренний — модель сама перечитывает свой ответ и ищет изъяны. Самый дешёвый и самый ненадёжный: LLM склонна одобрять то, что написала сама.
Практический вывод: чем более детерминированный сигнал вы можете дать агенту, тем сильнее выигрыш от цикла. Рефлексия над кодом с прогоном тестов работает предсказуемо. Рефлексия над эссе, где критерий качества — вкус, чаще всего сводится к тому, что модель косметически переписывает текст, не улучшая суть.
Цикл самооценки не делает модель умнее. Он лишь даёт ей второй шанс — и работает ровно настолько, насколько честный сигнал об ошибке вы способны в этот цикл завести.
Цена вопроса: токены, деньги, задержка
Каждый круг рефлексии — это как минимум ещё один вызов модели на генерацию и один на оценку. Если агент делает три круга, вы платите примерно вчетверо-впятеро больше токенов, чем за один прогон, потому что в контекст каждый раз добавляется предыдущая попытка и разбор ошибок.
Для интерактивного чата это критично: пользователь не будет ждать 40 секунд ради ответа. Для фоновой задачи — разбор тикетов ночью, генерация и прогон кода в CI — задержка почти ничего не стоит, зато выше итоговая точность.
| Параметр | Без цикла (single-shot) | С self-reflection (3 круга) |
|---|---|---|
| Вызовов модели на задачу | 1 | до 6 (3 генерации + 3 оценки) |
| Расход токенов | базовый | ориентировочно в 3–5 раз выше |
| Задержка ответа | минимальная | кратно выше |
| Точность на задачах с чётким критерием | средняя | заметно выше |
| Точность на задачах без объективной проверки | средняя | прирост часто минимален |
Цифры расхода токенов приблизительны и зависят от того, сколько предыдущего контекста вы тащите в каждый следующий круг. Меряйте на своей задаче, а не берите множитель на веру.
Когда цикл нужен, а когда лишний
Оправдан
- Генерация кода с тестами. Есть однозначный сигнал: тесты зелёные или нет. Агент чинит по-настоящему, а не косметически.
- Многошаговые задачи с проверяемым результатом — навигация в среде, заполнение форм, где успех измерим.
- Извлечение структурированных данных, где схему можно провалидировать: не сошлось с JSON-схемой — переделал.
- Фоновые пайплайны, где задержка не бьёт по пользователю.
Скорее лишний
- Короткие фактологические ответы. Если модель не знала факт с первого раза, второй круг чаще подтвердит ту же ошибку, чем исправит её.
- Творческие тексты без объективного критерия. Рефлексия крутит формулировки, а не качество.
- Интерактивные сценарии с жёстким лимитом задержки.
- Задачи, где нет внешнего сигнала и модель проверяет сама себя. Риск, что она уверенно одобрит неверный ответ.
Как внедрять, не разоряясь на токенах
- Сначала измерьте базу. Прогоните задачу без цикла и зафиксируйте точность и стоимость. Без этой точки отсчёта вы не поймёте, окупается ли рефлексия.
- Заведите максимально честный сигнал об ошибке. Тесты, валидатор схемы, линтер — что угодно детерминированное. Это важнее самого цикла.
- Ограничьте число кругов. Чаще всего основной прирост даёт первый повтор, а после второго-третьего кривая выходит на плато. Ставьте жёсткий лимит.
- Добавьте ранний выход. Как только сигнал говорит «успех» — останавливайтесь, не докручивайте круги ради круглого числа.
- Логируйте, что именно исправила рефлексия. Если разбор ошибок ничего не меняет по существу, цикл стоит выключить.
Отдельная ловушка — рефлексия без внешнего сигнала, когда модель сама себе судья. На простых задачах она иногда «исправляет» верный ответ на неверный, потому что вторая генерация звучит убедительнее. Если у вас нет объективной проверки, лучше вложиться в качество первого прогона: точнее промпт, больше контекста, more capable модель — чем городить цикл самооценки поверх сомнительного сигнала.
Итог простой. Self-reflection — это не бесплатный буст точности, а размен денег и задержки на качество. Он окупается там, где есть чёткий критерий успеха и не жмёт лимит времени. В остальных случаях один хорошо настроенный прогон часто выгоднее трёх посредственных.
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., 2023)
Частые вопросы
Насколько self-reflection увеличивает стоимость запроса?
Работает ли рефлексия, если у агента нет внешней проверки?
Сколько кругов рефлексии ставить?
Подходит ли self-reflection для чат-ботов в реальном времени?
Чем self-reflection отличается от простого 'попробуй ещё раз'?
Что важнее — сам цикл или сигнал об ошибке?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.