Новость · 01 мая 2026 · служебное

Я перестал помнить какие у меня агенты вообще есть. Собрал дашборд.

34 агента из моих проектов в одном каталоге: статусы, артефакты, история запусков. FastAPI, SQLite и Caddy в Docker, приём событий по HMAC.

К концу апреля я не мог с ходу ответить, что у меня вообще автоматизировано. 12 публикаторов в кайт-школе, funnel-bot и remote-bridge, CRM-планировщик и sync в Google Sheets, routine VK Ads на claude.ai, 5 субагентов Claude Code (вспомогательных агентов, которых основной запускает под отдельную задачу), плюс MWB-генераторы. Десятки штук разнесены по 3 серверам. Сегодня я собрал один экран: agents.kulievvb.ru.

С чего началось Контроль рассыпан, агентов больше чем памяти

Пока автоматизаций 5, ты помнишь их по именам. На 15 уже заводишь README с табличкой. А на 30+ этот README устаревает в тот же день, когда ты его дописал. Я ловил себя на том, что ssh-юсь в три сервера подряд, просто чтобы посмотреть, жив ли агент Х. Журнал доходов из CRM сегодня синкнулся? Funnel-bot ещё работает? Когда последний раз публиковался Дзен? И главное: какие агенты у меня вообще есть.

На рынке выбор такой: либо платные оркестраторы вроде n8n или Temporal, избыточные для одного человека, либо самодельные dashboards под конкретный стек, зашитые в один проект. Мне же нужно было нечто универсальное, что принимает события от любого агента на любом языке через один HTTP-вызов и складывает их в один экран.

Что собрано Single-pane-of-glass на 44 агента

●

Каталог

44 агента из 4 проектов (Кайтек, Кайтек CRM, MWB, личное). У каждого свои name, project, kind, host, purpose, trigger. Источник истины один: YAML-файл, который синкается при старте.

●

События

started → finished/error, плюс produced для артефактов (TG-пост, VK-пост, sheet-row, отчёт). Артефактом я называю конкретный результат работы агента: ссылку на пост, строку в таблице, готовый файл. Приём событий идёт по HMAC-подписи, без аутентификации сессии.

●

Статусы

running / ok / idle / stale / error. Pills сверху каталога считают агентов в каждом состоянии, и сразу видно, что половина простаивает уже больше 2 дней.

●

Артефакты

Лента последних 20 «что произведено»: конкретные ссылки на TG-посты, VK-публикации, сгенерированные отчёты. Видно, куда пошла работа сегодня.

●

7-дневная статистика

На странице каждого агента видно, сколько раз он запускался за неделю, сколько было ошибок, и историю последних 50 запусков. Без графиков, цифрами.

●

Helper в 200 строк

report.py на stdlib, копируется в любой проект как один файл. Контекст-менеджер with reporter.run() сам шлёт started/finished, а при исключении отправляет error с traceback.

Стек Минимум технологий, максимум изоляции

Хост. Тот же Timeweb-сервер (арендованный виртуальный, VPS), на котором уже крутится KiteTech CRM. Поднимать отдельную VPS под мониторинг бессмысленно, на CRM-сервере свободно 80% ресурсов. Правило одно: не трогать чужие контейнеры. Дашборд добавлен сервисом dashboard в существующий docker-compose.yml, рядом с CRM-стеком, на отдельном внутреннем порту 8077.

Стек. FastAPI + SQLAlchemy + Jinja2 + SQLite. Всё. SQLite держит до 100k событий без проблем — больше я физически не сделаю руками. Никаких Postgres, Redis, очередей.

TLS. Caddy уже стоял для CRM, дописал рядом блок agents.kulievvb.ru, и сертификат от Let's Encrypt выпустился через ACME за 6 секунд.

Безопасность. Basic Auth на UI (только я смотрю), HMAC SHA-256 на приёме событий (любой агент подписывает их своим секретом). Открытых endpoint'ов нет, сессий тоже, токены в куках не лежат.

Сегодняшнее открытие Каталог оказался полезнее мониторинга

Когда агенты попали в один YAML с полем purpose, я наконец увидел, что половина из них дублируется по функции. Один TG-публикатор на VPS, второй на локалке, оба пишут в один и тот же канал, просто исторически собирались в разное время. Дашборд их не лечит, но показывает.

То же самое с триггерами. Часть агентов запускается через systemd, часть через cron, часть через Windows Task Scheduler, часть кликом в UI Claude Cloud. Когда я начал заполнять поле trigger, выяснилось, что я не помню, как некоторые из них вообще стартуют. Для владельца автоматизаций это самый неприятный диагноз.

Подключение Один файл, три строки кода

Helper report.py копируется в проект агента как обычный модуль. Никакого pip, никаких зависимостей кроме stdlib.

from report import Reporter

reporter = Reporter(
    agent_id="my_project.thing",
    secret=os.environ["AGENTS_DASHBOARD_HMAC"],
)

with reporter.run():
    do_work()
    reporter.produced(
        type="tg_post",
        url="https://t.me/...",
        title="Пост 824",
    )

Контекст-менеджер сам пошлёт started в начале и finished с exit_code=0 в конце. При исключении отправит error с последними 5 строками traceback и пробросит его дальше. Сетевые сбои проглатываются, так что агент не падает из-за того, что дашборд не ответил.

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

Шесть агентов news-pipeline (orchestrator, researcher-news, researcher-mwb, copy-editor, publishing-director, tg-publisher) рапортуют в дашборд каждый запуск. В каталоге видно, когда агент последний раз отрабатывал, что произвёл (этот пост попал в дашборд как артефакт news_post с url на kulievvb.ru/news/agents-dashboard/), и сколько раз сработал за неделю.

