Обзор

Agent Stream — это эндпоинт WebSocket, который позволяет провайдеру телефонии направить свой медиапоток на единый URL и запустить прогон агента Агентики. UUID агента в URL определяет, какой агент используется; специфичные для провайдера идентификаторы в строке запроса сообщают Агентике, какую сохраненную конфигурацию телефонии использовать для этого звонка. Bearer-токен и другие учётные данные никогда не передаются в URL — они хранятся в сохраненной конфигурации и используются Агентикой для проверки сессии и вызовов API провайдера (завершение звонка, перевод) во время звонка. Это полезно, когда:
  • Вы интегрируете Агентику в SIP-шлюз или собственный диалер, который уже поддерживает потоковый протокол
  • Вам нужен один стабильный эндпоинт на агента, а не настройка входящего вебхука для каждого номера телефона
Agent Stream — это универсальная точка входа для потоковой передачи медиа. Встроенный провайдер Asterisk ARI использует собственный медиа-маршрут /api/v1/telephony/ws/ari, а не этот эндпоинт. Чтобы задействовать Agent Stream, добавьте собственного провайдера, который стримит на единый URL. Для нереализованного провайдера эндпоинт возвращает NotImplementedError.

Эндпоинт

{agent_uuid} — это стабильный UUID агента (см. Получение UUID агента ниже). При self-hosted развертывании замените app.agentika.ai на хост своего бэкенда.

Предварительные требования

  • Агент (воркфлоу) Агентики — опубликованный или в статусе черновика, не важно
  • Сохраненная конфигурация телефонии в вашей организации, которую Агентика найдет по специфичным для провайдера идентификаторам из URL. Агентика использует учётные данные из этой конфигурации для проверки сессии звонка и вызовов API провайдера (завершение звонка, перевод).

Получение UUID агента

UUID агента — это стабильный идентификатор воркфлоу, он не меняется при публикации новых версий. Как найти и скопировать его в интерфейсе, см. UUID агента.

Подключение к WebSocket

Параметры URL

Провайдер может требовать дополнительные query-параметры для сопоставления сохраненной конфигурации телефонии — их набор определяется реализацией конкретного провайдера.

Жизненный цикл прогона воркфлоу

Когда WebSocket-соединение принято, Агентика:
  1. Находит воркфлоу по agent_uuid
  2. Выполняет проверку квоты для владельца воркфлоу
  3. Создает новый WorkflowRun (call_type=inbound, имя WR-AGS-XXXXXXXX) с номерами from/to, зафиксированными в initial_context, и callId/CallSid, сохраненными как call_id в gathered_context
  4. Переводит прогон в статус running и запускает пайплайн агента
Прогон становится виден на вкладке Runs агента сразу после создания — точно так же, как входящий или исходящий звонок.

Коды закрытия соединения

Замечания по безопасности

  • Относитесь к URL как к секрету — сам UUID агента авторизует соединение. Храните и передавайте его только по TLS и избегайте логирования исходного URL там, где доступ шире, чем у вашей операционной команды.
  • В URL не передаются никакие bearer-токены или секреты провайдера. Учётные данные провайдера хранятся в сохраненной конфигурации телефонии и используются на стороне сервера Агентики для проверки сессии и вызовов API провайдера.