← Все статьи
4 июля 20268 минBuilding in publicai агенты · ai команда · claude code · виртуальный офис · building in public · автоматизация

AI-сотрудники как команда: виртуальный офис вместо промптов

Как за 5 недель я построил команду из 15+ AI-агентов с Command Center, MCP-сервером и автономным SEO-пайплайном. Production-кейс, архитектура, инциденты и экономика.

Степан Милахин

Почему один бот не масштабируется

Один Claude-чат это один контекст, одна задача, одна голова. Когда у тебя параллельно SEO, реклама пяти клиентов, продуктовая разработка, аналитика и лиды, ты сам становишься узким горлышком. Не AI тебя тормозит, а ты тормозишь AI.

Я упёрся в это физически: три длинных гайда в неделю на блог, управление Meta/Google Ads кампаниями пяти клиентов, продуктовая разработка M.Sight и M.Flow, мониторинг метрик. Один промпт за раз. Переключение контекста каждые 15 минут. Copy-paste между 47 открытыми вкладками Ads Manager, GA4, GTM. К вечеру мозг в кашу, а половина задач не тронута.

При этом проблема не в возможностях модели. По данным исследований multi-agent систем, 79% провалов связаны со спецификацией и координацией, а не с техническими багами. То есть модель умеет, но ей плохо объяснили что делать, кто за что отвечает и как взаимодействовать. Архитектура решает, а не размер контекстного окна.

Есть принципиальная разница между промптом и агентом. Промпт отвечает на вопрос. Агент действует: у него есть роль, набор инструментов, зона ответственности и жёсткие ограничения. Промпт говорит «вот как сделать SEO-аудит». Агент берёт и делает SEO-аудит: идёт в SERP, анализирует конкурентов, достаёт факты из базы знаний, пишет секцию текста, проверяет на утечки и публикует. Без тебя в цикле.

Эволюция: от промпта к команде за 5 недель

Всё началось с того что я просто не успевал. Не красивая история про визионерство, а бытовое «физически не хватает рук». За 5 недель я прошёл путь от одного чата до оркестрированной команды, и каждый шаг решал конкретную проблему.

L0, стартовая точка. Один Claude-чат, 47 открытых вкладок, ручной copy-paste. Хочешь узнать CPL по кампании, открой Ads Manager, найди кампанию, выгрузи, скопируй в чат, задай вопрос. Повтори для Google Ads. Повтори для GA4. Повтори для каждого клиента. К обеду устал, ничего не сделал.

L1, неделя 1-2: MCP-сервер. Собрал 29 tools в одном stdio-процессе. Meta Ads (7 tools), Google Ads (5), GA4 (3), GTM (5), Instagram (7), M.Flow контекст (2). Вместо 47 вкладок: спросил Claude «какой CPL у Gate City за последнюю неделю», получил ответ. Каждая мутация (пауза кампании, смена бюджета) логируется через withChangeLog. Не чёрный ящик, а аудит-трейл.

L2, неделя 2-3: роли и субагенты. CLAUDE.md стал org chart: Frontend Dev, Backend Dev, Integrations Dev, QA Tester, DevOps, Digital Expert, Digital Analytics Expert, Project Manager. У каждого свои файлы, свои запреты. Frontend Dev never touches backend. Backend Dev never touches frontend files. Не промпт-инженеринг, а менеджмент. Код перестал ломаться из-за того что «один агент полез не в свой файл».

L3, неделя 3-5: автономный конвейер. SEO-отдел из 6 «отделов» с человеческими именами: Тёма (ресёрч), Архип (архитектор), Соня (тексты), Фая (факт-чек и файрвол), Семён (SEO-метаданные), Паша (публикация). 18 этапов, cron пн/ср/пт в 04:00 по Алматы. Первый полностью автономный прогон 04.06.2026: все 14 основных этапов, 17 минут, пост опубликован и анонсирован в Telegram без единого клика. За первые 9 дней, 4 поста вышли без моего участия.

Архитектура виртуального офиса в коде

Никакого пиксель-арта или изометрических комнат на старте. Виртуальный офис в моём случае это CLAUDE.md файл, который работает как org chart и свод правил.

Вот как это устроено. В CLAUDE.md я описываю роли: Frontend Dev, Backend Dev, Integrations Dev и так далее. У каждой роли три вещи: что делает, какие файлы видит, что запрещено. Frontend Dev никогда не трогает бэкенд. Backend Dev никогда не лезет в компоненты. Integrations Dev работает только с OAuth и API-синками. Это не промпт-инженеринг, это менеджмент через текст.