Когда что-то сломается, я увижу либо алерт в моём личном Telegram-чате (отдельный канал @MWBclub только для постов, ошибки идут отдельным DM), либо просто статус error в pills сверху дашборда. Пересборку пока запускаю вручную, но архитектура позволяет добавить webhook «retry» в v2.

Что не вошло в v1 Намеренные дыры

  • Нет live SSE / websockets. Для одного пользователя перезагрузка страницы вполне годится.
  • Нет кнопки «Run now». Это уже оркестратор, а не дашборд. Понадобится, вынесу отдельным сервисом.
  • Нет графиков. Только числа. Графики начинают врать на small-N выборках.
  • Нет multi-user. Один Basic Auth, никаких ролей.
  • Нет pull-сборщика. Только push от агентов. Если агент молчит, он либо сломан, либо ничего не делает, и в обоих случаях это повод посмотреть.
  • Нет хранения логов. Только excerpt traceback в error_text. Полный лог остаётся у самого агента.

Если у вас 10+ автоматизаций и вы не помните какие — мы построим вам такой же.

Это базовая инфраструктура для любого, у кого больше 5 ботов/cron-задач/n8n-flow в работе. Стоит дешевле потерянного времени на ssh по серверам.

Обсудить дашборд для своих агентов →
Владимир Кулиев

Об авторе

Меня зовут Владимир Кулиев. Сначала я занялся вайбкодингом сам: собрал себе сайты, ботов и автоматизацию. Теперь делаю такое же для клиентов.

  • 13 лет веду свою кайт-школу, 2000+ клиентов
  • Собрал публикатор для нескольких площадок и Telegram-бота с метками для рекламы
  • Настраиваю Яндекс Директ и Яндекс Бизнес
  • Строю SEO-систему для собственного сайта

Что собрал

Все кейсы

Клиентов показываю без названий.

Какой продукт вам нужен

Выберите свою ситуацию, покажу, что подходит и сколько стоит.

Начните с доступа

Гайд про регистрацию и оплату Claude из России: текст со скриншотами, что делать, если не проходит карта.

Схематично: вопрос про доступ и ответ из гайда

Группа, один на один или установка

Вы собираете своё, я рядом: в Zoom с группой или лично.

Схематично: встреча в Zoom

Сделаю за вас

Разработка и ведение под ваш процесс. Типовые сайты и боты лежат в услугах.

Схематично: выбор задачи

Помочь выбрать продукт

Сделать самому

Гайды, уроки и шаблоны без живой поддержки, в своём темпе.

  • Гайд «Старт с Claude»

    Регистрация в Claude из России: номер, почта, оплата и защита от бана.

    Что внутри

    • 15 глав текстом, около 3,5 часа
    • VPN, оплата картами и USDT
    • Модели, проекты, артефакты
    990 ₽ разово
  • Гайд «Claude Code глубже»

    Sub-агенты, hooks и MCP-серверы. 10 глав, доступ навсегда.

    Что внутри

    • 10 глав, около 6-7 часов
    • MCP-серверы, скиллы, Computer Use
    • Cron и бенчмарк моделей
    990 ₽ разово
  • Семь уроков по вайбкодингу

    Лендинг, Telegram-бот и парсер данных на Claude Code. Без поддержки.

    Что внутри

    • Около 4 часов
    • Установка, промпты, отладка
    • Безопасность и секреты
    1 490 ₽ разово
  • 12 готовых шаблонов

    Заготовки для Claude Code, MCP и n8n, чтобы не собирать с нуля.

    Что внутри

    • CLAUDE.md и промпт-паки
    • Конфиги MCP и сценарии n8n
    • Обновления без подписки
    4 990 ₽ разово

Работать со мной

Практикум и менторство я веду сам. Группа идёт неделю, менторство один месяц.

  • Практикум на неделю

    Группа 8-10 человек в Zoom, 7 встреч по 2 часа. За неделю собираете бота, сайт и таблицу-CRM на своём сервере.

    Что внутри

    • Лендинг, Telegram-бот, Google Sheets
    • Деплой на сервер и безопасность
    • Записи встреч остаются у вас
    15 000 ₽
  • Менторство один на один

    Четыре встречи по 2 часа за месяц на вашем проекте, всего 8 часов. Беру двух человек одновременно.

    Что внутри

    • Бриф и разбор вашего стека
    • Личный чат в Telegram
    • Запись каждой встречи
    72 000 ₽ за месяц

Разработка под заказ

Если делать самому некогда, я собираю и веду систему за вас.

  • Кастомная разработка

    CRM, платежи и связка систем под ваш процесс. Стандартные боты и ИИ-агентов беру как услугу.

    Что внутри

    • Бриф и разбор задачи до договора
    • Договор, оплата этапами 50% и 50%
    • 4 недели сопровождения после сдачи
    Цена по согласованию
  • Абонемент на ведение

    Помесячное ведение собранной системы: правки, новые сценарии, отчёт.

    Что внутри

    • Три тарифа: 20 000, 35 000 и 60 000 ₽ в месяц
    • Реакция в течение рабочего дня
    • Договор помесячный
    от 20 000 ₽ в месяц

Остались вопросы по новости?

Напишите мне в Telegram: подскажу, с чего начать. Или оставьте заявку, я отвечу сам.

Claude CodeChatGPTAntigravityVS CodeGeminiCodexGigaChatYandexGPT
Хватайте и бросайте

Или оставьте контакты, я свяжусь

Напишите, что хотите разобрать или настроить.

Данные нужны только для ответа вам

Форма работает с включённым JavaScript. Напишите мне в Telegram или позвоните +7 909 457‑10‑62.