AI работает 24/7
10 сотрудников · 0 зарплат

Разбор боевой системы

AI-офис: вся компания
в одном окне

Виртуальные сотрудники с должностными и доступом к реальным API. Кабинеты живых людей с задачами и чек-апами. Пульт управления ботами. Не концепт — работающая система, которая ведёт торговую компанию каждый день.

21
страница
39
API-роутов
10
AI-сотрудников
8
фаз сборки
Внизу — готовый скилл для Claude Code: архитектура, код и грабли одним файлом

01Зачем это вообще

Проблема была не в нехватке инструментов, а в их количестве

CRM, кабинеты маркетплейсов, рекламные аккаунты, таблицы остатков, чаты с ботами, задачи в одном сервисе, пароли в заметках телефона. Каждый инструмент по отдельности работает. Вместе они не складываются в картину — и владелец каждое утро собирает её вручную.

Было

  • Пароли от 18 магазинов — в заметках айфона, половина не та
  • «Сколько продали вчера» — зайти в CRM, выставить фильтры, посчитать
  • Боты работают, но что именно они делают и по какому расписанию — только в голове
  • Должностные — устно. Через месяц никто не помнит, о чём договаривались
  • Задача менеджеру — сообщением в чате. Отчёт — тоже сообщением, без структуры
  • «На чём мы остановились по проекту X» — перечитывать переписку

Стало

  • Сейф доступов под AES-шифрованием, открывается только владельцу
  • Продажи за любой период — одна кнопка, данные напрямую из CRM
  • У каждого бота карточка: что делает, откуда берёт данные, когда просыпается, кому пишет
  • Должностная в системе: «что делать» и «чего НЕ делать», правит владелец
  • Задача — форма с обязательными полями. Отчёт по чек-апу нельзя сдать без комментария к провалу
  • Раздел «Проекты»: статус, что решили, что сделали, что на повестке
Главная мысль AI-офис — это не замена CRM и не таск-трекер. Это тонкая надстройка над тем, что уже есть в бизнесе: она собирает разрозненные системы в одну картину и кладёт поверх AI-слой, который умеет в эти системы ходить сам.

02Карта системы

Пятнадцать разделов, каждый закрывает конкретную боль

Порядок в списке — это порядок ценности, а не порядок появления. Если строить с нуля, первые пять дают 80% пользы.

🏢Офис

Главная. Аватары AI-команды сверху, лента живых сотрудников снизу. Клик — в досье или кабинет.

👤Кабинет сотрудника

Портрет, должностная плитками, свои задачи. Владелец смотрит чужой кабинет как сам сотрудник — через параметр в адресе.

🤖Досье агента

Должность, зона ответственности, функции, каналы, источники данных, регламент, кому шлёт уведомления. Плюс живой статус сервиса и его расписание.

💬Чат с сотрудником

Общая история с Telegram: пишешь боту в мессенджере — видно в кабинете, и наоборот. Одна память, один бот.

Задачи и чек-апы

Три типа заданий-форм. Сотрудник проходит по пунктам, сервер не принимает отчёт без комментария к провалу.

🧪Центр назначений

Все задачи + плашки «свободен / занят N» по людям. Выбрал исполнителя — задача упала ему в кабинет, в чат прилетело уведомление.

🎛️Пульт

Живой статус сервисов, все кроны сервера человеческим языком, редактор часов работы ботов с мгновенным применением.

📊Продажи

Периоды из CRM: сегодня, неделя, месяц, новые, отправленные с суммами. Без ручных фильтров.

🏬Ритейл

Паспорт каждой площадки: аккаунт, рекламный кабинет, платёжный профиль, блокеры, следующие шаги. У каждой строки метка достоверности.

🛍️Сейф доступов

Логины и пароли кабинетов под AES-256-GCM. На диске — шифротекст, в браузере — по кнопке «показать» и только владельцу.

🔑Доступы сотрудников

Сменить логин, email, имя, задать новый пароль генератором, отправить доступы. Пароли наружу не отдаются никогда.

📁Проекты

По каждому направлению: статус, сводка «что решили / сделали / на повестке», задачи с приоритетами.

👥HR

Обучающие материалы для новичков и тесты при приёме. Публичная анкета-вакансия с авто-скорингом откликов.

