---
title: "Продукты"
id: "1700"
type: "page"
slug: "products"
published_at: "2026-09-04T07:20:55+00:00"
modified_at: "2026-09-04T09:01:37+00:00"
url: "https://pastukhov.com/agents/multiagent/docs/products"
markdown_url: "https://pastukhov.com/agents/multiagent/docs/products.md"
excerpt: "Продукты — готовые приложения-агенты, которые можно развернуть из каталога в несколько кликов: MultiAgent, Research Agent,…"
---

# Продукты

[https://pastukhov.com/agents/multiagent/docs/products.md](https://pastukhov.com/agents/multiagent/docs/products.md)

**Продукты** — готовые приложения-агенты, которые можно развернуть из каталога в несколько кликов: MultiAgent, Research Agent, Analytics Agent, Data Agent и Proxy Agent. Продукт ставится из диалога «Новый агент» вместе со связанным агентом — учётные данные генерируются сами, переменные подставляются заранее, а приложение и агент сами узнают друг о друге. Никакого ручного создания файлов настройки и обмена ключами.

## Что такое продукт

Продукт — это папка-шаблон в каталоге продуктов (по умолчанию `/project/products`, можно указать свою переменной `AGENT_PRODUCTS`): файл описания `product.json` (название, описание, иконка, схема переменных), шаблон конфигурации приложения `compose.yml`, вспомогательные файлы и, опционально, собственный логотип (`logo.svg`/`logo.png`). Каталог читается при каждом показе: добавить продукт — значит положить папку с шаблоном в каталог, перезапуск не нужен. Повреждённый файл описания не ломает каталог — такой шаблон показывается с запасной идентичностью.

## Установка со связанным агентом

Продукты разворачиваются из диалога **«Новый агент»**: переключатель типа предлагает карточку отдельного агента и карточку каждого продукта каталога. Диалог собирает имя, сервер, образ, порт (заранее подставлен из шаблона) и значения переменных. Переменная типа «agent» (**Связанный агент**) по умолчанию равна **«Создать нового агента»**: мастер создаёт полноценного отдельного агента тем же механизмом, что и при обычном создании, а приложение получает его адрес и ключ для связи.

У развёртывания — **две записи**: одна для приложения (слаг вида `{шаблон}-app` или объявленный `appSlug`) и, когда связанный агент создан, ещё одна для агента — с именем и слагом шаблона. Оба имени получают свободный вариант («Research App 2», `research-app-2`), если заняты на сервере. Учётные данные (логин пользователя, пароли, секреты, ключ API) генерируются сервером — для установки не нужно ничего знать заранее.

## Каталог продуктов

- **Мультиагент** (порт 6000) — сам MultiAgent как продукт: связанный агент по умолчанию и переменные для собственного ассистента (own-agent);
- **Исследовательский агент** (Research Agent, порт 6010) — исследования и планирование; общая папка документов `/project/docs` и общая база Postgres, если она настроена на сервере;
- **Аналитический агент** (Analytics Agent, порт 6020) — анализ и визуализация данных, со связанным агентом для функции «редактирование с помощью ИИ»;
- **Агент данных** (Data Agent, порт 6030) — работа с данными: общая папка сценариев `/project/scripts` и Postgres;
- **Прокси-агент** (Proxy Agent, порт 6040) — лёгкий прокси с собственной базой данных.

Возможности шаблона объявляются в его файле описания: `sslEnvVar` — поддержка самоподписанного HTTPS (переключатель SSL есть только у таких шаблонов), `databaseEnvVar` — строка подключения к общей базе Postgres сервера, когда она настроена (иначе приложение без проблем работает на встроенной базе), `docsMount` — общая папка документов связанного агента.

## Связь приложение ↔ агент

Когда шаблон объявляет переменные адреса и ключа приложения (например, у research-agent это `RESEARCH_AGENT_BASE_URL`/`RESEARCH_AGENT_API_KEY`), каждый связанный агент получает в своей конфигурации две производные строки: адрес приложения для вызовов контейнер-контейнер (внутри одного сервера — адрес docker-сети, между серверами — публичный адрес) и открытый входящий ключ приложения. Строки выводятся при сборке конфигурации и пересоздаются при каждом развёртывании; один агент могут связывать несколько приложений — тогда значения объединяются через запятую (адреса и ключи — параллельные списки).

Шаблон `multiagent` сам объявляет связанного агента: в его конфигурацию выводятся переменные собственного ассистента (исходящие) и ключ (как отпечаток), а связанный агент получает адрес MultiAgent и открытый ключ. Подробнее — на странице [Собственный ассистент](/agents/multiagent/docs/own-agent)
.

## Общая папка документов

Шаблон с `docsMount` делит со связанным агентом его git-управляемую папку документов: со стороны сервера — подпапка репозитория агента, подключённая к приложению по тому же пути внутри контейнера. Оба контейнера видят одни и те же файлы по одному абсолютному пути, а git агента покрывает и общие документы. Общей папки нет, когда агент не связан или живёт на другом сервере.

## Управление

Продукт управляется как обычная запись агента с меткой **Product**: жизненный цикл (пересоздание тянет свежий образ — отдельной команды «скачать образ» нет), журналы по всей конфигурации (покрывают все сервисы стека), маршрут в Nginx. Переменные и связанный агент редактируются на вкладке **Product** (кнопка **«Сохранить и пересоздать»** применяет изменения; связь можно перенацелить, создать нового агента или отключить выбором **«Нет»**). Продукт не работает как обычный агент: у него нет подключения к живому каналу чатов и отражения чатов, а проверка API отвечает, что тест для продуктов не поддерживается.

[← Оглавление документации](/agents/multiagent/docs)
