Коллеги! Это дев-команда. Последние пару вечеров мы занимались тем, что любой, кто делал ИИ-агента, узнает с полуслова: «а давайте ещё одного».
Сначала был один support-бот. Потом ему понадобился «начальник» (admin). Потом мы поняли, что та же инфраструктура отлично тащит маркетинговых ботов.
Три разных агента, три роли — но общий мозг, общий слой инструментов и один кошелёк.
Рассказываю, как мы это собрали.
Архитектура: три слоя
У нас вышла трёхслойная конструкция. Каждый слой меняется независимо:
| Слой | Что делает |
|---|---|
| Инференс | Роутер вместо OpenAI/Anthropic (дешёвый) |
| Агенты | Рантайм Hermes с изолированными профилями |
| Инструменты | Один MCP-сервер с ролевым доступом |
Слой 1 — Инференс: наш роутер вместо OpenAI
Все агенты думают через наш собственный OpenAI-совместимый роутер router.mingles.ai. Он стоит поверх децентрализованной сети инференса.
Для агента это три параметра:
- URL —
router.mingles.ai - ключ — ваш API-ключ
- модель — что гоняем (у нас Kimi-класс + два open-weight в fallback)
Меняешь base URL на роутер — и готово. Весь код продолжает работать, просто ходит в другое место. И стоит кратно дешевле.
Бонус: fallback-цепочка. Если модель отвалилась (503), рантайм переключается на следующую в списке. Агент даже не замечает.
Слой 2 — Агенты: рантайм Hermes
Агенты крутятся на Hermes (nousresearch/hermes-agent). Это рантайм, который мы взяли как базу, чтобы не писать оркестрацию диалога с нуля.
Схема: один контейнер → несколько «профилей» → по одному шлюзу (gateway) на профиль. Всё под s6-супервизией.
Каждый профиль полностью изолирован: свой конфиг, своя память, свои сессии и свой Telegram-бот.
Как настраивали:
- Профиль = YAML-файл с моделью, fallback-цепочкой, Telegram-ботом, MCP-сервером.
- Секреты — из окружения, не в гите.
- Каналы: у каждого агента свой Telegram-бот. Support-бот публичный (для всех), admin-бот приватный (allow-list по user id).
- Support дополнительно отдаёт HTTP-эндпоинт для чат-виджета на сайте.
Грабли, которые запомнили:
- провайдер модели должен быть
custom, а неopenai— иначе падает с ошибкой 422. - Telegram-allow-list читается из
.env, а не из конфига. Учли, зашили в скрипт синхронизации.
Итог: добавить агента = накатить новый YAML-профиль и засинкать. Не переписывать систему.
Слой 3 — Инструменты: MCP с ролевым доступом
Самое важное решение: все инструменты живут за одним MCP-сервером. И решает, что агенту можно, не LLM — а сервер.
Как работает:
- каждый агент авторизуется в MCP-сервере bearer-токеном
- каждый токен привязан к роли
- у каждой роли — белый список имён инструментов
- гейт проверяется на стороне сервера, в момент вызова — не в промпте и не в модели
Заджейлбрейканная или запутавшаяся модель физически не может вызвать инструмент, которого роль не даёт.
| Агент | Роль | Что может |
|---|---|---|
| Support | support_escalation | читать аккаунт/usage/ошибки, открывать тикеты, эскалировать на человека |
| Marketing | marketing_partner | только чтение: аналитика роста, партнёрские данные |
| Admin/Ops | admin_executor | привилегированная операционка под гейтом и аудитом |
Добавить возможность = дописать имя инструмента в список роли и пересобрать сервер. Убрать = удалить строку.
Суперспособности под конкретного агента — это просто ещё один MCP-сервер в профиле: база знаний, веб-поиск, браузер, продуктовая аналитика. Маркетинговый агент собрал себе все четыре плюс read-only аналитику — может гуглить и смотреть лендинг, но не трогает биллинг.
Маркетинговые боты: userbot-ферма
Когда есть дешёвый инференс и изоляция профилей, маркетинговый агент — это тот же конструктор, повёрнутый наружу.
Сейчас в работе 3–5 userbot’ов. Каждый:
- отдельный аккаунт со своим прокси-профилем (один аккаунт = один IP)
- своя персона (характер, тон, стиль)
- зашитые лимиты: 5 сообщений в день, рандомные тайминги, постепенный прогрев
- две стратегии: личка и чаты
Всё стекается в мини-CRM: кто ответил, кто прогрет, кого передать живому менеджеру. А думают боты через
router.mingles.ai, поэтому даже живые диалоги на нескольких аккаунтах — не расходы.
Сетевая безопасность
Контейнер с агентами:
- не имеет доступа к БД
- не публикует портов наружу
- исходящие маршруты — только: роутер инференса, Telegram API, изолированный мост к MCP-серверу
- нет
docker.sock, нет shell-инструментов
Все side-effect’ы идут через аудируемые MCP-вызовы.
Принцип: fail closed — при сомнении система отказывает, а не рискует.
Что в итоге
За 2–3 дня мы собрали не «бота», а маленькую экосистему из трёх типов агентов на трёх сменных слоях:
- дешёвый инференс через свой роутер
- изолированные агенты на Hermes
- единый role-gated слой инструментов на MCP
Support отвечает клиентам. Admin присматривает и подключает людей. Маркетинг-боты нативно ведут переписку и наполняют CRM.
Если вы тоже хотите
Если вы агентство, которое делает ИИ-агентов, или вайбкодер с идеей — мысль простая:
Поставьте URL
router.mingles.ai, свой ключ и модель — и считайте не счёт за инференс, а то, что агенты приносят.
Мы пока на ранней стадии, гоняем на 3–5 аккаунтах и собираем цифры. Как нащупаем рабочую связку — поделимся числами. А пока — идите и стройте свою ферму. Мозг для неё уже есть.








