Чем MultiAgent отличается от Agent?
Pastukhov Agent работает с одним проектом в изолированном контейнере. MultiAgent — центральный пульт над флотом экземпляров Agent: развёртывание, обновление, контроль, аналитика и бэкапы — всё из одного окна, сколько бы серверов и фабрик у вас ни было. Agent решает задачи, MultiAgent управляет армией агентов.
Чем сервер отличается от фабрики?
Сервер — это физическая машина, к которой MultiAgent подключается по SSH, или локальный дистрибутив WSL на вашем компьютере. Сервер заводят один раз в разделе «Активы → Серверы», и он помнит адрес, порт, логин и пароль или ключ. Фабрика — место, где собираются и работают агенты: своя внутренняя сеть, папки, общий Postgres, Git-сервер, Nginx, домашняя страница, бренд и лицензия. На одной машине можно держать несколько фабрик, и у каждой свой слаг — он задаёт имена контейнеров и папок, поэтому фабрики не мешают друг другу. Подключение у них общее: пароль или ключ меняется один раз и сразу действует на все фабрики этой машины. Подробнее — на страницах Серверы и Фабрики.
Какие продукты можно разворачивать на фабриках?
Одиннадцать готовых шаблонов — от самого «Мультиагента» (порт 6000) до «Портала» (6100): исследовательский (6010), аналитический (6020), агент данных (6030), прокси (6040), чатбот (6050), телеграм (6060), тесты (6070), CRM (6080), новости (6090) и портал (6100). Каждый занимает свой порт, а в диалоге «Новый агент» карточка шаблона подписана коротким именем — «Аналитика», «Данные», «Прокси». Полный список с описаниями и переменными — на странице Продукты.
Что такое «Менеджмент»?
«Менеджмент» — раздел для тех, у кого агентов много, а смотрят за ними один-два человека. Он собран по принципу исключений: пока всё в порядке, пульт почти пуст. Как только агенту нужно ваше решение или что-то пошло не так, это всплывает наверх с коротким объяснением. Раздел устроен так: корневой экран «Флот» и восемь пунктов его списка: «Токены», «Стоимость», «Скорость», «Чаты», «Оборудование», «Агенты» (бывший «Реестр»), «Решения» и «Инциденты» (бывшая «Готовность»). Все они отвечают на три вопроса: всё ли в порядке, что ждёт человека и куда уходят деньги. «Флоты» и «Политики» переехали в «Активы»: это настройка, а не ежедневная работа. Решения собираются в одной очереди с ограничением по времени на ответ, а лишнюю запись можно скрыть одним действием: она уйдёт из очереди, ничего не решая. Подробнее — на странице Менеджмент.
Что такое «Оборудование»?
Это экран «Менеджмент → Оборудование»: одна строка на каждую физическую машину с живой нагрузкой. В строке — доля процессора, доля памяти и занятое место на дисках, а рядом плашки фабрик этой машины. Числа обновляются каждые 15 секунд; пока ответ не пришёл, на месте значения стоит прочерк, а не крутилка. Выбранный флот сужает список до нужных машин. Клик по адресу открывает страницу машины: ядра, память и подкачка, диски, средняя нагрузка, время работы и графики за время, пока страница открыта. Процессор и память считаются как сумма контейнеров — те же числа, что показывает панель Docker, — а диски, нагрузка и время работы берутся с самой машины. Подробнее — на странице Оборудование.
Что такое «Задачи»?
Это очередь долгих работ по всем серверам: развёртывание и пересоздание агентов, обновления, установки, переносы и другие операции, которые идут не мгновенно. Живой журнал показывает, что происходит прямо сейчас, а любую работу можно остановить одной кнопкой. Записи хранятся неделю, всего в списке держится две тысячи последних; работы одного сервера идут строго по одной, а работы сразу по всему флоту — отдельной полосой. Открывается очередь кнопкой «Задачи (N)» в подвале боковой панели — на ней же видно, сколько работ идёт и ждёт. Подробнее — на странице Задачи.
Какие требования к управляемым серверам?
На каждой машине сначала заводится сервер — запись с адресом и доступом, — а на нём создаются фабрики. Управляемые серверы — Linux (Ubuntu/Debian) с SSH-доступом и правами root/sudo. Docker и все зависимости установит сам MultiAgent — одной кнопкой прямо из интерфейса, вручную ставить ничего не нужно. А если MultiAgent стоит на Windows, агентов можно держать и на самом компьютере: добавьте сервер с типом подключения «Локальный WSL» — без пароля и ключа.
Где хранятся данные?
Сам MultiAgent хранит всё в отдельной папке-томе /data: базу SQLite (или PostgreSQL, если указан MULTIAGENT_DATABASE), ключи шифрования и лицензию. Данные фабрик лежат в настраиваемых папках — docker, домашняя страница, данные, проекты и инструменты. Корни этих папок собираются из слага развёртывания фабрики: по умолчанию это /root/agents/…, а если на одной машине живёт несколько фабрик, каждой задаётся свой слаг.
Как обеспечивается безопасность?
SSH-ключи, пароли агентов и API-ключи шифруются в базе — ключи шифрования хранятся в /data/keys и не покидают машину, на которой стоит MultiAgent. Программный доступ (Agent API) закрыт ключом X-API-Key и работает только если задан отпечаток ключа в переменной окружения MULTIAGENT_HASH; вход для человека и программный доступ разделены. Проверка входа человека — по токену на 90 дней: сессия панели не обрывается при обновлении профиля. Столько же живёт сессия центрального входа на фабрике, а завершить её сразу на всех устройствах можно на вкладке «Авторизация».
Можно ли управлять уже работающими агентами?
Да. MultiAgent умеет импортировать агентов: он сканирует фабрику, находит существующие контейнеры агентов и регистрирует их без пересоздания. Все чаты, проекты и данные остаются на месте.
Открыты ли порты агентов в интернет?
Нет. Новые агенты, приложения и инструменты появляются с частным портом: снаружи он не отвечает, а доступен только через nginx этой фабрики — по подпапке — и с самой машины. Так фабрики на одном компьютере не видны друг другу. Открыть порт наружу можно переключателем «Публичный порт» — вкладка «Порты» у агента и приложения или строка порта у инструмента. Два порта публичны всегда и переключателя не имеют: HTTP/HTTPS самого nginx — это входная дверь ко всем приложениям фабрики — и порт службы резервного копирования, по которому бэкапы забирают другие машины. Общий Postgres, наоборот, всегда закрыт.
Нужен ли отдельный домен каждому агенту?
Нет. На каждой фабрике MultiAgent ставит свой Nginx-контейнер (agents-nginx), который раздаёт все приложения по подпапкам одного домена: каждый агент, продукт и инструмент получает адрес вида https://ваш-домен/имя/. Домен и SSL-сертификат настраиваются один раз — для подпапок ничего отдельно настраивать не нужно, а в корне / nginx отдаётся домашняя страница фабрики с карточками приложений. Подробнее — на странице Nginx-роутинг.
Как работает Nginx-роутинг и нужен ли свой сертификат?
Сертификаты трёх видов выдаются во вкладке Nginx страницы фабрики: самоподписанный (по умолчанию), собственная пара PEM или Let’s Encrypt через ACME — для последнего нужен ваш домен. Без домена достаточно самоподписанного: браузер один раз попросит подтвердить его, дальше соединение шифруется. Если домен есть — удобнее Let’s Encrypt: он выдаётся по webroot-методу через сам nginx и автоматически обновляется при обновлении конфигурации маршрутов. Если порт HTTPS ещё не задан, успешный запрос Let’s Encrypt сам включает его (443) — сертификат сразу начинает обслуживаться. Когда защищённый режим включён локально, весь HTTP — включая подпапки маршрутов — перенаправляется на HTTPS (исключение — только путь проверки ACME); за верхним обратным прокси, который снимает TLS, подпапки продолжают отдаваться и по HTTP, так как браузер уже работает по HTTPS у прокси.
Что такое центральный вход (единый вход в приложения фабрики)?
Центральный вход — единый вход для приложений одной фабрики (Authelia). Он устанавливается на вкладке «Авторизация» страницы фабрики, и у него свой адрес — {база}/auth/. Пока он активен, агенты и продукты закрываются «за центральным входом» по умолчанию, а инструменты с веб-интерфейсом и свои маршруты — по вашему выбору: посетитель входит один раз и дальше открывает любое защищённое приложение фабрики без повторного логина. Для работы входа нужен HTTPS — сертификат и порт на вкладке Nginx либо поле «Публичный адрес» на вкладке «Общее», когда TLS снимает верхний обратный прокси. Обращение напрямую по адресу host:port в обход nginx сохраняет у приложения собственный вход. Подробнее — на страницах Фабрики и Nginx-роутинг.
Можно ли входить в Forgejo без отдельного пароля?
Да. Forgejo подключается к центральному входу сам, как только вход установлен, защита работает и Forgejo запущен, — никакого переключателя включать не нужно. На странице входа Forgejo появляется кнопка входа через центральный вход, а первый такой вход заводит аккаунт из личности центрального входа; логин и пароль администратора синхронизируются кнопкой «Синхронизировать авторизацию». Если условия пропадают, кнопка входа исчезает сама, а собственные учётные записи Forgejo продолжают работать. Учтите: применение настроек центрального входа завершает сессии агентов и приложений — после него нужно войти заново.
Как выйти из всех приложений разом?
На домашней странице фабрики есть угловая кнопка «Выйти». Она ведёт на страницу подтверждения, после которого происходит выход из центрального входа, из всех агентов и продуктов (их токены удаляются) и из самой домашней страницы.
Что показывает кнопка проверки на странице фабрики?
Кнопка «Проверить и исправить» на странице фабрики открывает чек-лист состояния служб: подключение по SSH к машине, Docker, папки фабрики, пользователь агента, Nginx, SSL-сертификат, домашняя страница, центральный вход, база данных (Postgres), Git-сервис (Forgejo) и служба резервных копий. Строкам с проблемой, которую можно исправить автоматически, соответствует ссылка «Нажмите здесь, чтобы установить» (или «создать» / «запустить» / «заказать»): это та же одношаговая установка, что и на вкладке, а после успешного исправления проверки перезапускаются сами.
Что такое передача фабрики?
Передача фабрики — разовая операция, которая отдаёт управление фабрикой её собственному Мультиагенту: на фабрике разворачивается отдельный MultiAgent, и записи переезжают к нему — агенты, приложения, инструменты, маршруты, сертификаты и ключи доступа. Запущенные приложения при этом не трогаются, а у вас остаётся запись сервера — физической машины: доступ по SSH, проверки, папки и очистка Docker. После передачи заглянуть в экземпляр клиента можно кнопкой «Управление» — вход выполнится сам, без пароля. Подробнее — на странице Передача фабрики.
Можно ли разместить MultiAgent в подпапке?
Да. Одно и то же приложение работает и в корне домена, и в любой подпапке — например, ваш-домен/multiagent. Пересобирать ничего не нужно: MultiAgent определяет подпапку по адресу запроса. Достаточно либо задать переменную MULTIAGENT_BASE_PATH, либо попросить верхний прокси передавать заголовок X-Forwarded-Prefix. На управляемой фабрике MultiAgent настраивает это сам при развёртывании. Подробнее — на странице Nginx-роутинг.
Что такое свой агент (Own Agent)?
Свой агент — внешний Xedant Agent, которого MultiAgent подключает переменными окружения AGENT_API_URL и AGENT_API_KEY. Его интерфейс встроен в каждую страницу: блок в боковой панели со сводкой чатов, глобальная панель чата, очередь промптов из поля ввода, голосовой ввод, а в подвале панели — кнопки «Задачи (N)» и «Чаты». Обратное направление — агент управляет MultiAgent — работает через программный интерфейс: адрес Мультиагента агент получает переменной MULTIAGENT_URL, сам ключ — MULTIAGENT_KEY, а на стороне Мультиагента хранится только его отпечаток в MULTIAGENT_HASH. Подробнее — на странице Собственный ассистент.
Что такое Agent API?
Agent API — программный интерфейс /api/agent/* для автоматических клиентов, закрытый ключом X-API-Key (переменная MULTIAGENT_HASH хранит его отпечаток SHA-256). Через неё внешний агент управляет фабриками, агентами, инструментами и продуктами; запрос GET /api/agent возвращает каталог всех операций с описаниями. Без переменной интерфейс отвечает 503 Agent API is disabled («API выключен»). Подробнее — на странице Agent API.
Что такое домашняя страница фабрики?
Домашняя страница фабрики — единая закладка, с которой открываются все приложения фабрики. Это статичная панель карточек: MultiAgent сам собирает её из своей базы и загружает на фабрику, а Nginx отдаёт её в корне /. Отдельный контейнер и свой вход ей не нужны, а карточки (агенты, приложения, инструменты) появляются автоматически, а в углу доски — кнопки «Git», «Вход по QR-коду» и «Выйти». Подробнее — на странице Домашняя страница фабрики.
Чем задачи и боты отличаются от прежних триггеров и менеджеров?
Прежние менеджеры и триггеры (cron, вебхуки, email, Telegram) убраны из продукта. Вместо них в чатах агентов живут задачи по расписанию, боты и очередь промптов — а также MCP-серверы и навыки. Это собственные сущности агента: MultiAgent передаёт их, а не переизобретает — диалоги открываются из страницы агента и работают через его же API. Подробнее — на странице Задачи и боты.
Можно ли держать агентов на самом компьютере?
Да, для этого есть тип подключения «Локальный WSL»: в форме добавления сервера выберите его и дистрибутив. Пароль, ключ и адрес для такого сервера не нужны — команды внутри дистрибутива выполняет сама служба Windows, а ссылки на приложения открываются по localhost. Нужны WSL2 и Docker внутри дистрибутива. В Linux этого типа подключения нет — там сервер добавляют по SSH.
Что такое «Окружения»?
Это библиотека именованных наборов переменных окружения. Набор — это имя и список строк KEY=VALUE, который можно один раз собрать, а потом выгружать на выбранные фабрики и агентов. Импортировать переменные можно из уже настроенной фабрики или агента, а на агентах выгрузка сразу пересоздаёт контейнер, чтобы значения вступили в силу. Полезно, когда десятку агентов нужен один и тот же ключ или адрес: заполнили один раз — и разослали. Подробнее — на странице Окружения.
Что такое «Флоты»?
Это именованные группы агентов, собранные по смыслу, а не по фабрикам: например, «Боты поддержки» с агентами с трёх разных машин. У флота есть свой значок — клик по нему открывает общую галерею, ту же, что у агентов и меток чатов, — а порядок флотов задаётся перетаскиванием и виден и в списке, и в фильтре в шапке. Карточки по умолчанию свёрнуты: на экране одна строка на флот, а название работает переключателем. Внутри карточки участники разложены по фабрикам, группы свёрнуты, а метка фабрики и имя участника ведут на их страницы. Флот можно назначить фабрике: тогда в него входят все её агенты, включая тех, кого развернут позже, а снятие выводит только этих агентов — лично добавленные остаются. На странице агента, приложения или фабрики видно чипы флотов, в которые они входят, и кнопка «+ Флот» для быстрого добавления. Выбранный в шапке флот сужает сразу многое — списки, экран «Оборудование», панель уведомлений, звук и всплывающее сообщение операционной системы. Подробнее — на странице Менеджмент.
Как перенести агента на другую фабрику или стереть его?
Перенос переезжает на другую фабрику целиком: на новом месте сразу появляются его строки, папки и база — с показом хода переноса, — а исходная фабрика не меняется (старую копию убирают отдельно). Переносить можно по одному, выбранной группой или всех разом, и в любой момент можно нажать «Отмена». «Стереть агента» необратимо: удаляются контейнер, все папки с данными, база и сама запись, поэтому подтверждение спрашивается отдельно. Простое «Удалить» устроено иначе: контейнер останавливается и убирается, а папки с данными сохраняются. Подробнее — на странице Агенты.
Как продлить лицензию агента?
Откройте строку лицензии в разделе «Активы → Лицензии» — откроется диалог с составом назначений, а в нём есть действие «Продлить». Срок задаётся в днях (по умолчанию 31 день) или сразу датой окончания — поля связаны между собой. После подтверждения ключ пересобирается с новой датой, а всё остальное в нём — тип, кому выдан, продукты и дата начала — и назначения остаются как были. Если лицензия уже истекла, срок считается от сегодняшнего дня. У бессрочной лицензии даты окончания нет, поэтому продлевать нечего. Какая лицензия достаётся новым агентам фабрики, выбирается на вкладке «Общее» этой фабрики. Подробнее — на странице Безопасность и лицензирование.
Работает ли MultiAgent без интернета?
MultiAgent разворачивается целиком внутри вашей инфраструктуры: панель управления, база, Git-сервер Forgejo и файлы — всё ваше. Наружу нужен только доступ к моделям ИИ и, при обновлении, к хранилищу образов Docker.
Почему продукт не с открытым исходным кодом?
Я уже пробовал запускать и поддерживать бесплатные продукты — больше 20 лет назад. Это того не стоит — объём поддержки намного выше, при этом нет ресурсов на дальнейшее развитие. Я предпочитаю иметь гораздо меньше пользователей, которые действительно любят продукты и готовы за них платить. Ещё одна важная причина — контроль: я предпочитаю сохранять продукты простыми и минималистичными. С открытым исходным кодом я ожидаю тонны AI-сгенерированных PR с функциями, которые я намеренно избегал из-за их сложности и плохих решений.
Можно ли забрать метрики в Prometheus или Grafana?
Да. По адресу /metrics MultiAgent отдаёт те же цифры, что на экранах «Токены», «Стоимость», «Скорость» и «Чаты», в формате Prometheus: стоимость, токены, графики по времени, профили и живые числа по агентам, фабрикам и флотам. Сбор выключен по умолчанию и включается парой переменных окружения — MULTIAGENT_METRICS_USERNAME и MULTIAGENT_METRICS_PASSWORD; без них адрес не существует. Шаг точек и глубина истории тоже настраиваются. Если не хочется настраивать руками, поставьте на фабрику службу Prometheus из библиотеки инструментов: она сама подхватит метрики приложения этой фабрики. Подробнее — на странице Аналитика и выгрузки.
Есть ли API для сторонних приложений помимо Agent API?
Есть — язык запросов GraphQL по адресу /graphql. Он отдаёт тот же отчёт аналитики, что и экраны, но структурированными данными: сводка, расходы, счётчики работы, графики по времени, разрезы по модели, агенту и фабрике, а также сами флоты, фабрики и агенты. Только чтение: ничего изменить через него нельзя. Схема описана сама — забрать её можно файлом /graphql/schema. Включается она отдельной парой MULTIAGENT_GRAPHQL_USERNAME и MULTIAGENT_GRAPHQL_PASSWORD и по умолчанию выключена.
Что будет, когда срок лицензии агента закончится?
Скорее всего, ничего: у лицензии есть переключатель «Автопродление», и у новых лицензий он сразу включён. Проверка раз в шесть часов видит, что срок скоро кончится, и пересобирает ключ ещё на 31 день; агенты, которые эту лицензию держат, пересоздаются без прерывания текущего чата. Если автопродление выключено, ничего не происходит: лицензия просто перестаёт действовать, и её нужно продлить кнопкой «Продлить». Автопродление требует, чтобы на узле был закрытый ключ подписи, — без него продление пропускается и повторится на следующей проверке. У бессрочной лицензии даты окончания нет, поэтому и продлевать нечего.
Чем «Обновить» отличается от «Пересоздать»?
«Пересоздать» — полное действие: заново собирает файлы настройки, заново готовит маршруты и пересоздаёт контейнер на свежем образе. «Обновить» — лёгкое: берёт уже развёрнутые файлы как есть, загружает текущий образ и пересоздаёт контейнер, только если образ действительно изменился. Текущий образ ничего не перезапускает, а отсутствующий контейнер обновление пропускает. Оба действия бывают плавными и принудительными: плавное ждёт тишины в чатах, принудительное не ждёт и отменяет уже запланированное. У приложения плавное обновление ждёт ещё и связанных с ним агентов. Подробнее — на странице Агенты.
Куда делся экран «Аналитика»?
Отдельного экрана больше нет — его содержимое переехало туда, где им пользуются каждый день. Токены и их распределения теперь на экране «Токены», деньги — на «Стоимости», скорость работы — на новом экране «Скорость», а таблицы чатов и чатов подагентов — внизу экрана «Чаты». Все они живут в разделе «Менеджмент» и подчиняются одному выбору периода и флота. Машинный доступ к тем же цифрам никуда не пропал: Prometheus, GraphQL и архив в ClickHouse работают как раньше. Подробнее — на страницах Токены, стоимость и скорость и Аналитика и выгрузки.
Можно ли перенести фабрику целиком?
Да. В меню строки фабрики есть «Скопировать фабрику», а у корневой строки «Фабрики» — «Вставить фабрику». Копируется всё: поля фабрики, папки, шаблоны compose, порты, общие переменные, сервисы и все её агенты с приложениями. Пароли и ключи попадают в копию в открытом виде, поэтому буфер обмена стоит беречь. При вставке слаг проверяется на целевом сервере — занятый получает номер, а сервер ищется по своим данным, так что две копии одной машины не заводят две записи. Все строки создаются неразвёрнутыми: контейнеры запускаются с их страниц. Подробнее — на странице Фабрики.
Как задать переменную окружения сразу всем агентам?
Двумя способами. Первый — в настройках фабрики: список её общих переменных попадает в каждый агент и приложение, а своя переменная конкретного агента всегда важнее общей. Второй — прямо из чата с агентом: в его окне «Контейнер» есть кнопка «Глобальные переменные», где вписывают ключ и значение и нажимают «Сохранить и перезапустить». Через полминуты значение работает у всех агентов и приложений фабрики — заходить в MultiAgent и править файлы не нужно. Агент при этом не меняет себя сам: он оставляет заявку, а применяет её MultiAgent.
Что за полоски появились в поле ввода чата?
Это две подсказки о запасе. Под полем — квоты моделей: сколько осталось от лимитов тарифа (пятичасовое окно, неделя, месяц). Жёлтая полоса — запас подходит к концу, красная — почти исчерпан, наведение показывает время до сброса. Над полем — полоса контекста: насколько занята память открытого чата. Когда она подходит к концу, модель начинает терять начало разговора, и лучше начать новый чат. Обе подсказки можно выключить в окне «Внешний вид».
Почему в списках чатов видно не все чаты?
Каждый чат помечен приложением, которое его начало. MultiAgent показывает только свои чаты: разговоры, начатые в самом агенте или в другом приложении фабрики, в список не попадают — зато остаются в аналитике, где есть разрез «По приложениям» и строка «Без приложения» для старых чатов без пометки. Прямая ссылка на чат всё равно открывает его.
Что будет, когда лицензия истечёт?
Заблокируются изменения: нельзя будет создавать и менять серверы, фабрики, флоты и агентов, пересоздавать и обновлять контейнеры, импортировать и переносить агентов. Всё остальное продолжает работать — существующие агенты и их чаты, запуск и остановка, удаление, инструменты, маршруты и сертификаты, аккаунты поставщиков, навыки и модели. На первом же заблокированном действии открывается окно лицензии, куда вставляют новый ключ. Подробнее — на странице Лицензирование.