AI-агенты

AI-агенты для Telegram и WhatsApp: архитектура и примеры

Как построить AI-агента для Telegram и WhatsApp: архитектура, интеграция с ASR и LLM, реальные кейсы из TEOM.

16 июля 2026 г.·13 мин чтения
← Все статьи

Суть проблемы: подавленный отдел поддержки

Представьте: вы — владелец сервиса. Средний чек — 50 000 рублей. В день приходит 200 сообщений в Telegram и WhatsApp. У вас три менеджера по поддержке. Они обрабатывают одно сообщение за 8-12 минут, потому что нужно найти информацию в базе знаний, проверить статус заказа, оформить возврат или просто утешить клиента. К вечеру очередь не закрывается. Клиенты ждут ответа по 4 часа. Отзывы портятся. Конверсия падает. Вы нанимаете двух новых сотрудников — а через месяц они уходят, потому что рутинная работа выматывает. Это реальная история, с которой начинаются 80% стартапов в сфере автоматизации поддержки. Каждый раз один и тот же вопрос: можно ли доверить рутину AI-агенту? Ответ — да, но с оговорками. AI-агент не заменит человека в сложных ситуациях. Но 70% рутинных вопросов он обработает быстрее, точнее и дешевле. В этой статье расскажу, как устроена архитектура AI-агента для мессенджеров, как интегрировать распознавание речи (ASR) и языковые модели (LLM), и покажу реальные примеры из TEOM.

Определения: термины, которые понадобятся

Прежде чем углубляться в архитектуру, определю несколько ключевых терминов:
  • AI-агент — программа, которая анализирует входящие сообщения, принимает решения и выполняет действия (отвечает пользователю, обновляет базу данных, вызывает API). В отличие от простого бота, агент способен к рассуждению: он понимает контекст, задаёт уточняющие вопросы и адаптируется под ситуацию.
  • ASR (Automatic Speech Recognition) — автоматическое распознавание речи. Превращает аудио- и видеозаписи в текст. В контексте мессенджеров ASR используется для транскрибации голосовых сообщений. Точность зависит от модели: GigaAM показывает WER 23.9% на русском языке, что значительно лучше Google Speech-to-Text.
  • LLM (Large Language Model) — большая языковая модель. Нейросеть, обученная на триллионах слов, которая понимает и генерирует текст. Примеры: GPT-4, Claude, GigaChat, Qwen. LLM — это «мозг» AI-агента: она анализирует запрос, формирует ответ и решает, какие действия выполнить.
  • Webhook — механизм обратного вызова. Когда пользователь отправляет сообщение в Telegram, сервер Telegram отправляет HTTP-запрос на ваш URL (webhook). Это позволяет реагировать на события в реальном времени без постоянного опроса сервера.
  • API (Application Programming Interface) — интерфейс программного взаимодействия. Набор правил и протоколов для обмена данными между программами. Через API ваш AI-агент общается с Telegram, WhatsApp, базой данных и внешними сервисами.
  • Pipeline — конвейер обработки данных. Последовательность шагов, через которые проходит входящее сообщение: от получения до формирования ответа. В AI-агентах pipeline обычно включает: приём сообщения → распознавание (если голос) → анализ LLM → формирование ответа → отправка.
  • Token — минимальная единица текста, которую обрабатывает LLM. Для русского языка один токен — это примерно 3-4 символа. Языковые модели ограничены количеством токенов: GPT-4 обрабатывает до 128 000 токенов за запрос, Qwen — до 131 000.
  • Context window (контекстное окно) — максимальный объём текста, который LLM может «держать в голове» одновременно. Определяет, сколько предыдущих сообщений агент помнит при генерации ответа. Маленькое контекстное окно = агент забывает контекст разговора.

Акт I: Зов приключения — почему простой бот не работает

Первая мысль каждого разработчика: «Напишу Telegram-бота на Python, подключу OpenAI API — готово». И это работает. Пока клиент не задаёт вопрос, который требует знания конкретики вашего бизнеса. Вот что происходит с простым ботом: ``python

Простой бот без контекста — работает poorly

