MultiAgent может получить собственного ассистента — отдельного агента, чей интерфейс встраивается прямо в страницы MultiAgent: вы общаетесь с ним в чате, не переключаясь между программами. Внизу боковой панели — блок со сводкой активных чатов, глобальная панель чата открывается с любой страницы, у ассистента есть очередь заготовленных запросов, голосовой ввод и звуковые уведомления. Подключение — это разовая настройка: задаёте адрес и ключ агента при запуске, и всё работает. Никаких экранов настройки в интерфейсе и никакого хранения данных на стороне MultiAgent.
Подключение
Ассистент подключается переменными окружения — техническими параметрами запуска, которые задаются один раз в файле настройки при установке. Нужны два независимых направления, у каждого свой ключ:
- MultiAgent → агент (исходящее) —
AGENT_API_URL(адрес агента) иAGENT_API_KEY(ключ, которым агент пускает свои автоматические клиенты). Именно эта пара включает панель чата и блок в боковой панели. Ключ хранится только внутри MultiAgent и никогда не попадает в браузер; - Агент → MultiAgent (входящее) —
MULTIAGENT_HASH: отпечаток ключа программного интерфейса/api/agent/*, через который ассистент сам управляет фабриками, агентами и инструментами MultiAgent. На стороне агента адрес Мультиагента приходит переменнойMULTIAGENT_URL, а сам ключ —MULTIAGENT_KEY.
Направления не зависят друг от друга: чтобы просто общаться с ассистентом в чате, достаточно исходящей пары «адрес + ключ агента»; а управлять MultiAgent ассистент может и без включённого чата.
Адрес агента может включать подпапку — например, когда агент стоит на том же домене под своим путём. Ассистент работает и так. Ещё одна мелочь, которую легко не заметить: на одном домене может жить несколько приложений семейства в разных подпапках — у каждого свой набор сохранённых списков чатов, значков и оформления, поэтому соседи не подменяют друг другу данные.
Боковая панель и панель чата
Интерфейс ассистента встроен в каждую страницу MultiAgent. Внизу постоянной боковой панели — блок ассистента: сводка активных чатов (таймер, расход токенов и стоимость — обновляются в реальном времени), предупреждение, если соединение с агентом пропало, и две кнопки: «Задачи» — число в кружке рядом показывает, сколько долгих работ идёт и ждёт своей очереди прямо сейчас (при нуле кружка нет, а пока что-то выполняется, значок пульсирует); нажатие открывает их журнал, — и «Чаты» — список чатов ассистента. Очередь заготовленных запросов открывается из поля ввода панели чата.
Панель чата — нижняя панель, открываемая с любой страницы. Это и есть поле общения с агентом: выбор модели и навыка (с цветами), кнопка промптов, микрофон для голосового ввода, ответы агента в реальном времени, карточки сообщений очереди (можно править, поставить на паузу, отменить), статистика расхода — токены, стоимость, скорость — и кнопка «Открыть в новом окне», которая открывает тот же чат в самом агенте. Выбранные модель и навык запоминаются и становятся значениями по умолчанию для новых чатов.
Все обращения к агенту идут через сам MultiAgent — браузер с агентом напрямую не разговаривает, поэтому ключ агента не покидает MultiAgent. Живые обновления раздаются через постоянное соединение: MultiAgent держит одно подключение к агенту и пересылает события всем открытым браузерам. Соединение устанавливается по необходимости и само восстанавливается при разрыве.
Дерево фабрик и агентов слева — тоже рабочее место. Меню строки открывается и правым щелчком по ней, и кнопкой из трёх точек у правого края, а первым пунктом в нём стоит «Открыть»: у фабрики он ведёт на домашнюю страницу, у агента — на его публичный адрес. Открытие меню сначала выделяет строку, поэтому сразу видно, к чему относятся команды.
Размер шрифта из окна «Внешний вид» меняет не только переписку: текст страниц MultiAgent — таблиц, карточек и форм — тоже становится крупнее или мельче. Поля, кнопки и значки при этом остаются на месте, поэтому ничего не разъезжается.
Кнопки, вопросы и сообщения агента
Панель не только отправляет текст — она показывает всё, что агент присылает в ответ, и позволяет сразу на это ответить:
- кнопки агента — нажатие выполняется прямо в панели, а уже нажатые кнопки помечаются. Если кнопка настроена сработать сама, виден обратный отсчёт до нажатия и рядом кнопка «Отмена»;
- вопросы агента — вопрос или небольшая форма приходит карточкой с вариантами ответа; выбранный ответ отправляется агенту и продолжает его работу, а отправленный ответ остаётся виден на карточке;
- сообщения-блоки агента — текст, картинки и файлы показываются как в мессенджере: картинки сеткой, файлы отдельными плашками, вложения скачиваются прямо из папки агента;
- переходы по подзадачам — если агент запустил собственного субагента, из шапки чата можно вернуться в основной чат или перейти в чат любого его субагента;
- «Продолжить из этого сообщения» — разговор откатывается к выбранному сообщению и продолжается с него заново.
Всё это приходит по живому каналу событий — без перезагрузки страницы. Список чатов при этом тоже остаётся живым: счётчики коммитов и смена модели или навыка подтягиваются сами.
Очередь промптов
Очередь промптов — это список заготовленных запросов («промптов»), которые агент выполняет по очереди. Очередь принадлежит самому агенту, MultiAgent только показывает её: строки «текст + модель + навык» читаются и сохраняются в настройках агента, в самом MultiAgent ничего не хранится. Ручная отправка строки создаёт чат с моделью и навыком этой строки и сразу открывает его в панели чата; заголовок созданного чата ограничен настройкой агента — максимальной длиной заголовка. Настройки AutoSend (включено/выключено, максимум одновременно активных чатов, интервал проверки, автопереход к новому чату, «Отправлять в часы пик», «Автокоммит перед отправкой», «Автоисправление отключено до завершения») — тоже настройки агента: его внутренний распорядитель сам запускает накопившиеся промпты, даже когда браузер закрыт. Очередь открывается из поля ввода панели чата — отдельной кнопки в подвале боковой панели у неё больше нет.
Очередь не даст отправить недописанную строку: когда она опустела — последнюю строку отправили или удалили — AutoSend отключается автоматически. Пустая очередь показывает строку-черновик: первый промпт пишется без клика «Новый промпт». Футер диалога подсказывает, сколько промптов ждёт и в каком порядке они уйдут: «{n} промпт(ов), сначала — нижние» с правильными русскими формами множественного числа. Правки из двух открытых вкладок не затирают друг друга — строки объединяются построчно.
Голосовой ввод и звуки
В поле ввода панели есть микрофон: проговорите сообщение, и оно отправится агенту как обычный текст. Фоновые чаты (те, что обрабатываются, пока вы закрыли панель или находитесь в другом чате) сообщают о завершении звуковым уведомлением — у открытого чата звуков нет. При первом использовании местного распознавания рядом с микрофоном на время появляются подсказки о подготовке — «установка ffmpeg» и «загрузка модели»: подготовка начинается уже при начале записи, поэтому первая расшифровка не ждёт загрузки. Голосовой ввод и проверка лицензии работают так же, как в чатах обычных агентов MultiAgent. Выключенный звук сохраняется после перезагрузки страницы и применяется сразу.
Квоты моделей под полем ввода
Под полем ввода панели идут полосы квот — по одной на каждое ограничение выбранной модели. Это те самые лимиты тарифа, в которые упирается работа: пятичасовое окно, неделя, месяц. Зелёная полоса — запас есть, жёлтая включается, когда израсходовано около семи десятых, красная — когда почти всё. Наведение показывает, через сколько лимит сбросится.
- Набор зависит от поставщика — у одного это пятичасовое окно и неделя, у другого — окно, месяц и кредиты. У моделей, о которых поставщик не сообщает лимитов, полос нет вовсе;
- Клик по полосе открывает окно поставщика с подробностями: названия лимитов, сколько уже израсходовано и когда сброс;
- Истёкшая сессия Codex не оставляет без работы — на месте полос появляется кнопка «Войти через ChatGPT», вход проходят по коду устройства прямо в MultiAgent;
- Можно выключить — в окне «Внешний вид» есть переключатель «Показывать полосы квот моделей»;
- Цифры даёт сам агент — MultiAgent ничего не считает и не хранит, а только показывает сообщённое поставщиком, поэтому полосы совпадают с тем, что видно в самом агенте.
Зачем это: лимит видно заранее, до того как работа встанет. Кончилась пятичасовая квота — понятно, что ждать сброса, а не искать причину.
Использование контекста
У верхнего края поля ввода идёт тонкая полоса: сколько занято окно контекста открытого чата — та часть разговора, которую модель ещё помнит. Когда полоса подходит к концу, модель начинает терять начало переписки: подробности первых сообщений для неё пропадают, а ответы становятся менее точными.
- Наведение показывает долю в процентах и токены: сколько уже занято и сколько помещается всего;
- Клик открывает окно «Использование контекста» с графиком роста по сообщениям: видно, после какого сообщения разговор стал тяжёлым. График обновляется по ходу переписки;
- Можно выключить — переключатель «Показывать полосу использования контекста» в окне «Внешний вид»;
- Пока объём окна неизвестен, полоса пуста: показать долю, посчитанную по догадке, значило бы обмануть.
Зачем это: новый чат дешевле начать заранее, чем получить ответ, забывший половину разговора. Чистый чат — это и точность, и меньше расходов на повторную отправку истории.
Метки чатов
Чтобы разбирать список чатов по темам, чату можно присвоить метку — короткое имя со своим цветом и значком. Набор меток создаётся в диалоге «Управление метками чатов», который открывается из фильтра списка чатов или из меню метки у самого чата: там метку можно создать, переименовать, задать ей цвет и значок из общего набора Material Symbols. Метка одна на чат — у чата либо одна метка, и она показывает его назначение, либо ни одной.
- Назначение и снятие — метка выбирается кликом по её значку в строке чата, а снимается из меню метки в шапке панели чата. Само по себе назначение метки чат не переставляет и не поднимает в списке;
- Фильтр списка — в списке чатов можно показывать только чаты с выбранной меткой, вместе с обычным поиском по тексту;
- Видно всем и сразу — метки живут у самого агента, и любое изменение сразу разъезжается по всем открытым браузерам — без перезагрузки страницы. Переименование метки меняет её у всех чатов, а удаление снимает метку со всех чатов сразу.
Чаты принадлежат приложению
К каждому чату прикрепляется приложение, которое его создало. Мультиагент ставит эту метку сам, на своей стороне, поэтому подделать её из браузера нельзя. В списках ассистента видны только чаты MultiAgent: разговоры, начатые в самом агенте или в другом приложении фабрики, сюда не попадают — и наоборот.
- Счётчики и значки внимания в панели тоже считают только свои чаты: чужие не отвлекают и не искажают сводку;
- Старые чаты без метки в списках не показываются, но остаются целы: прямая ссылка на чат открывает его, а в итогах аналитики он учитывается;
- Очередь промптов остаётся общей на агента: MultiAgent показывает в ней свои строки, а при сохранении отдаёт обратно всю очередь, поэтому чужие строки не пропадают. Защита от отправки недописанной строки смотрит всю очередь целиком;
- Разрез «По приложениям» в аналитике показывает, сколько токенов и денег уходит на каждое приложение. То, что ни к кому отнести не удалось, попадает в «Без приложения».
Зачем это: у одного агента могут работать несколько приложений и сам человек. Списки чатов перестали быть свалкой, а расходы видно по каждому приложению отдельно — понятно, кто именно тянет бюджет.
Если ассистент не настроен или недоступен
Блок ассистента появляется только когда заданы обе переменные AGENT_API_URL и AGENT_API_KEY. При загрузке приложение проверяет, доступен ли агент, и ведёт себя соответственно:
- Не настроено — кнопки «Новый чат» нет, панель показывает «Агент не настроен», в боковой панели — предупреждение о недостающих переменных;
- Настроено, но агент недоступен — интерфейс на месте, а над нижней частью боковой панели появляется постоянная полоса предупреждения с последней ошибкой обращения к агенту: первый же успешный ответ её убирает;
- Ключ не задан — любой запрос к агенту по программному интерфейсу отвечает ошибкой «API агента не настроен».
Ошибки не всплывают поверх интерфейса и не мешают работать: если список чатов получить не удалось, он показывает «Чатов пока нет», а открытый чат — «Не удалось загрузить чат»; последняя ошибка обращения к агенту остаётся полосой над подвалом боковой панели и уходит после первого успешного ответа. Отклонённый ключ отличается от недоступности: устаревший ключ помечается как отклонённый, а не как недоступный агент.
Отправка сообщений, настройка очереди промптов и создание нового чата проверяют лицензию продукта: если она истекла или недействительна, MultiAgent отвечает ошибкой, а приложение открывает диалог продления лицензии. Вставить новый ключ в этот диалог можно всегда — сама активация не блокируется.
Обратное направление: ассистент управляет MultiAgent
Ассистент может управлять самим MultiAgent: создавать фабрики и записи серверов, разворачивать агентов и инструменты, следить за их состоянием. Ему достаточно адреса MultiAgent и ключа — доступные команды он узнаёт из каталога /api/agent (MultiAgent сам публикует список своих возможностей) и действует как любой другой автоматический клиент. Долгая работа — развёртывание, установка, проверка — не держит соединение открытым: сразу приходит отметка «в очереди» и номер операции, по которому ассистент сам узнаёт, чем всё закончилось. Запущенные им операции видны в интерфейсе в той же ленте прогресса, что и ваши собственные.
Как продукт
Когда MultiAgent разворачивается как продукт из каталога (шаблон multiagent), ассистент подключается автоматически: при установке выбирается связанный агент (по умолчанию — «Создать нового агента»), и обе пары переменных прописываются сами, без ручной настройки: одни — в конфигурацию приложения, другие — в конфигурацию связанного агента. У него новый чат сразу стартует с менеджерским навыком MultiAgent — выбирать его вручную не нужно; если навык был унаследован от открытого чата, он сохраняется. Подробнее — на странице Продукты.