🗓️Календарь

Задачи по срокам: просрочено, сегодня, завтра, на неделе, позже. Плюс встречи из 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-часть выглядит эффектнее. Но именно кабинеты людей превращают систему из витрины в рабочий инструмент: сотрудник заходит туда каждый день.

Должностная инструкция — не простыня, а список функций

📋Структура одного пункта

  • эмодзи-маркер
  • короткое название — «Контроль объявлений»
  • что делать — по строкам, конкретно
  • чего НЕ делать — по строкам

Короткие заголовки дают обзор всей роли на одном экране. Человек видит объём своей работы целиком — это само по себе снимает половину вопросов.

Правит только владелец

🚫Блок «чего НЕ делать» ценнее первого

Именно там живёт то, что обычно передаётся устно и теряется:

  • «Не менять цены без согласования»
  • «Не отмечать пункт зелёным, если фактически не проверял»
  • «Не обещать сроки и скидки, которые не согласованы»
  • «Не спорить с негативом публично — переводить в личку»
Снимает 90% переделок

Требования к кабинету, выведенные из эксплуатации

06Задачи и чек-апы

Задача — это форма, а не строчка в списке

🗂️Карточки товара

Пошаговая форма по позициям: фото + название + цена + описание. Кнопка «Далее» блокируется, пока нет обязательных полей и хотя бы одного фото.

тип cards

🧪Чек-ап

Разделы с пунктами. У пункта статус 🟢 получилось / 🔴 не получилось / 🟡 частично и комментарий. Превращает расплывчатое «протестируй продукт» в отчёт, по которому можно чинить.

тип checkup

📐Конструктор-таблица

Один список, где вперемешку подзаголовки и строки. Владелец двигает и переименовывает, сотрудник заполняет.

тип suppliers

Четыре правила на сервере — каждое выведено из реальной поломки

ПравилоЧто ломалось без него
Комментарий обязателен при 🔴 и 🟡 — сервер отдаёт ошибкуОтчёт «не получилось» без единой зацепки, что именно чинить. Бесполезен
Проверка полноты — только при переходе в «отправлено» и только для исполнителяВалидация на каждом сохранении резала правки владельца в уже сданной работе. Он физически не мог поправить мелочь после менеджера
Сотрудник не может переназначить задачу и сменить её типСервер молча принимал чужие поля из запроса
Сотрудник видит только свои задачи, владелец — всеСписок задач утекал всем вошедшим

Уведомление о новом задании — отдельным сторожем

07Пульт

Управление живыми ботами из браузера

Самая деликатная часть системы. Принцип: сначала видеть, потом менять, и менять только то, что не убьёт продажи.

🟢Живой статус

Состояние каждого сервиса, прочитанное с сервера прямо сейчас. Список сервисов зашит в коде — из запроса приходит только ключ.

⏱️Кроны по-человечески

Все задания сервера с расписанием обычными словами: «каждые 2 часа с 07:00 до 23:00», а не пять звёздочек.

✏️Редактор часов

Меняешь час работы бота в браузере → конфиг обновился → сервис перезапустился → в логе новое время. Секунды, а не правка кода.

Белый список — не формальность Редактировать можно только отчёты и сводки: время и включение/выключение. Всё, что синхронизирует остатки, обновляет сессии, поллит заказы или трогает деньги — залочено, сервер отклоняет правку. Перед каждым изменением расписания рядом кладётся бэкап. Проверено: откат возвращает конфигурацию байт в байт.
Чего в настройки не выносить Латентность бота. «Через сколько секунд отвечает» — это ощущение живого собеседника, оно настраивается один раз при сборке. В интерфейсе показываем функции и расписания, а не секунды.
Порядок, который экономит месяц Сначала read-only просмотр реальных настроек боевого бота — его настоящий системный промпт и таблица вопрос-ответ прямо из файлов сервиса. Владелец видит правду. И только потом — редактирование. Попытка начать с «редактируемых настроек» проваливается: боты берут настройки из кода, и вынос их в общий стор — это около 80% всей работы проекта.

08Данные бизнеса

Офис не хранит данные — он их показывает

Каждая интеграция — тонкий адаптер: дёргает чужой API и возвращает готовый для человека текст. Никаких синхронизаций «к себе в базу» на старте: расхождение витрины и источника убивает доверие быстрее, чем медленный ответ.

