Human-in-the-Loop для AI-агентов: approval, escalation и pause/resume

Human-in-the-loop в 2026: где ставить approval step, как проектировать review queue и почему pause/resume важнее полной автономии.

Human-in-the-loop в 2026 полезно понимать не как "человек иногда посмотрит ответ", а как control layer вокруг agent workflow. В зрелой системе вопрос не в том, есть ли человек вообще, а в том, где именно агент обязан остановиться, что показать оператору и как безопасно продолжить выполнение после решения человека.

Это особенно важно для агентных систем, где ошибка живёт не только в тексте ответа, но и в действии:

  • агент пишет во внешнюю систему;
  • меняет customer state;
  • отправляет письмо;
  • запускает workflow;
  • делает risky browser или computer-use step.
Human-in-the-loop не означает, что человек делает работу вместо агента. Это означает, что система умеет вовремя передать человеку решение там, где автоматизация без контроля уже слишком дорогая или опасная.
Если approval появляется только после того, как side effect уже произошёл, это не human-in-the-loop, а human-after-the-fact. Для risk control такой review почти бесполезен.

Короткая версия

HITL особенно нужен в четырёх случаях:

  1. High-impact actions
  2. Low confidence или ambiguity
  3. Policy и compliance boundaries
  4. Exception handling

Хороший human-in-the-loop path умеет:

  • поставить workflow на pause до side effect;
  • показать человеку compact approval packet;
  • принять approve, reject, edit или escalate;
  • продолжить workflow с сохранённым state.
Без техники
Агент сам проводит refund, публикует сообщение или меняет CRM-запись, а человек потом получает incident report.
С техникой
Агент собирает evidence, формирует proposed action и ставит workflow на pause до human decision. Только после approval происходит commit.
ПромптApproval intuition
Когда approval step должен стоять - до tool call или после?
Ответ модели

Если tool call уже может менять внешний мир, approval нужен до side effect. Постфактум review полезен только для auditing, но не для предотвращения риска.

1. Где HITL действительно оправдан

Не every агентный workflow требует человека. Но есть зоны, где отсутствие human gate быстро становится operational problem.

Денежные и юридически значимые действия

  • refunds;
  • billing changes;
  • contract redlines;
  • policy exceptions;
  • compliance-sensitive approvals.

Действия с внешними побочными эффектами

  • email send;
  • CRM update;
  • browser/computer use;
  • ticket creation;
  • code execution;
  • запуск внешнего workflow.

Низкая уверенность и конфликт сигналов

Например:

  • retrieval и tool output противоречат друг другу;
  • agent plan выглядит plausible, но trace показывает repeated failures;
  • модель предлагает risky action на неполной информации;
  • policy layer и user intent расходятся.

2. Approval - не единственный режим

Практически полезно различать несколько human decisions:

РежимЧто означает
Approveвыполнить предложенное действие как есть
Rejectне выполнять и завершить или перестроить workflow
Editчеловек меняет payload, текст или параметры
Escalateкейс уходит более опытному оператору
Take overчеловек временно забирает управление на себя

Если система умеет только yes / no, она слишком быстро сталкивается с реальной операционной сложностью.

3. Как выглядит хороший approval packet

Самая частая ошибка - показать человеку либо весь trace, либо почти ничего.

Хороший approval packet обычно содержит:

  • proposed action;
  • affected entity;
  • краткое обоснование;
  • key evidence;
  • risk flags;
  • editable payload;
  • trace link для глубокого разбора.

То есть оператору нужен не весь внутренний reasoning, а минимум контекста, достаточный для решения.

Если human review занимает почти столько же времени, сколько ручное выполнение задачи, ваш HITL-path спроектирован слабо. Его задача - ускорять безопасное решение, а не дублировать ручной workflow.

4. Pause / resume важнее approval UI

Многие команды продумывают красивую кнопку approval, но не продумывают, как workflow продолжится после решения человека.

После approve или edit система должна:

  • знать, на каком step она была остановлена;
  • не повторить уже завершённые действия;
  • вернуть агенту точный human decision payload;
  • сохранить audit trail по всей цепочке.

Именно поэтому HITL почти всегда требует:

  • durable state;
  • step IDs;
  • явную границу proposed vs committed;
  • idempotent side effects.

Без этого один approval click легко приводит к duplicated action.

5. Что отправлять в review queue

Кроме очевидных high-risk actions, в human review часто полезно отправлять:

  • low-confidence final answers в high-stakes domain;
  • repeated tool failures;
  • policy disagreements;
  • out-of-distribution запросы;
  • long-running agents с нестабильной траекторией.

Это даёт не только safety, но и product signal:

  • где automation boundary ещё не готова;
  • какие кейсы надо покрыть eval-наборами;
  • где policy слишком жёсткая или, наоборот, дырявая.

6. Что ломает human-in-the-loop

Approval fatigue

Если в очередь уходит слишком много trivial решений, операторы начинают mechanically approve almost everything.

Late review

Человек видит уже committed action и ничего не контролирует.

Нет ownership model

Непонятно, кто отвечает за итог: агент, оператор первой линии или старший reviewer.

Нет audit-grade traces

Потом невозможно понять:

  • что предложил агент;
  • что изменил человек;
  • почему действие всё же было выполнено.

7. Какие метрики полезны

Минимальный HITL dashboard обычно включает:

  • approval rate;
  • reject rate;
  • edit-before-approve rate;
  • median time in review queue;
  • post-approval incident rate;
  • unnecessary-human-review rate;
  • escalation rate.

Отдельно полезно смотреть automation coverage with acceptable risk, а не просто процент кейсов "без человека".

Плюсы

  • Снижает риск на high-impact actions без отказа от автоматизации вообще
  • Даёт понятный escalation path для uncertain и exceptional кейсов
  • Создаёт качественный feedback loop для evals и product tuning
  • Делает agent behavior audit-able и управляемым

Минусы

  • Плохо спроектированная review queue убивает скорость
  • Approval fatigue быстро превращает контроль в формальность
  • Pause/resume требует хорошего state management
  • Без compact approval packet оператор тонет в traces

Пример approval payload

{
  "workflow_id": "wf_821",
  "step_id": "refund_proposal_3",
  "action": "issue_refund",
  "entity_id": "order_1842",
  "proposed_args": {
    "amount": 129.0,
    "reason": "duplicate_charge"
  },
  "risk_flags": ["money_movement", "policy_exception"],
  "evidence": [
    "billing tool shows duplicate transaction",
    "customer eligible under refund policy v7"
  ]
}

Минимальный pause / resume flow

def request_approval(workflow_id, step_id, payload):
    save_pending_decision(workflow_id, step_id, payload)
    return {"status": "paused", "awaiting": "human_review"}

def resume_after_human(decision):
    if decision["type"] == "reject":
        return {"status": "stopped"}
    if decision["type"] == "edit":
        return continue_workflow(with_payload=decision["edited_payload"])
    return continue_workflow(with_payload=decision["approved_payload"])

Практический совет: разделяйте plan, proposal и commit. Именно эта тройка обычно делает human decision воспроизводимым и не даёт workflow повторно прожимать already-approved side effects.

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

1. Когда human-in-the-loop особенно нужен?

2. Почему approval после side effect часто бесполезен?

3. Какой design choice особенно важен для pause/resume?