Контроль AI и передача человеку
Управляйте тем, когда отвечает AI, а когда чат берёт на себя оператор-человек
В каждом чате есть переключатель контроля AI, чтобы команда вашего клиента могла оставить агента на автопилоте или в любой момент вмешаться вручную.
На скриншоте — разговор сразу после того, как AI вызвал turnOffAiMode: переключатель AI в заголовке чата выключен, баннер напоминает оператору, что он отвечает вручную, а последнее сообщение пришло от коллеги.
Переключение режима AI
- Откройте любой чат в Чаты (панель или мобильное приложение) и нажмите переключатель AI — изменение применяется сразу.
- Или через API:
PATCH /api/chats/{chatId}с{ "isUnderAiControl": false }(заголовокX-Access-Token: happ_your_token_here).
| Состояние | Поведение |
|---|---|
AI вкл. (isUnderAiControl: true) | Агент автоматически отвечает на новые сообщения |
AI выкл. (isUnderAiControl: false) | Агент на паузе; сообщения ждут человека в панели |
Когда AI выключен, aiDisableReason фиксирует причину:
| Причина | Описание |
|---|---|
manual | Человек выключил AI из панели или через API |
auto | AI вызвал turnOffAiMode, чтобы передать разговор |
insufficient_balance | У компании закончились кредиты; AI возобновится сам, как только баланс станет положительным |
Передача человеку
Встроенный инструмент turnOffAiMode доступен всегда. Когда AI решает, что не может помочь, он вызывает инструмент, isUnderAiControl становится false, чат появляется в панели как требующий внимания, а WebSocket-событие CHAT_MODE_CHANGED оповещает всех клиентов. Настройте push-уведомления в Telegram, чтобы чат команды получал оповещение о каждой передаче.
Задайте правила передачи в промпте агента:
If the customer asks to speak to a human, or if you cannot resolve
their issue after 2 attempts, use the turnOffAiMode tool to transfer
the conversation to a human operator. Tell the customer that a team
member will respond shortly.Автовозобновление и контекстное окно
- После автоматической передачи AI возвращается сам, когда в чате наступает тишина. Задержка задаётся для каждого агента (
aiAutoReturnDelayMinutes, по умолчанию 30 минут). После ручного выключения AI сам не включается — включить его снова должен человек. - Контекст — скользящее окно, а не фиксированный отрезок времени: агент видит последнюю часть разговора, которая помещается в контекст модели, а всё, что было до последней отметки саммари, заменено этим саммари. Старые сообщения остаются в базе, и их можно найти встроенным инструментом
searchPreviousConversations.
Передача между агентами
PATCH /api/chats/{chatId} с { "assistantId": "new-assistant-uuid" }. Новый агент продолжает с последнего сообщения; вся история сохраняется.
Группировка сообщений
Сообщения, отправленные подряд, объединяются в одну серию: платформа ждёт 12 секунд тишины после последнего сообщения, прежде чем агент ответит, а чат, где самое старое неотвеченное сообщение ждёт дольше 30 секунд, подхватывает проверка, которая запускается раз в минуту. Клиенты часто присылают заказ по частям, поэтому агент отвечает один раз — на всю серию целиком. Пока изображение или голосовое сообщение ещё распознаётся, окно продлевается до завершения распознавания.
WebSocket-события
{
"type": "CHAT_MODE_CHANGED",
"payload": {
"chatId": "uuid",
"isUnderAiControl": false,
"aiDisableReason": "auto"
}
}Подключайтесь к wss://api.happ.tools для обновлений в реальном времени.
Дальше
- Инструменты и действия через вебхуки — как
turnOffAiModeсочетается с другими инструментами - Каналы — где происходят передачи в мессенджерах
- Агенты — настройте, кто отвечает до передачи
Help me solve it
Happ answers right away and hands over to a manager when needed.