Отдельная история с изоляцией пакетов. В монорепо живут M.Sight, M.Flow и куча инфраструктуры. M.Flow код строго в app/(flow)/, таблицы с mf_ префиксом, утилиты в lib/flow/. M.Sight и M.Flow не импортируют бизнес-логику друг друга. Общие только дизайн-токены и инфраструктура. Когда агент работает над M.Flow, он физически не может сломать M.Sight, потому что зоны ответственности прописаны в CLAUDE.md как запреты.

Три паттерна оркестрации, каждый для своего случая. Субагенты (subagents) для параллельных задач внутри одной сессии: нужно одновременно поискать файлы и прогнать тесты, запускаешь два субагента. Agent Teams для cross-session координации: несколько сессий Claude Code работают параллельно через tmux, каждая со своим контекстом. Custom orchestrator для детерминированных конвейеров с фиксированным порядком. Мой SEO-пайплайн это третий вариант: 18 этапов в строгой последовательности, каждый этап запускается как отдельная Claude-сессия через CLI, результат передаётся следующему.

Конвейер выглядит так: trend-spotter выбирает тему из бэклога, serp-analyzer изучает конкурентов, vault-reader достаёт факты из Obsidian, architect строит outline, section-writer (запускается параллельно N раз) пишет секции, editor склеивает, tov-injector впрыскивает голос, fact-checker проверяет цифры, firewall ищет утечки, meta-writer пишет SEO-мету, linker добавляет внутренние ссылки, dalle-caller генерирует обложку, git-publisher коммитит и пушит. Я подробно разобрал этот конвейер в посте про автономный SEO-отдел на AI-агентах. 15-43 минуты на пост от нуля до прода.

Агент-менеджер: новая роль, а не новый навык

HBR в 2026 году ввёл термин «agent manager» как управленческую роль. Не «инженер который пишет промпты», а менеджер который управляет командой AI-агентов. Ключевой инсайт: domain expertise важнее AI expertise. Лучший менеджер AI-команды это тот кто знает предметную область (маркетинг, продукт, финансы), а не тот кто лучше формулирует промпты.

Мой день агент-менеджера выглядит так. Утро: открываю Command Center, 10 вкладок, проверяю heartbeat-статусы. Ночной SEO-прогон прошёл? Зелёный. Рекламные кампании не обвалились? Зелёный. MCP-сервер жив? Зелёный. Если жёлтый или красный, разбираюсь. День: задачи через Digital Room. Ставлю задачу «проанализируй CPL по всем кампаниям Gate City за неделю», агент прогоняет через MCP, отдаёт результат с рекомендациями. Вечер: ревью AI-креативов, ручная правка стратегии там где нужен человеческий контекст.

Принципиальное правило: write-операции только через подтверждение. Автопилот на бюджеты это красная линия. Агент говорит «CPL Truck Auto вырос на 40% за неделю, рекомендую снизить дневной бюджет на 30%». Я смотрю контекст (может сезонность, может лендинг менялся), и жму кнопку или нет. Это не про недоверие к AI, это про ответственность. Деньги клиента, решение моё.

Масштаб тренда показывает McKinsey: у них уже 20 000 AI-агентов при 40 000 сотрудников. Целятся в паритет 40 на 40. Пока PR-отдел говорит «AI как multiplier, not replacement», цифры показывают буквально 1:1. Роль агент-менеджера перестаёт быть экзотикой и становится стандартной позицией.

Command Center: мониторинг здоровья AI-команды

Без мониторинга AI-команда это чёрный ящик. Ты не знаешь что работает, что упало, что молча сожрало ресурсы. Я понял это на собственном инциденте 10 июня: loop-worker тикал каждые 5 минут вместо часа. Результат: 12 failed runs за 50 минут, каждый по 9 секунд. Не сожгли подписку только потому что runs были короткие.

После этого я построил командный центр с heartbeat-мониторингом: одно место где видно всё. MCP, агенты, cron, инфра. 10 вкладок, auto-refresh 45 секунд. Каждый сервис и каждый агент пингует таблицу studio_heartbeats. Зелёный, жёлтый, красный. Если что-то молчит дольше порога, Telegram-алерт.

SEO Room и Digital Room это воксельные 3D-офисы на three.js. 6 человечков-агентов в разноцветных свитерах: working (сидят за столами, печатают, экраны пульсируют), idle (барабанят, играют в теннис, пьют кофе). Не декорация, а realtime-визуализация статуса через Supabase подписку. Когда Тёма запускает ресёрч, его человечек садится за стол. Когда Соня пишет текст, её экран мерцает.

