Голосовой агент
Принимает и совершает звонки, распознаёт речь и реагирует на перебивание.
OmniFlow — омниканальная платформа для обработки обращений клиентов. Объединяет звонки и сообщения: ИИ решает типовые задачи, а оператор подключается с историей диалога и результатом работы агента.
От первого звонка или сообщения до решения вопроса — каждый участник знает, что уже сделано.
Звонок или сообщение поступают в обработку по правилам вашего процесса.
Отвечает клиенту, уточняет вопрос и сохраняет результат.
Видит историю, заметки агента и причину передачи.
Пример работающего продукта: готовая панель оператора встроена в страницу приложения. ИИ подтверждает запись, а сложный вопрос передаёт человеку.
Агент позвонил пациенту и сохранил результат разговора.
Пациент спросил о документах — это выходит за рамки задачи агента.
В панели есть запись, краткий итог и причина передачи. Оператор уточняет список документов.

Вы определяете задачи агента и момент, когда в работу должен включиться человек.
Принимает и совершает звонки, распознаёт речь и реагирует на перебивание.
Читает переписку, отвечает в мессенджерах и оставляет служебные заметки.
Получает нужные данные и записывает результат через интеграции, заданные в стратегии.
Телефония и WebRTC, Telegram, WhatsApp, Avito, MAX, SMS. Состав подключений и требования к провайдерам зависят от поставки — актуальный перечень приводится в документации.
Логика диалога, тексты и правила передачи человеку задаются в коде. Распознавание и синтез речи зависят от подключённого речевого провайдера.
Стратегия — отдельный сервис: он подключается к платформе по её протоколу, поэтому язык и стек выбирает команда. Для TypeScript есть готовый SDK. Разработчик задаёт правила обслуживания, подключает внешние системы и выпускает изменения через свой репозиторий и тесты.
Разработчики используют ИИ-агентов для написания и изменения стратегий по SDK, документации и примерам — результат по-прежнему проходит обычную проверку и выпуск.
runtime.onFlow(async (ctx) => {
// Открытое обращение продолжается, иначе заводится новое
const session = await ctx.sessions.current({
initialStatus: 'online',
})
await ctx.voice.answer()
await ctx.playSequence([{ code: 'greeting' }])
const result = await ctx.dialGroup(operators, {
ringTimeoutSec: 20,
autoRecord: true,
})
if (result.kind === 'answered') {
await session.patch()
.status('indialog')
.result({ type: 'success', code: 'served' })
.commit()
await result.waitForHangup({
talkTimeoutMs: 30 * 60_000,
})
await session.setStatus('closed')
}
await ctx.complete(result.kind)
})Сессия связана с клиентом. Звонок и переписка относятся к одному обращению, если это продолжение вопроса по правилам стратегии. Она же задаёт, как сопоставлять контакты клиента в разных каналах.
Платформу можно взять как услугу в облаке правообладателя или установить в собственном контуре из закрытого реестра образов. Возможности одни и те же — различаются размещение данных и то, кто обслуживает установку.
Опубликованные версии, требования, порядок установки, проверки и диагностики.
registry.omniflow.ruФункциональные характеристики, установка, эксплуатация, поддержка и лицензирование.
Облако правообладателя или установка в своём контуре, получение доступа и лицензии, порядок поддержки.
Расскажите о сценарии обслуживания — покажем, как он собирается на платформе, и ответим на вопросы о поставке.