🧾CRM

Сегодня / неделя / месяц / новые / отправленные с суммами.

  • Поле суммы часто не то, что кажется: в отчёте нужна «сумма к оплате», иначе выходят нули
  • Источник заказа кодируется числовым id площадки — карту держать в одном месте

📦Площадки

Заказы, товары, остатки, статус агента.

  • Уже есть свой скрипт синхронизации — не переписывать, просто запускать его команды
  • Тяжёлое (анализ склада) читать из кеша, который агент пишет по расписанию, а не считать на каждый запрос

📣Реклама

Расход, кампании, креативы, лиды.

  • Самая полезная команда — сводка по всем кабинетам сразу
  • Токены живут недолго — нужна проверка срока, иначе агент однажды молча начнёт отвечать «нет данных»

📞Телефония

Сегодня, неделя, пропущенные. Пропущенные — самая ценная команда: это прямые деньги.

🗓️Календарь и почта

Если в контуре уже есть сервис с настроенным доступом к Google — проксировать его, а не заводить вторую интеграцию. Меньше согласий, одна точка отзыва.

🎯Лиды

Единственный публичный вебхук: приём заявок с сайтов и рекламных форм. Пишем сразу в файл — лид, который не сохранился, не восстанавливается ниоткуда.

Метка достоверности у каждой строки

МеткаЗначениеКак выглядит
apiпрочитано живым API прямо сейчасзелёная полоса
memoryиз наших записей, доступа к источнику нетжёлтая полоса
noneне заведено / не провереносерая полоса
Дисциплина, а не украшение Метку нельзя повышать без реальной проверки. Без этого через месяц никто не помнит, какие цифры на странице настоящие, а какие переписаны из переписки полгода назад.

09Безопасность

Внутренний инструмент за логином — не оправдание

Офис держит пароли от всех торговых кабинетов, ключ к платному API и умеет выполнять команды на сервере. Это самый ценный объект в компании. Проверка red-team нашла две дыры уровня CRITICAL уже после того, как «всё работало».

Что нашлиКак выгляделоЧем закрыли
CRITICAL — смена пароля владельца анонимомРоут правки пользователей работал без всякой проверкиСерверная сессия + проверка роли внутри роута
CRITICAL — чтение файла с секретамиОбход каталога в отдаче файлов задачи: подстановка .. в параметрыСанитизация каждого сегмента пути, запрет ..
Слив паролей всех магазиновРоут отдавал их без входаРоль владельца + AES-шифрование на диске
Выполнение команд на сервере анонимомРоут работал без входаСессия + фиксированный список команд
Слив кредитов LLM-APIЧат был открыт наружуЕдиный заслон на весь API
Вывод, который стоит запомнить Дыры появляются не там, где пишешь новое, а там, где старый роут пережил введение новой модели доступа. После каждого усиления безопасности прогоняй заново весь список роутов.

Три слоя защиты

1️⃣Серверная сессия

Подписанный токен в httpOnly-cookie, а не отметка в браузере. Секрет — из переменных окружения.

2️⃣Единый заслон

Любой запрос к API без валидной сессии → отказ. Исключения перечислены поимённо и с объяснением почему.

3️⃣Роль внутри роута

Заслон отвечает «вошёл ли», роут — «имеет ли право». Второй замок нужен, потому что при обновлении фреймворка заслон может отвалиться молча.

Шифрование и ключи

Записать и не потерять Потеря ключа шифрования = потеря всех паролей навсегда. Расшифровать нечем. Копия ключа должна лежать в двух местах вне сервера.
Грабля, которая стоила лидов Глобальный заслон на API сломал публичный вебхук приёма заявок — и это не было видно: просто перестали приходить лиды. Полтора часа заявок потеряны безвозвратно. Перед включением заслона найди все публичные вебхуки и исключи их поимённо, потом проверь живым запросом.

10Проекты и память

Решает боль «между сессиями забываю, на чём остановились»

11Найм

Публичная анкета с авто-скорингом

📝Страница-вакансия

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

  • описание роли по-человечески
  • анкета галочками
  • тест по профессии
  • 2–3 открытых вопроса
  • вход по телефону с подтверждением по SMS
