VendorFlow

AI-агент, который по команде из Google-таблицы первым пишет подрядчикам в Telegram, ведёт деловой диалог, собирает цену, сроки и условия — и останавливается на ручную проверку, когда нужно решение человека. Пишет естественно: в рабочее время, с паузами.

Как работает

01

Задача в таблице

Менеджер вписывает логин и задачу, ставит галочку «Запустить». Таблица — единственный вход.

02

Первый контакт

Планировщик сам, в рабочее время и с человеческими паузами, пишет подрядчику первым.

03

Диалог и сбор

Агент задаёт по одному вопросу и извлекает цену, срок и условия из ответов.

04

Фиксация или стоп

Всё собрано → «готово». Нужен человек → «на проверку» и уведомление менеджеру.

Таблица — это и пульт, и CRM

Одна строка — один подрядчик. Слева менеджер задаёт задачу, справа агент сам заполняет статус и собранные данные по ходу диалога.

TelegramЗадачаЗапуститьСтатусЦенаСрокУсловия
@vendor_aролик ~60с ждём ответа 5 000 ₽неделя
@vendor_bнарезка shorts готово 8 000 ₽3 дняпредоплата 50%
@vendor_cсъёмка интервью на проверку
@vendor_dмонтаж свадьбы в очереди

Вся техническая машинерия (история, счётчики, id) спрятана в один служебный столбец _meta — менеджеру глаза не мозолит.

Стоп на ручную проверку

Оценивает смысл, а не стоп-слова

— Сто рублей
⛔ Цена выглядит нереалистично для монтажа. Автоматика остановлена, подрядчику ничего не отправлено, менеджер вызван в Telegram.

Агент извлёк цену, распознал аномалию и вместо того, чтобы вслепую продолжить диалог, передал решение человеку. То же — на просьбу созвона, оплаты, договора или при неуверенности модели.

Инженерные решения

Что важно показать: не мегапромпт, а разделённые ответственности и детерминированный контроль.

Два раздельных вызова LLM

«Можно ли продолжать» (анализ, temperature 0, только JSON) отделено от «что написать» (сочинение). Модель не уговаривает себя продолжить ради связного ответа.

Планировщик — код, не LLM

Рабочие часы, паузы, дневные лимиты. У модели нет часов и памяти между вызовами; когда и можно ли писать — решает детерминированный код.

Безопасность по умолчанию

Dry-run, kill switch, дедуп по логину, идемпотентность первого сообщения. Реальная отправка — только по явному включению.

Стек

Python Telethon aiogram OpenAI / Claude Google Sheets детерминированный планировщик 18 pytest