Разбор боевой системы
Виртуальные сотрудники с должностными и доступом к реальным API. Кабинеты живых людей с задачами и чек-апами. Пульт управления ботами. Не концепт — работающая система, которая ведёт торговую компанию каждый день.
01Зачем это вообще
CRM, кабинеты маркетплейсов, рекламные аккаунты, таблицы остатков, чаты с ботами, задачи в одном сервисе, пароли в заметках телефона. Каждый инструмент по отдельности работает. Вместе они не складываются в картину — и владелец каждое утро собирает её вручную.
02Карта системы
Порядок в списке — это порядок ценности, а не порядок появления. Если строить с нуля, первые пять дают 80% пользы.
Главная. Аватары AI-команды сверху, лента живых сотрудников снизу. Клик — в досье или кабинет.
Портрет, должностная плитками, свои задачи. Владелец смотрит чужой кабинет как сам сотрудник — через параметр в адресе.
Должность, зона ответственности, функции, каналы, источники данных, регламент, кому шлёт уведомления. Плюс живой статус сервиса и его расписание.
Общая история с Telegram: пишешь боту в мессенджере — видно в кабинете, и наоборот. Одна память, один бот.
Три типа заданий-форм. Сотрудник проходит по пунктам, сервер не принимает отчёт без комментария к провалу.
Все задачи + плашки «свободен / занят N» по людям. Выбрал исполнителя — задача упала ему в кабинет, в чат прилетело уведомление.
Живой статус сервисов, все кроны сервера человеческим языком, редактор часов работы ботов с мгновенным применением.
Периоды из CRM: сегодня, неделя, месяц, новые, отправленные с суммами. Без ручных фильтров.
Паспорт каждой площадки: аккаунт, рекламный кабинет, платёжный профиль, блокеры, следующие шаги. У каждой строки метка достоверности.
Логины и пароли кабинетов под AES-256-GCM. На диске — шифротекст, в браузере — по кнопке «показать» и только владельцу.
Сменить логин, email, имя, задать новый пароль генератором, отправить доступы. Пароли наружу не отдаются никогда.
По каждому направлению: статус, сводка «что решили / сделали / на повестке», задачи с приоритетами.
Обучающие материалы для новичков и тесты при приёме. Публичная анкета-вакансия с авто-скорингом откликов.
Задачи по срокам: просрочено, сегодня, завтра, на неделе, позже. Плюс встречи из Google-календаря.
Таблица подписок по месяцам с инлайн-правкой. Видно, во сколько реально обходится вся автоматизация.
03Виртуальные сотрудники
У каждого имя, должность, зона ответственности, набор инструментов с доступом к реальным API компании, расписание работы и память между разговорами. Разница принципиальная: чат-бот отвечает на вопросы, сотрудник идёт и проверяет.
| Роль | Зона ответственности | Инструменты | Когда работает |
|---|---|---|---|
| Управляющий | Оркестратор всей команды. Принимает вопрос владельца и делегирует профильному сотруднику, потом синтезирует ответ | Делегирование + пара обзорных | По запросу в Telegram |
| Маркетплейс-менеджер | Единственная точка истины по продажам и заказам. Синхронизация остатков, приём заказов, отчёты по выручке | CRM + API площадок + таблица остатков | Синк каждые 2 ч, заказы каждые 5 мин, отчёты 11:00 и 20:00 |
| Чат-менеджер | Отвечает клиентам в чатах площадок круглосуточно, эскалирует сложное менеджерам | Чаты площадок, база ассортимента | Поллинг каждые 15 сек |
| Склад-менеджер | Контроль остатков, пороговые уведомления при 10 / 1 / 0 единицах | Таблица остатков | Каждые 2 ч, 07:00–23:00 |
| Аналитик | Сравнение периодов, тренды, аналитика по дневным отчётам | CRM + площадки (только чтение) | По отчётам |
| Таргетолог | Платная реклама: расход, кампании, креативы, захваченные лиды | Рекламные API + лиды | По запросу |
| Оператор call-центра | Звонки, история, пропущенные — то, что напрямую деньги | Телефония | По запросу |
| Маркетолог, контент-менеджер | Стратегия, тексты, визуал. Внешних API нет — честно консультанты | — | По задачам |
| Личный ассистент | Голосовой вход в тот же пульт: календарь, задачи, продажи, финансы, почта. Экран — офис, голос — ассистент, мозг общий | Календарь, карты, задачи, банк, почта, мессенджер | Утренняя сводка + по запросу голосом |
04Как устроен один агент
Пишется как должностная человеку: контекст бизнеса, его объекты, список инструментов, правила, формат ответа. Не «ты полезный ассистент».
Тонкие обёртки над своими же роутами. Один инструмент = одна система, параметр всегда из фиксированного списка.
Когда просыпается сам. Вынесено в конфиг, который бот перечитывает на каждой итерации — меняется из браузера.
Файл на агента + инструмент «запомни». Срабатывает на «всегда делай», «важно», «не забудь». Подмешивается в промпт следующего разговора.
У управляющего один ключевой инструмент — ask_agent(кому, вопрос). Он запускает полный вложенный цикл у нужного сотрудника: его промпт, его инструменты, его память — и возвращает ответ подписанным.
Владелец: «как дела?»
│
▼
Управляющий ──► ask_agent('sales', 'продажи за сегодня') ──► CRM
│ ──► ask_agent('chat', 'что с клиентами') ──► чаты
│ ──► ask_agent('ads', 'расход по рекламе') ──► кабинеты
│ (три делегирования выполняются параллельно)
▼
Синтез в один брифинг
command: {
type: 'string',
enum: ['today', 'week', 'month', 'new', 'shipped'],
description: 'today=за сегодня, week=за 7 дней, month=за 30 дней,
new=новые необработанные, shipped=отправленные сегодня с суммами'
}
05Живые сотрудники
AI-часть выглядит эффектнее. Но именно кабинеты людей превращают систему из витрины в рабочий инструмент: сотрудник заходит туда каждый день.
Короткие заголовки дают обзор всей роли на одном экране. Человек видит объём своей работы целиком — это само по себе снимает половину вопросов.
Правит только владелецИменно там живёт то, что обычно передаётся устно и теряется:
06Задачи и чек-апы
Пошаговая форма по позициям: фото + название + цена + описание. Кнопка «Далее» блокируется, пока нет обязательных полей и хотя бы одного фото.
тип cardsРазделы с пунктами. У пункта статус 🟢 получилось / 🔴 не получилось / 🟡 частично и комментарий. Превращает расплывчатое «протестируй продукт» в отчёт, по которому можно чинить.
тип checkupОдин список, где вперемешку подзаголовки и строки. Владелец двигает и переименовывает, сотрудник заполняет.
тип suppliers| Правило | Что ломалось без него |
|---|---|
| Комментарий обязателен при 🔴 и 🟡 — сервер отдаёт ошибку | Отчёт «не получилось» без единой зацепки, что именно чинить. Бесполезен |
| Проверка полноты — только при переходе в «отправлено» и только для исполнителя | Валидация на каждом сохранении резала правки владельца в уже сданной работе. Он физически не мог поправить мелочь после менеджера |
| Сотрудник не может переназначить задачу и сменить её тип | Сервер молча принимал чужие поля из запроса |
| Сотрудник видит только свои задачи, владелец — все | Список задач утекал всем вошедшим |
07Пульт
Самая деликатная часть системы. Принцип: сначала видеть, потом менять, и менять только то, что не убьёт продажи.
Состояние каждого сервиса, прочитанное с сервера прямо сейчас. Список сервисов зашит в коде — из запроса приходит только ключ.
Все задания сервера с расписанием обычными словами: «каждые 2 часа с 07:00 до 23:00», а не пять звёздочек.
Меняешь час работы бота в браузере → конфиг обновился → сервис перезапустился → в логе новое время. Секунды, а не правка кода.
08Данные бизнеса
Каждая интеграция — тонкий адаптер: дёргает чужой API и возвращает готовый для человека текст. Никаких синхронизаций «к себе в базу» на старте: расхождение витрины и источника убивает доверие быстрее, чем медленный ответ.
Сегодня / неделя / месяц / новые / отправленные с суммами.
Заказы, товары, остатки, статус агента.
Расход, кампании, креативы, лиды.
Сегодня, неделя, пропущенные. Пропущенные — самая ценная команда: это прямые деньги.
Если в контуре уже есть сервис с настроенным доступом к Google — проксировать его, а не заводить вторую интеграцию. Меньше согласий, одна точка отзыва.
Единственный публичный вебхук: приём заявок с сайтов и рекламных форм. Пишем сразу в файл — лид, который не сохранился, не восстанавливается ниоткуда.
| Метка | Значение | Как выглядит |
|---|---|---|
| api | прочитано живым API прямо сейчас | зелёная полоса |
| memory | из наших записей, доступа к источнику нет | жёлтая полоса |
| none | не заведено / не проверено | серая полоса |
09Безопасность
Офис держит пароли от всех торговых кабинетов, ключ к платному API и умеет выполнять команды на сервере. Это самый ценный объект в компании. Проверка red-team нашла две дыры уровня CRITICAL уже после того, как «всё работало».
| Что нашли | Как выглядело | Чем закрыли |
|---|---|---|
| CRITICAL — смена пароля владельца анонимом | Роут правки пользователей работал без всякой проверки | Серверная сессия + проверка роли внутри роута |
| CRITICAL — чтение файла с секретами | Обход каталога в отдаче файлов задачи: подстановка .. в параметры | Санитизация каждого сегмента пути, запрет .. |
| Слив паролей всех магазинов | Роут отдавал их без входа | Роль владельца + AES-шифрование на диске |
| Выполнение команд на сервере анонимом | Роут работал без входа | Сессия + фиксированный список команд |
| Слив кредитов LLM-API | Чат был открыт наружу | Единый заслон на весь API |
Подписанный токен в httpOnly-cookie, а не отметка в браузере. Секрет — из переменных окружения.
Любой запрос к API без валидной сессии → отказ. Исключения перечислены поимённо и с объяснением почему.
Заслон отвечает «вошёл ли», роут — «имеет ли право». Второй замок нужен, потому что при обновлении фреймворка заслон может отвалиться молча.
10Проекты и память
11Найм
Публичная, без авторизации — ссылку шлют кандидатам.
Сортировка по баллу пригодности, расшифровка ответов с подсветкой верных, кнопка «скопировать ссылку», звонок, удаление.
12Стек, сервер, деньги
Никакой внешней БД на старте. Данные в JSON-файлах рядом с приложением.
2 ядра / 4 ГБ / 50 ГБ + swap. Держит офис и пять-шесть телеграм-ботов, загрузка памяти около 38%. Больше брать незачем.
13Порядок сборки
Каждая следующая фаза опирается на предыдущую. Попытка начать с самого эффектного — редактируемых настроек ботов — проваливается стабильно.
Без заслона на первой же фазе получишь публичный чат и слитые кредиты API.
Витрина. На ней сразу видно, то ли мы вообще строим.
Первая реальная польза для живых людей.
Живые цифры = доверие к системе. Пока их нет, всё выглядит макетом.
Только теперь агентам есть куда ходить — источники подключены на фазе 3.
Управление тем, что уже работает. Сначала просмотр, потом правка.
Добивка по реальной потребности, а не «чтобы было».
«Один бот везде» вместо двойника в вебе.
14Карта граблей
15Повторить у себя
Не пересказ статьи, а рабочий комплект: главный плейбук, семь справочников и семнадцать файлов готового кода — сессия, шифрование, заслон, движок AI-сотрудников, задачи с валидацией, скрипт деплоя, конфиг nginx, мост с мессенджером, сторож уведомлений. Секретов внутри нет, все ключи — заглушки.
Скачать файл ниже и распаковать папку ai-office в ~/.claude/skills/
Открыть Claude Code в пустой папке проекта и сказать: «собери мне AI-офис»
Ответить на вопросы интервью: чем занимается компания, какие роли нужны, какие системы подключать
Дальше он идёт по фазам сам и после каждой проверяет результат живыми запросами
Внутри: SKILL.md · 7 справочников · 17 файлов кода-шаблонов · 68 КБ