AI-менеджер продаж для Telegram Business. Отвечает клиентам в личке как живой человек, квалифицирует лида, собирает бриф, считает смету по вашему каталогу, выставляет оплату и вовремя передаёт диалог человеку.
Warning
Open Beta. Проект в активной разработке. API, схема БД и настройки могут меняться. Гоняйте на тестовом аккаунте и в PAYMENTS_MODE=mock, пока не убедитесь, что всё ведёт себя так, как вам нужно.
Большинство «чат-ботов» — это отдельный @bot, куда клиента ещё надо загнать. Люди туда не идут: они пишут вам в личку и ждут ответа как от человека.
AI Manager работает наоборот. Клиент пишет в ваш реальный аккаунт в Telegram, а бот отвечает в этом же диалоге через официальный Telegram Business API (business_connection_id). Клиент даже не понимает, что первую линию держит ИИ — потому что тот отвечает не мгновенными шаблонами, а по-человечески: читает, «печатает», делает паузы, дробит длинные ответы, задаёт уточняющие вопросы и ведёт к следующему шагу.
| ✅ Как правильно | ❌ Как не надо |
|---|---|
| Клиент пишет в вашу реальную личку | Клиента гонят в отдельный @bot |
Backend получает business_message |
Обычный bot-чат обрабатывается как клиент |
Ответ уходит с business_connection_id |
Ответ без business-connection |
| Официальный Bot API | Userbot / MTProto / Telethon / Pyrogram |
| Human takeover на сложных кейсах | Бот сам обещает скидки, договоры и точные цены |
- 🗣️ Живые ответы, а не робот. Слой Humanizer 2.0: задержки «прочитал → подумал → печатает», статус
typing, дробление на человеческие сообщения, ночное замедление, follow-up при тишине. Плюс текстовый де-робот: срезает канцелярит, подхалимаж и дежурные «рад помочь / обращайтесь, если что». - 🎯 Квалификация и воронка. Понимает нишу и задачу, отделяет лида от мусора, задаёт вопросы порциями, собирает мини-бриф: ниша → задача → что уже есть → цель → бюджет → сроки.
- 📋 Бриф в DOCX. Отправляет клиенту бриф, принимает заполненный файл, разбирает его (детерминированно + LLM) и собирает понимание по проекту.
- 🧾 Смета по вашему каталогу. Считает и рекомендует только из активного каталога услуг — не выдумывает цены и услуги, которых нет.
- 💳 Оплаты. YooKassa (ссылка), перевод и СБП по реквизитам, распознавание чека (опц.), идемпотентные вебхуки без гонок. Есть
mock-режим для E2E без реальных списаний. - 🧠 Память и стиль (RAG, опц.). Импорт экспортов переписок → чистка секретов/PII → style profile, sales playbook и embeddings, чтобы отвечать в вашем тоне и по вашим фактам.
- 🚨 Срочные уведомления. Ловит «горящих» лидов (готов платить, просит счёт/реквизиты, высокий бюджет, серия сообщений без ответа) и рисковые темы (жалоба, возврат, договор, NDA) → зовёт человека.
- 🛡️ Безопасность из коробки. Валидатор каждого ответа: ловит утечки промпта/модели, ложную идентичность, обещания и PII — рискованное уходит на подтверждение человеку, а не клиенту.
- 🖥️ Админ-панель. Каталог услуг, кейсы портфолио, оплаты и реквизиты, стиль общения, скорость ответов, пороги срочности, шаблоны сообщений, ручной перехват диалога.
flowchart LR
A["Клиент пишет вам в личку"] --> B["Telegram Business update"]
B --> C["POST /telegram/webhook"]
C --> D["Lead + ConversationMessage"]
D --> E["Policy gate"]
E --> F["Классификатор интента"]
F --> G{"Что за сообщение?"}
G -->|рабочая тема| H["Очередь BullMQ + человеческая задержка"]
G -->|оффтоп| I["короткий вежливый отказ"]
G -->|"кто ты / какая модель"| J["Human approval"]
G -->|"NDA / договор / скидка"| K["Human takeover"]
H --> L["Бриф / Смета / Оплата"]
L --> M["sendMessage + business_connection_id"]
M --> N["Ответ в реальном чате"]
| Зона | Технологии |
|---|---|
| Backend | Node.js 20+, TypeScript, Fastify |
| БД | PostgreSQL, Prisma |
| Очереди | Redis, BullMQ |
| Валидация | Zod |
| AI | Любой OpenAI-совместимый Chat Completions API (OpenAI, OpenRouter, свой шлюз) |
| Оплаты | YooKassa API + mock-режим |
| Telegram | Официальный Bot API (Business) через fetch |
| Тесты | Vitest, ESLint, TypeScript |
npm installcp .env.example .env # PowerShell: Copy-Item .env.example .envСекреты держим только локально.
.envи.env.localуже в.gitignore. Ничего чувствительного в репозиторий не коммитим.
docker compose up -dПо умолчанию: postgresql://postgres:postgres@localhost:5432/account_agent и redis://localhost:6379.
npm run prisma:generate
npm run prisma:deploy
npm run catalog:seed # демо-каталог услуг
npm run portfolio:seed # демо-кейсы портфолиоnpm run dev
curl http://localhost:3000/healthcloudflared tunnel --url http://localhost:3000 # или ngrok
npm run telegram:set-webhook
npm run telegram:webhook-infoДальше подключите технического бота в Telegram → Settings → Business → Chat automation и дайте ему право читать и отвечать. Проверить всё разом:
npm run setup:doctor
npm run e2e:simulate| Переменная | Зачем |
|---|---|
TELEGRAM_BOT_TOKEN |
токен технического бота |
TELEGRAM_WEBHOOK_SECRET |
секрет вебхука Telegram |
ADMIN_CHAT_ID |
чат для уведомлений и human takeover |
LLM_API_KEY / LLM_MODEL / LLM_BASE_URL |
подключение LLM (OpenAI / OpenRouter / свой шлюз) |
PAYMENTS_MODE |
mock для тестов, yookassa для боевого режима |
YOOKASSA_SHOP_ID / YOOKASSA_SECRET_KEY |
ключи YooKassa (секрет — только в env) |
HUMANIZER_ENABLED / HUMANIZER_MODE |
живое поведение (off / fast / balanced / deep) |
REPLY_HUMANIZE_ENABLED |
текстовый де-робот (срезает AI-штампы) |
REPLY_VALIDATOR_ENABLED |
защитный валидатор ответов (не выключайте в проде) |
BOT_IDENTITY_MODE |
assistant (ассистент, честный disclosure) или owner (пишет от лица владельца) |
STYLE_MEMORY_ENABLED |
RAG по вашим прошлым перепискам (опц.) |
BRAIN_ENABLED |
«думающий» слой Brain 3.0 (опц., по умолчанию off) |
ADMIN_USER / ADMIN_PASSWORD / ADMIN_API_TOKEN |
доступ в админ-панель |
Полный список — в .env.example, там каждый параметр с комментарием.
Два независимых слоя:
- Как ответ доставляется (
Humanizer 2.0) — паузы,typing, отметки о прочтении, дробление на чанки, окно догрупировки сообщений, ночное замедление, follow-up. Настраивается из панели и черезHUMANIZER_*. - Как ответ написан (
Human-voice layer) — детерминированный де-робот + промпт-директива: убирает канцелярит, подхалимаж, дежурные приветствия/подписи и «фальшивую глубину», оставляя конкретику и человеческий ритм.
Оба можно выключить одним флагом и откатиться к «сырому» тексту модели — сырой ответ всё равно проходит защитный валидатор.
- Каждый ответ модели проходит валидатор: утечки системного промпта/названия модели, ложная идентичность, PII и завышенные обещания → уходят человеку на подтверждение, а не клиенту.
- В режиме
assistantбот не выдаёт себя за человека: на прямой вопрос «ты бот?» отвечает честно и передаёт диалог владельцу. Режимowner(ответ от первого лица) включается осознанно самим оператором. - Рискованные темы (жалоба, возврат, суд, договор, NDA, спор об оплате) → human takeover.
- Секреты живут только в
env. Логи содержат идентификаторы (leadId,jobId,paymentId), а не тексты сообщений и ключи.
npm run dev # dev-сервер с hot-reload
npm run build # сборка в dist/
npm run typecheck # проверка типов
npm run lint # ESLint
npm run test # Vitest
npm run setup:doctor # проверка конфигурации перед запуском
npm run e2e:simulate # симуляция полного диалога без Telegram
npm run catalog:seed # сид каталога услуг
npm run portfolio:seed # сид кейсов портфолио
npm run import:telegram # импорт экспорта переписки в память (RAG)src/
agent/ # мозг: классификатор, персона, humanizer, критик, бриф, оффер, follow-up
telegram/ # Telegram Business API, вебхук, polling
payments/ # YooKassa, СБП/перевод, чеки, вебхуки
catalog/ # каталог услуг и цен
portfolio/ # кейсы портфолио и подбор релевантных
memory/ # база знаний и сиды
style-memory/ # RAG: импорт, embeddings, векторный поиск
settings/ # настройки из БД + шаблоны сообщений
admin/ # REST API админ-панели
queues/ # BullMQ воркеры
public/admin/ # веб-панель управления
prisma/ # схема и миграции
scripts/ # сиды, импорт, диагностика, E2E
tests/ # Vitest
Готовый образ публикуется в GitHub Container Registry при каждом релизе:
docker pull ghcr.io/jacksony100/ai-manager:latest
docker run --rm -p 3000:3000 --env-file .env ghcr.io/jacksony100/ai-manager:latestОбразу нужны доступные PostgreSQL и Redis (DATABASE_URL / REDIS_URL). Миграции применяются отдельно: npx prisma migrate deploy.
- Мультиканальность (VK, WhatsApp)
- Больше провайдеров оплат
- A/B тесты сценариев и текстов
- Аналитика воронки в панели
- Docker-образ и деплой в один клик
PR и issue приветствуются. Перед PR: npm run lint && npm run typecheck && npm run test && npm run build.
MIT. Демо-данные (каталог, кейсы, тексты) вымышленные — замените на свои перед боевым запуском.