Патерн Self-Critique Agent: чернетка → критика → правка

Запусти безпечний цикл самокритики: одна перевірка за схемою, одна контрольована правка і журнал змін — щоб якість була стабільною.
На цій сторінці
  1. Суть патерна
  2. Проблема
  3. Рішення
  4. Як працює
  5. У коді це виглядає так
  6. Як це виглядає під час виконання
  7. Коли підходить — і коли ні
  8. Підходить
  9. Не підходить
  10. Чим відрізняється від Reflection
  11. Коли використовувати Self-Critique (vs інші патерни)
  12. Як комбінувати з іншими патернами
  13. Коротко
  14. Переваги та Недоліки
  15. FAQ
  16. Що далі

Суть патерна

Self-Critique Agent — це патерн, у якому агент спочатку пише чернетку, потім за шаблоном фіксує ризики й обов’язкові правки, робить одну контрольовану правку і записує що саме змінилось у журналі змін.

Коли потрібен: коли потрібен суворий структурований розбір ризиків і контрольована ревізія з audit-слідом.


На відміну від легкого reflection, self-critique зазвичай суворіший:

  • критика має фіксований формат (наприклад, JSON)
  • правки можна робити лише за правилами
  • контроль приросту тексту
  • система зберігає журнал змін (що було → що стало)

Патерн Self-Critique Agent: чернетка → критика → правка

Проблема

Уявімо, що агент готує оновлення щодо проблеми для клієнта.

Чернетка:

"Реліз затримано через збій у платіжному модулі."

Потім надходить запит:

"Зроби формулювання м'якшим."

Без self-critique рамки агент часто робить "красиве переписування", яке виходить за межі задачі:

  • додає нові припущення
  • робить тон менш конкретним
  • розширює текст поза потрібний обсяг
  • маскує проблему замість уточнення

"Покращити формулювання" не має перетворюватися на "змінити сенс".

У підсумку:

  • зміст непомітно змінюється
  • неясно, що саме виправлено
  • аудит не відтворює логіку правок
  • відповідь стає менш надійною для рішень

У цьому й проблема: під час "покращення" агент може змінити зміст, хоча мав змінити тільки форму.

Рішення

Self-Critique вводить правило: правити можна тільки те, що записано в "обов’язкових правках".

Аналогія: це як редакторська правка за списком зауважень. Спочатку фіксуємо, що саме треба виправити, потім вносимо одну контрольовану правку. Так відповідь стає яснішою без зміни змісту.

Ключовий принцип: Спочатку структурована критика, потім одна контрольована ревізія зі слідом аудиту.

Агент може запропонувати переписування, але система дозволяє лише точкові правки, які прямо входять у список "обов’язкових правок".

Керований процес:

  1. Чернетка: згенерувати першу версію
  2. Критика: сформувати артефакт (risks + required_changes)
  3. Рішення: ok/доопрацювати/ескалювати
  4. Ревізія: зробити одну обмежену ревізію
  5. Аудит: записати diff + metadata

Це дає:

  • покращення ясності без зміни фактів
  • чітке розділення "що не так" і "що виправлено"
  • відтворюваність правок
  • контроль high-risk відповідей до публікації

Працює добре, якщо:

  • critique має фіксовану структуру (schema-driven)
  • revision обмежена required_changes
  • діє no_new_facts
  • обов'язковий audit diff

Як працює

Diagram

Щоб патерн був безпечним, потрібні чіткі межі:

  • одна перевірка
  • одна правка
  • не додавати нових фактів
  • правити тільки те, що в списку обов’язкових правок
  • не роздувати текст (наприклад, +20% максимум)
  • при високому ризику — стоп або перевірка людиною
Опис повного флоу: Draft → Critique → Revise → Audit

Чернетка
Агент генерує первинну відповідь.

Критика
Окремий critique-крок повертає структурований результат: ризики, required changes, severity.

Ревізія
Агент змінює лише те, що вказано як required, без розширення scope.

Аудит
Система логує before/after, changed flag і короткий diff для дебагу та інцидент-аналізу.

У коді це виглядає так

PYTHON
draft = writer.generate(goal, context)

critique = critic.review_once(
    draft=draft,
    schema="risks_required_changes_v1",
)

if critique.high_risk:
    return escalate_to_human(critique.reason)

if critique.ok:
    return draft

revised = writer.revise_once(
    draft=draft,
    required_changes=critique.required_changes,
    rules=[
        "no_new_facts",
        "max_length_increase_pct=20",
        "keep_scope",
    ],
)

approved = supervisor.review_output_patch(
    original=draft,
    revised=revised,
    allowed_changes=critique.required_changes,
)

audit.log_diff(
    before=draft,
    after=approved,
    risks=critique.risks,
)

return approved

Self-Critique не повинен запускатися "до ідеалу". Один critique + одне доопрацювання (revise), і перевірка, що revision не вийшов за межі required_changes.

Як це виглядає під час виконання

TEXT
Goal: запропонувати безпечний план дій під час мережевого інциденту

Draft:
"Проблема викликана мережею. Потрібно перезапустити весь кластер."

Critique:
- risk: твердження про причину без доказів
- risk: занадто широкий вплив дії
- required_change: додати перевірки перед restart

Revision:
"Ймовірна причина - мережевий збій.
Перед перезапуском кластера перевірити стан вузлів і затримку.
Якщо підтверджено частковий збій - перезапустити лише affected nodes."

Повний приклад Self-Critique агента

PYPython
TSTypeScript · скоро