import openai def handle_message(user_text: str) -> str: response = openai.ChatCompletion.create( model="gpt-4", messages=[ {"role": "system", "content": "Ты консультант по товарам."}, {"role": "user", "content": user_text} ] ) return response.choices[0].message.content
` Проблема: бот не знает, что конкретно купил клиент, какой у него статус заказа, и какие действия уже были предприняты. Он отвечает общими фразами, которые не решают проблему. Клиент раздражается.

Три уровня сложности

УровеньЗадачаПростой ботAI-агент
1«Какой у меня статус заказа?»Не знаетЗапрашивает API, возвращает статус
2«Хочу вернуть товар, он сломался»Отвечает общими фразамиУточняет причину, проверяет политику возврата, создаёт заявку
3«Вчера я разговаривал с Ольгой, она сказала, что замена будет через 2 дня, но прошло уже 5»Полный провалПомнит контекст, проверяет историю, эскалирует на менеджера
Простой бот справляется только с первым уровнем. AI-агент — со всеми тремя.

Акт II: Архитектура AI-агента

Общая схема

` Пользователь │ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Telegram / │───▶│ Webhook │───▶│ API-сервер │ │ WhatsApp │ │ Gateway │ │ (Rust) │ └─────────────┘ └─────────────┘ └──────┬──────┘ │ ┌─────────────────┼─────────────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ ASR │ │ LLM │ │ Actions │ │ GigaAM │ │ Qwen / │ │ API │ │ /Whisper │ │ GigaChat │ │ calls │ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────┼─────────────────┘ ▼ ┌──────────────┐ │ База знаний │ │ + контекст │ └──────────────┘ `

Слой 1: Приём сообщений

Telegram и WhatsApp работают по-разному. Telegram предоставляет чистый API и webhook-механизм. WhatsApp Business API требует аккредитации и работает через официальный провайдер (Twilio, MessageBird или Meta Cloud API).
`python

Пример: FastAPI webhook для Telegram

