ИИ-консультант на сайте
запущен в октябре 2026Chatwoot + ИИ-бот, который считает изделия и передаёт разговор менеджеру. Точка отсчёта: ~30% писем отвечались в течение часа.
Telegram-ассистент сотрудников: пишешь или наговариваешь задачу — агент сам ищет и правит заметки в базе знаний, собирает отчёт по рекламе и трафику, готовит рекламную кампанию, заполняет карточку товара на сайте и загружает фото, отвечает на вопросы по заказам из OMS.



Человек пишет или наговаривает задачу в Telegram, агент на LLM выполняет её своими инструментами и отвечает текстом или голосом. База знаний — папка заметок Obsidian, которую владелец правит с ноутбука и телефона: в ней же лежат профили пользователей (само наличие файла даёт доступ), личная память и план каждого, скиллы и черновики рекламных кампаний.
Повторяющиеся задачи человек записывает в свой план, и бот выполняет их по расписанию и присылает результат. Новую рекламную кампанию агент только готовит — публикует её человек кнопкой.
Ещё: 9 команд Telegram · 61 коммит · 5 LLM-провайдеров.
У агента 51 инструмент. Если показывать все сразу, каждый запрос тащит десятки схем и модель путается в выборе. Инструменты сгруппированы в именованные наборы; набор, выданный в профиле, виден с первого шага, набор, выданный через скилл, открывается только после того, как агент сам откроет SKILL.md — инструкция и инструменты приходят вместе. Граница доступа — сама выдача: невыданный набор даже не собирается.
Создание кампании — единственный шаг, где ошибка агента незаметно плодит дубль и запускает расход с нуля. Поэтому агент готовит черновик в базе знаний и присылает кнопку, а публикатор перечитывает файл в момент нажатия — уходит ровно то, что человек в нём оставил. Всё, что касается уже существующей кампании — ставки, включение, тексты, бюджет, — прямые инструменты с отдельным правом, потолком ставки и честным отчётом об ошибке по каждому объекту. Публикатор умеет продолжать после сбоя: каждый созданный id сразу пишется в базу, повторное нажатие досоздаёт только недостающее.

Задачи — обычный текст в плане каждого пользователя, который правится в Obsidian с телефона, а не таблица в базе. Раз в минуту тик разбирает планы и захватывает созревшую задачу через INSERT … ON CONFLICT DO NOTHING — задача не запустится дважды даже при наложении тиков, и брокер очередей для этого не нужен. Упавшая задача перезахватывается до лимита попыток, после простоя выполняется только последнее пропущенное повторение. Задача идёт под профилем владельца и с его памятью, результат приходит ему же.

Перегрузка провайдера при стриминге приходит событием внутри ответа 200, и ретраи транспорта её не видят. Обёртка модели повторяет один запрос внутри агентного цикла с экспоненциальной задержкой и общим бюджетом времени; уже выполненные инструменты — запись в базу знаний, ставка в рекламе — не повторяются, заново идёт только упавший вызов модели.
Агент загружает на сайт файлы из базы знаний, но модель никогда не держит байты: инструмент принимает только путь, Python сам читает файл, проверяет формат и размер и вызывает MCP сайта, а модель получает id, ссылку и размер. Модели показывается превью не больше 1200 px, на сайт уходит оригинал байт-в-байт; повтор отсекается по хэшу.