Коли підходить — і коли ні

Підходить

СитуаціяЧому Self-Critique підходить
Високоризиковий результат перед відправкоюSelf-critique додає структурований контроль перед фінальним релізом відповіді.
Потрібен слід аудиту змінКритика та правки фіксуються явно і підходять для аудиту.
Є чітка схема критикиФормалізована структура робить перевірку відтворюваною і контрольованою.
Потрібне контрольоване переписування без розростання обсягуSelf-critique допомагає обмежити переписування тільки необхідними змінами.

Не підходить

СитуаціяЧому Self-Critique не підходить
Критична затримка і немає бюджету на додатковий прохідДругий крок генерації може бути занадто дорогим по часу і вартості.
Неможливо примусово застосувати правила, наприклад no_new_factsБез жорстких обмежень критика/переписування може погіршити достовірність.
Задача детермінована і стабільно валідується тестамиДодатковий прохід критики дублює вже надійний процес перевірки.

Бо self-critique додає другий крок генерації і підвищує вартість виконання.

Чим відрізняється від Reflection

ReflectionSelf-Critique
Глибина перевіркиШвидко подивитися “чи все ок” (легка перевірка)Суворо записати “що не так” і “що треба виправити” списком
Форматok/issues/fixризики, severity, обов'язкові правки
RevisionЗазвичай мінімальнаОбмежене переписування із правилами
Операційний фокусШвидкий прохід якостіКероване переписування + журнал змін

Reflection частіше використовують як легкий фільтр перед відправкою. Self-Critique - коли потрібен жорсткіший контроль змін.

Коли використовувати Self-Critique (vs інші патерни)

Використовуйте Self-Critique, коли потрібна глибока критика за явними критеріями і контрольоване переписування.

Короткий тест:

  • якщо потрібно "оцінити за чеклістом і переписати відповідь" -> Self-Critique
  • якщо потрібно "зробити лише коротку перевірку перед відправкою" -> Reflection Agent
Порівняння з іншими патернами та приклади

Швидка шпаргалка:

Якщо задача виглядає так...Використовуйте
Потрібна коротка перевірка перед фінальною відповіддюReflection Agent
Потрібна глибока критика за критеріями і переписування відповідіSelf-Critique Agent
Потрібно відновлювати процес після timeout, exception або падіння інструментаFallback-Recovery Agent
Потрібні жорсткі policy-перевірки перед ризиковою дієюGuarded-Policy Agent

Приклади:

Reflection: "Перед фінальною відповіддю швидко перевір логіку, повноту і явні помилки".

Self-Critique: "Оціни відповідь за чеклістом (точність, повнота, ризики), потім перепиши".

Fallback-Recovery: "Якщо API не відповідає, зроби retry -> fallback-джерело -> ескалація".

Guarded-Policy: "Перед відправкою даних назовні перевір policy: чи дозволено це робити".

Як комбінувати з іншими патернами

  • Self-Critique + RAG: критика і правки дозволені лише в межах фактів із retrieval-контексту.
  • Self-Critique + Supervisor: ризикові правки не застосовуються автоматично, а передаються на ручне погодження.
  • Self-Critique + Reflection: Reflection робить швидкий pre-check, а Self-Critique вмикається для складних або спірних відповідей.

Коротко

Коротко

Self-Critique Agent:

  • Створює чіткий список проблем і обов’язкових правок
  • Робить одну контрольовану правку
  • Зберігає журнал змін (що було → що стало)
  • Не дає “покращенню тексту” непомітно змінити зміст

Переваги та Недоліки

Переваги

перевіряє відповідь перед фінальною версією

зменшує кількість очевидних помилок

покращує чіткість формулювань

допомагає дотримуватися вимог задачі

Недоліки

додає додатковий крок і час

не замінює перевірку фактів

без чітких критеріїв може правити зайве

FAQ

Q: Чи можна робити кілька критичних проходів?
A: Технічно можна, але це швидко перетворюється на дорогий цикл. Базовий безпечний стандарт: 1 + 1.

Q: Навіщо обов'язково логувати зміни?
A: Без diff складно зрозуміти, що саме змінило якість відповіді і де виникла помилка.

Q: Чи потрібна окрема модель-критик?
A: Іноді так, але не обов'язково. Критичніше мати сувору схему, валідацію виходу і жорсткі правила ревізій.

Що далі

Self-Critique покращує якість через кероване переписування.

Але що робити, якщо відповідь треба не просто переписати, а перевірити перед ризиковою дією за політиками?

⏱️ 9 хв читанняОновлено Бер, 2026Складність: ★★★
Практичне продовження

Приклади реалізації патерна

Перейди до реалізації на готових прикладах.

Інтегровано: продакшен-контрольOnceOnly
Додай guardrails до агентів з tool-calling
Зашип цей патерн з governance:
  • Бюджетами (кроки / ліміти витрат)
  • Дозволами на інструменти (allowlist / blocklist)
  • Kill switch та аварійна зупинка
  • Ідемпотентність і dedupe
  • Audit logs та трасування
Інтегрована згадка: OnceOnly — контрольний шар для продакшен агент-систем.
Автор

Цю документацію курують і підтримують інженери, які запускають AI-агентів у продакшені.

Контент створено з допомогою AI, із людською редакторською відповідальністю за точність, ясність і продакшн-релевантність.

Патерни та рекомендації базуються на постмортемах, режимах відмов і операційних інцидентах у розгорнутих системах, зокрема під час розробки та експлуатації governance-інфраструктури для агентів у OnceOnly.