Главное

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

Фраза «при необходимости подключим оператора» звучит успокаивающе, но ничего не проектирует. Кто определяет необходимость? Что увидит оператор? Кто отвечает пользователю, пока задача лежит в очереди? Что произойдёт, если человек и агент одновременно продолжат работу?

Human handoff — это не кнопка в интерфейсе. Это полноценный переход состояния с владельцем, данными, сроком и правилами возврата.

Когда передача обязательна

Не стоит строить handoff только на «уверенности модели». Число 0,81 не означает, что действие безопасно, а 0,49 — что ответ обязательно неверен. Надёжнее сочетать несколько причин.

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

Недостаток доказательств. Если корпоративный поиск не нашёл разрешённый источник или источники противоречат друг другу, агент должен честно остановиться.

Выход за согласованный процесс. Пользователь просит действие, для которого нет инструмента, политики или ответственного владельца.

Повторяющийся сбой. Три одинаковых таймаута — не приглашение попробовать четвёртый раз. Это сигнал для человека или технической очереди.

Явный запрос пользователя. «Позовите менеджера» не должен превращаться в уговоры продолжить разговор с ботом.

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

Что передавать человеку

Оператору не нужен весь сырой диалог на пятьдесят экранов. Нужен компактный пакет:

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

Такой пакет экономит время и не заставляет человека начинать расследование заново. При этом исходная трассировка должна оставаться доступной отдельно — для спорных случаев и аудита.

Передача должна менять владельца

После handoff агент не должен тихо продолжать изменять данные. Задача переходит в состояние вроде waiting_for_human или assigned_to_operator, получает ответственного и блокирует конфликтующие действия.

Если оператор решил проблему, возможны три завершения:

  1. человек закрывает задачу;
  2. человек одобряет один конкретный шаг агента;
  3. человек возвращает агенту задачу с новыми ограничениями.

Нельзя использовать расплывчатое «продолжай»: лучше сохранить точный разрешённый план и срок его действия.

Что сообщить пользователю

Плохая фраза: «Ваш запрос передан специалисту». Она не даёт ни ожиданий, ни следующего шага.

Лучше сказать честно:

Я не могу безопасно завершить эту операцию автоматически: в данных расходятся реквизиты. Передал задачу менеджеру вместе с найденными документами. Ответ будет в рабочее время в течение двух часов; повторно отправлять запрос не нужно.

Это иллюстративный пример для очереди с таким режимом работы, а не общий SLA CENTURY. В сообщении должны быть понятная причина, ответственный и реальный срок, который команда способна выдержать.

Очередь и SLA важнее красивого диалога

Handoff ломается не в модели, а в операционной части. Если очередь живёт только в памяти процесса, задача исчезнет после рестарта. Если нет lease и повторного захвата, она может навсегда остаться у оператора, который ушёл из смены.

Для критичных процессов нужна durable queue: задача хранится в базе, выдаётся исполнителю на ограниченное время, подтверждается после завершения и возвращается в очередь при сбое. Именно так обычные backend-механизмы поддерживают обещание «передали человеку».

Как измерять качество handoff

Не радуйтесь одному низкому проценту передач. Он может означать, что агент смело ошибается.

Смотрите на набор метрик:

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

Хороший handoff уменьшает риск и усилие человека. Он не обязан быть редким.

Сценарий проверки

Перед запуском возьмите 30–50 реальных ситуаций: обычные, пограничные, конфликтные и намеренно вредные. Для каждой заранее отметьте, кто должен завершить задачу — агент или человек — и какой контекст обязан попасть в передачу. Затем прогоняйте набор после изменений модели, инструментов и политик.

OpenAI рекомендует human intervention как важную защиту для высокорисковых действий и случаев, когда агент превышает заданные пороги неудач. Мы добавляем к этому инженерное требование: передача считается выполненной только тогда, когда задача надёжно записана, получила владельца и перестала автономно менять внешний мир.

Сравнение

Сигналы обязательной передачи

СигналЧто произошлоДействие
Цена ошибкиПлатёж, договор или изменение доступаОстановить и запросить approval
Нет доказательствИсточники не найдены или противоречатОтказаться или передать
СбойПовторный timeout или недоступный APIПоставить в durable queue
Запрос человекаПользователь попросил менеджераНазначить владельца и срок

Что проверить

Что должно попасть оператору

  1. Задача пользователя и причина остановки.
  2. Проверенные факты и ссылки на разрешённые источники.
  3. Уже выполненные действия и их результаты.
  4. Следующий допустимый шаг и срок ответа.
  5. Идентификатор задачи, исключающий повторное выполнение.

Как мы подходим к задаче

В нашей архитектурной схеме handoff — отдельное состояние waiting_for_human: сохранённый план нельзя незаметно заменить новой генерацией, а задача должна пережить рестарт и смену исполнителя.

Источники и ссылки