from fastapi import FastAPI, Request import httpx app = FastAPI() TELEGRAM_BOT_TOKEN = "your-bot-token" @app.post("/webhook/telegram") async def telegram_webhook(request: Request): data = await request.json() message = data.get("message", {}) chat_id = message["chat"]["id"] text = message.get("text", "") voice = message.get("voice") # голосовое сообщение if voice: # Скачиваем аудио и передаём в ASR audio_data = await download_telegram_voice(voice["file_id"]) text = await transcribe_audio(audio_data) # Передаём текст в AI-агента response = await ai_agent.process(chat_id, text) await send_telegram_message(chat_id, response) return {"ok": True}
`

Слой 2: Распознавание речи (ASR)

Голосовые сообщения — это 40% трафика в поддержке. Клиенту проще проговорить проблему, чем набирать текст. ASR-модель превращает аудио в текст, и дальше LLM работает уже с текстом. В TEOM используется GigaAM — модель, обученная на русском языке. Она значительно превосходит Whisper по точности на русском контенте: WER 23.9% против 35-40% у Whisper. Подробнее о в отдельной статье.
`python import teom_client async def transcribe_audio(audio_bytes: bytes) -> str: client = teom_client.Client(api_key="your-key") result = await client.transcribe( audio=audio_bytes, language="ru", diarize=False # для одного спикера ) return result.text `

Слой 3: Языковая модель (LLM)

LLM — это мозг агента. Она анализирует входящий текст, определяет намерение пользователя, обращается к базе знаний и формирует ответ. Ключевой момент: модель должна «знать» ваш бизнес. Для этого используется RAG (Retrieval-Augmented Generation) — генерация с.retrieve из базы знаний.
`python

Пример: агент с контекстом из базы знаний

from qwen_api import QwenClient async def process_message(chat_id: int, user_text: str) -> str: # 1. Получаем контекст разговора history = await get_conversation_history(chat_id) # 2. Ищем релевантную информацию в базе знаний knowledge = await search_knowledge_base(user_text, top_k=3) # 3. Формируем промпт system_prompt = f"""Ты — консультант компании TechStore. База знаний: {knowledge} История разговора: {history} """ client = QwenClient() response = await client.chat( model="qwen-plus", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_text} ], temperature=0.3 # низкая креативность = точные ответы ) # 4. Сохраняем в историю await save_to_history(chat_id, user_text, response.text) return response.text
`

Слой 4: Действия (Actions)

Ответить текстом — это полдела. AI-агент должен выполнять действия: проверять статус заказа, создавать заявки на возврат, обновлять данные в CRM. Для этого используется функциональный вызов (function calling) LLM.
`python

Функции, которые LLM может вызвать

TOOLS = [ { "type": "function", "function": { "name": "get_order_status", "description": "Получить статус заказа по номеру", "parameters": { "type": "object", "properties": { "order_id": {"type": "string", "description": "Номер заказа"} }, "required": ["order_id"] } } }, { "type": "function", "function": { "name": "create_return_request", "description": "Создать заявку на возврат товара", "parameters": { "type": "object", "properties": { "order_id": {"type": "string"}, "reason": {"type": "string"} }, "required": ["order_id", "reason"] } } } ] async def handle_with_tools(chat_id: int, user_text: str) -> str: messages = [{"role": "user", "content": user_text}] while True: response = await llm.chat( messages=messages, tools=TOOLS, tool_choice="auto" ) if not response.tool_calls: return response.text # нет вызовов — возвращаем ответ # Выполняем вызовы и добавляем результаты for call in response.tool_calls: result = await execute_tool(call.function.name, call.function.arguments) messages.append({"role": "tool", "content": str(result), "tool_call_id": call.id})
`

Акт III: Реальный кейс — AI-агент для TEOM

Задача

Автоматизировать поддержку TEOM: отвечать на вопросы о транскрибации, помогать с выбором тарифа, решать технические проблемы.

Архитектура решения

` Telegram-пользователь │ ▼ ┌───────────────┐ │ FastAPI │ │ + webhook │ └───────┬───────┘ │ ▼ ┌───────────────┐ ┌──────────────┐ │ ASR-модуль │────▶│ GigaAM │ │ (голосовые) │ │ (Russian) │ └───────┬───────┘ └──────────────┘ │ ▼ ┌───────────────┐ ┌──────────────┐ │ LLM-агент │────▶│ Qwen-Plus │ │ + RAG │ │ (32K ctx) │ └───────┬───────┘ └──────────────┘ │ ├──▶ get_order_status() ├──▶ create_ticket() ├──▶ search_knowledge_base() │ ▼ ┌───────────────┐ │ PostgreSQL │ │ + pgvector │ └───────────────┘ `

Интеграция с ASR

Голосовые сообщения — это 35% обращений в поддержку TEOM. Вот как работает пайплайн:

База знаний с pgvector

Для поиска релевантной информации используется векторная база данных. Все статьи базы знаний разбиваются на чанки, эмбеддинги сохраняются в pgvector, и при каждом запросе LLM получает 3 наиболее релевантных фрагмента.
`sql -- Таблица базы знаний CREATE TABLE knowledge_base ( id SERIAL PRIMARY KEY, title TEXT NOT NULL, content TEXT NOT NULL, embedding VECTOR(1536), -- pgvector category TEXT, updated_at TIMESTAMP DEFAULT NOW() ); -- Поиск релевантных статей SELECT title, content, 1 - (embedding <=> $1::vector) AS similarity FROM knowledge_base ORDER BY embedding <=> $1::vector LIMIT 3; ``

Результаты

МетрикаДо AI-агентаПосле
Среднее время ответа47 мин12 сек
Процент автоматических ответов0%72%
Удовлетворённость клиентов3.2/54.1/5
Загрузка операторов100%28%

Акт IV: Практические советы

1. Не заставляйте пользователя думать

AI-агент не должен спрашивать «Чем я могу помочь?». Лучше: «Вижу, вы обращались по заказу #12345. Статус: в обработке. Хотите уточнить сроки или оформить возврат?»

2. Эскалируйте вовремя

Если пользователь написал «Это катастрофа!» или повторяет одно и то же сообщение третий раз — передавайте живому оператору. AI-агент должен знать свои границы.

3. Помните контекст

Context window современных моделей позволяет держать 50-100 последних сообщений. Используйте это: клиент не должен повторять, о чём он просил в начале разговора.

4. Тестируйте на реальных данных

Не доверяйте бенчмаркам вслепую. Создайте датасет из 200 реальных обращений и прогоните через агента. Посчитайте точность, время ответа и процент эскалаций.

Почему TEOM

TEOM предоставляет API для транскрибации аудио и видео с поддержкой русского языка. В контексте AI-агентов это означает:
  • Голосовые сообщения из Telegram/WhatsApp обрабатываются через GigaAM (WER 23.9% на русском)
  • Скорость обработки: 16x realtime (минута аудио за 4 секунды). Подробнее о .
  • Хранение данных в России (152-ФЗ совместимость)
  • Простое API: один HTTP-запрос — готовый текст

CTA

Готовы построить AI-агента для своей поддержки? Начните с транскрибации голосовых сообщений — это 40% рутины, которую можно автоматизировать прямо сейчас. Попробуйте TEOM бесплатно — 5 часов транскрибации в месяц, без привязки карты. Или свяжитесь с нами, чтобы обсудить интеграцию AI-агента в ваш бизнес.
ai-агентыtelegramwhatsappllmasrчат-бот

Попробуйте TEOM бесплатно

Загрузите файл и получите результат за секунды.