Confidentiality Firewall зашит прямо в пайплайн: forbidden.yaml с тремя уровнями. Hard block означает что публикация отменяется полностью плюс Telegram-алерт. Soft redaction заменяет названия (BCC превращается в «крупный банк в KZ»). Numeric block ставит на ревью любые конкретные суммы. Агент не должен слить что ты работаешь в банке.

Что ломается и как чинить

Claude CLI разлогинивается раз в 1-2 недели. 22.06 и 24.06 пайплайн молча падал: 14 failed-шагов в каждом прогоне, ноль алертов. Решение: auth-ping ДО startRun, при 401 → Telegram «claude → /login» + код 2 (skip, не failed-run). Конец молчаливым прогонам.

Кросс-платформенность: Mac и Windows имеют несовместимые пути (PATH через : vs ;, разные расположения бинарника claude). CLI парсил sys-prompt как неизвестный флаг и возвращал кашу. 7 failures подряд. Фикс: resolveClaudeEnv() + склейка промптов в один stdin. После этого фикса вышла первая автономная публикация.

Context window explosion: 10 субагентов × 2K токенов = 20K+ до синтеза. Agent teams стоят 3-7x больше токенов чем одна сессия. Прагматичный выбор: custom orchestrator на CLI (бесплатный Max) вместо agent teams API. Каждый этап получает только свой входной контекст, не весь накопленный output предыдущих этапов.

Fallback без recovery path это тихая смерть. Каждый try/catch должен либо восстановить, либо эскалировать. Страховка которая молча глотает ошибку хуже чем crash. Я прошёл через это дважды и теперь у каждого этапа есть явный failure mode: retry (если transient), skip (если non-critical), abort + alert (если critical).

Экономика: AI-команда vs найм

Стоимость AI-стека: Claude Max $100/мес (безлимит), Supabase Free, Vercel Free, MCP-сервер бесплатно (stdio). Итого: ~$100-200/мес вместо $80-120K/мес на найм команды из 5 человек. Разница в 400-600 раз.

Соло-основатели 2026: 36.3% новых венчуров solo-founded. Pieter Levels $3M+ ARR один. Но потолок существует: AI закрывает 80% рутины, 20% (стратегия, отношения, кризисы) съедают 80% энергии. Когда агенты встроены в продуктовую разработку, скорость растёт кратно, но стратегические решения остаются на человеке.

SEO-отдел из 6 агентов = 3 гайда/нед × 52 = 156 постов/год. Наём копирайтера + SEO-специалиста = 400-800K ₸/мес. AI-отдел = 0 ₸/мес (Max уже оплачен для разработки). При этом качество контролируется: fact-checker проверяет цифры, firewall ловит утечки, tov-injector выдерживает голос.

Невидимый труд = невидимая ценность. Когда ты в 23:00 выключаешь сливающую кампанию, клиент об этом не узнаёт. AI-инфраструктура впечатляет тебя, но не клиента. Платит 500К и не видит за что: главный триггер ухода при средних результатах. Решение: «Пульс дня» в Telegram, win-алерты при горячем лиде, понедельничный отчёт на языке денег. Сделай труд видимым.

Практическая карта: как начать

Шаг 1: один CLAUDE.md с ролями. Определи 3-5 ролей вместо одного промпта-на-все-случаи. У каждой роли: что делает, какие файлы видит, что запрещено. Это занимает 30 минут и сразу убирает класс ошибок «агент полез не в свой файл».

Шаг 2: MCP-сервер для инструментов. Начни с read-only tools (получить метрики, прочитать кампании, посмотреть аналитику). Write-tools (пауза кампании, смена бюджета) добавляй только с подтверждением. 29 tools звучит много, но каждый это одна функция на 20-50 строк.

Шаг 3: один автономный пайплайн. Выбери самую повторяющуюся задачу (контент, отчёты, мониторинг) и автоматизируй её. Не agent teams, а простой sequential runner: этап 1 → результат → этап 2 → результат → публикация. Claude CLI + cron + Telegram-алерты.

Шаг 4: heartbeat + алерты. Без мониторинга ты не узнаешь что пайплайн упал. Telegram-бот для уведомлений это 20 строк кода. Таблица heartbeats это одна миграция. Зелёный/жёлтый/красный в дашборде это один React-компонент.

Главное правило: start from single-agent baseline, добавляй агентов только где параллелизм или специализация измеримо улучшают результат. Не строй «AI-отдел из 15 агентов» в первый день. Каждый новый агент должен решать конкретную проблему которая уже болит.

Похожие статьи
Контакты

Расскажите о задаче — посмотрим, по пути ли нам

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