Единый источник правды — один файл конфигурации

📊Обзор откликов

Сортировка по баллу пригодности, расшифровка ответов с подсветкой верных, кнопка «скопировать ссылку», звонок, удаление.

  • скоринг: тест ≈45% + профиль ≈55%
  • вердикт 🟢 ≥80 / 🟡 ≥60 / ⚪ ≥40 / 🔴 ниже
Разделять два теста Фильтр — общерыночные знания, до собеседования, гуглить можно. Аттестация — внутренние правила компании, на 3–5-й день работы. Смешивать нельзя: наших правил кандидат знать не может, и тест превращается в лотерею.

12Стек, сервер, деньги

Дёшево содержать и нечему ломаться

⚙️Стек

  • Next.js (App Router) + TypeScript + React
  • Один процесс под менеджером процессов за nginx
  • SSL от Let's Encrypt
  • LLM-мозг — по API

💾Хранилище — файлы

Никакой внешней БД на старте. Данные в JSON-файлах рядом с приложением.

  • мгновенный старт без миграций
  • формат читается глазами — можно починить руками
  • бэкап одним архивом
  • нет класса ошибок «схема разъехалась»

🖥️Сервер

2 ядра / 4 ГБ / 50 ГБ + swap. Держит офис и пять-шесть телеграм-ботов, загрузка памяти около 38%. Больше брать незачем.

Когда переезжать на настоящую БД Офис — это 5–20 пользователей и десятки, а не миллионы записей. Файлы окупаются неделями сэкономленного времени. Цена — нет транзакций: если в файл могут писать двое (офис и бот), пиши через атомарную замену файла. Переезд на Postgres — позже и только если данные реально перерастут.

13Порядок сборки

Восемь фаз. Порядок не декоративный

Каждая следующая фаза опирается на предыдущую. Попытка начать с самого эффектного — редактируемых настроек ботов — проваливается стабильно.

0

Скелет, вход, сессия, заслон

Без заслона на первой же фазе получишь публичный чат и слитые кредиты API.

1

Кабинеты и досье

Витрина. На ней сразу видно, то ли мы вообще строим.

2

Задачи и чек-апы

Первая реальная польза для живых людей.

3

Данные бизнеса, только чтение

Живые цифры = доверие к системе. Пока их нет, всё выглядит макетом.

4

AI-чат с инструментами и оркестратор

Только теперь агентам есть куда ходить — источники подключены на фазе 3.

5

Пульт

Управление тем, что уже работает. Сначала просмотр, потом правка.

6

Сейф, HR, проекты, расходы, календарь

Добивка по реальной потребности, а не «чтобы было».

7

Мост мессенджер ↔ кабинет

«Один бот везде» вместо двойника в вебе.

Почему нельзя строить двойника Соблазн велик: сделать в вебе свой чат с той же ролью, что у боевого бота. Владелец при первом взгляде скажет «это не тот бот» — и будет прав: у двойника своя память и свои настройки, правка его промпта не меняет ничего в боевом сервисе. Нужен один бот везде: сервис пишет историю в общий файл, кабинет её читает и кладёт свои сообщения в очередь, которую бот вычитывает.

14Карта граблей

То, на что уже наступили. Дважды платить незачем

Продуктовые

Технические

Проверка результата

15Повторить у себя

Мы упаковали всё это в скилл для Claude Code

Не пересказ статьи, а рабочий комплект: главный плейбук, семь справочников и семнадцать файлов готового кода — сессия, шифрование, заслон, движок AI-сотрудников, задачи с валидацией, скрипт деплоя, конфиг nginx, мост с мессенджером, сторож уведомлений. Секретов внутри нет, все ключи — заглушки.

ШАГ 1

Скачать файл ниже и распаковать папку ai-office в ~/.claude/skills/

ШАГ 2

Открыть Claude Code в пустой папке проекта и сказать: «собери мне AI-офис»

ШАГ 3

Ответить на вопросы интервью: чем занимается компания, какие роли нужны, какие системы подключать

ШАГ 4

Дальше он идёт по фазам сам и после каждой проверяет результат живыми запросами

Внутри: SKILL.md · 7 справочников · 17 файлов кода-шаблонов · 68 КБ

Сайт создан AI Cortex Academy