Разработка автономных телефонных агентов на Bland AI
Bland AI — платформа для создания телефонных голосовых агентов, которые ведут полноценные двусторонние разговоры по заданному сценарию. В отличие от классических IVR-систем с жёстким деревом меню, агент на Bland AI понимает свободную речь, обрабатывает нестандартные ответы и интегрируется с бизнес-системами через вебхуки в реальном времени.
Архитектура и возможности Bland AI
Платформа работает по модели: входящий/исходящий звонок → Speech-to-Text → LLM для генерации ответа → Text-to-Speech → озвучивание. Весь цикл занимает 300-700ms, что обеспечивает естественный темп разговора без заметных пауз.
Ключевые компоненты:
- Pathways — граф диалога с условными переходами (ветвление по ответам пользователя)
- Tools — вызов внешних API прямо в ходе звонка (проверка статуса заказа, запись в CRM)
- Knowledge Base — векторное хранилище для ответов на вопросы по документам
- Transfer — переключение на живого оператора при триггере эскалации
import requests
import json
class BlandAIAgent:
"""Управление агентами через Bland AI API"""
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = "https://api.bland.ai"
self.headers = {
"Authorization": api_key,
"Content-Type": "application/json"
}
def create_phone_call(self, phone_number: str,
task: str,
pathway_id: str = None,
voice: str = "maya",
max_duration: int = 12) -> dict:
"""
Инициирование исходящего звонка.
task: инструкция для агента (prompt)
pathway_id: ID предварительно настроенного графа диалога
"""
payload = {
"phone_number": phone_number,
"voice": voice,
"max_duration": max_duration,
"task": task,
"language": "ru",
"reduce_latency": True,
"interruption_threshold": 100, # ms, насколько ждём паузы
}
if pathway_id:
payload["pathway_id"] = pathway_id
response = requests.post(
f"{self.base_url}/v1/calls",
json=payload,
headers=self.headers
)
return response.json()
def create_pathway(self, name: str, nodes: list[dict],
edges: list[dict]) -> dict:
"""
Создание графа диалога (Pathway).
nodes: узлы разговора (вопросы, ответы, действия)
edges: переходы между узлами по условиям
"""
payload = {
"name": name,
"nodes": nodes,
"edges": edges
}
response = requests.post(
f"{self.base_url}/v1/pathway",
json=payload,
headers=self.headers
)
return response.json()
def analyze_call(self, call_id: str,
questions: list[dict]) -> dict:
"""
Post-call анализ: извлечение структурированных данных из разговора.
questions: [{"question": "...", "type": "boolean|text|date"}]
"""
payload = {"questions": questions}
response = requests.post(
f"{self.base_url}/v1/calls/{call_id}/analyze",
json=payload,
headers=self.headers
)
return response.json()
def get_call_transcript(self, call_id: str) -> dict:
"""Транскрипт и метаданные завершённого звонка"""
response = requests.get(
f"{self.base_url}/v1/calls/{call_id}",
headers=self.headers
)
return response.json()
Сценарии применения
Исходящие продажи и квалификация лидов. Агент обзванивает базу лидов, задаёт квалифицирующие вопросы по BANT-фреймворку и передаёт горячих лидов в CRM с заполненными полями. Конверсия из лида в квалифицированный лид — сопоставима с junior SDR при 10-кратной производительности.
Подтверждение встреч и записей. Автоматический обзвон накануне встречи с возможностью переноса через голосовой ответ. Снижает no-show rate на 35-55%.
Сбор отзывов после сервиса. NPS-опрос через звонок даёт response rate 40-60% против 5-15% у email. Агент углубляется в низкие оценки с follow-up вопросами.
Метрики и ограничения
| Параметр | Значение |
|---|---|
| Latency первого ответа | 400-700ms |
| Распознавание русского | хорошее (Whisper-based) |
| Одновременных звонков | до 1000+ (enterprise) |
| Стоимость | ~$0.09/мин |
| CSAT vs живой оператор | 75-85% |
Ограничения: сложные эмоциональные разговоры (жалобы, конфликты) требуют эскалации на человека. Агент не распознаёт сарказм и культурные нюансы с надёжностью живого сотрудника. Для чувствительных тематик (здравоохранение, юридические вопросы) необходима дополнительная настройка ограничений.
Типовой срок развёртывания простого агента для подтверждения записей — 1-2 недели. Сложный квалификационный агент с интеграцией CRM и обработкой возражений — 4-6 недель.







