---
title: "Агенты"
id: "1306"
type: "page"
slug: "agents"
published_at: "2026-08-15T21:48:48+00:00"
modified_at: "2026-08-16T10:41:52+00:00"
url: "https://pastukhov.com/multiagent/docs/agents"
markdown_url: "https://pastukhov.com/multiagent/docs/agents.md"
excerpt: "Агент — инстанс Pastukhov Agent на управляемом сервере. MultiAgent генерирует для каждого агента собственный compose.yml,…"
---

# Агенты

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

Агент — инстанс Pastukhov Agent на управляемом сервере. MultiAgent генерирует для каждого агента собственный `compose.yml`, разворачивает контейнер и следит за его жизненным циклом, а чаты агента зеркалирует в централизованный интерфейс.

## Создание агента

Кнопка **«Добавить агента»** спрашивает минимум: имя, сервер и образ. Порт подбирается автоматически — MultiAgent берёт следующий свободный порт сервера, поэтому конфликты исключены. Дополнительно задаются теги для фильтрации в чатах, воркспейсах и аналитике.

## Жизненный цикл

- **Развернуть** (provision) — сгенерировать compose.yml, скачать образ и поднять контейнер;
- **Запустить / Остановить / Перезапустить** — управление контейнером;
- **Пересоздать** (recreate) — пересобрать контейнер с обновлённым compose;
- **Pull** — обновить образ до свежей версии;
- **Удалить** — удалить запись управления и зеркальные чаты; контейнер и данные на сервере не затрагиваются.

Все операции выполняются в фоновом режиме (fire-and-forget), а прогресс транслируется в интерфейс через SignalR — видно каждый шаг: подключение к серверу, рендеринг compose, pulling образа, запуск контейнера.

Статус контейнера агента берётся у Docker напрямую: running, restarting, stopped, paused, exited или dead.

## Вкладки редактирования

- **Статус** — потребление CPU, RAM и диска контейнером;
- **Журналы** — последние 300 строк логов контейнера;
- **Общие** — имя, теги, образ, опции;
- **Git** — привязка репозитория Forgejo, ветки;
- **Подключение** — порт, URL, шаблон адреса;
- **Учётные данные** — пароли доступа к агенту;
- **Порты** — список проброшенных портов;
- **Тома** — монтирования поверх автогенерируемых;
- **Окружение** — дополнительные переменные окружения (extra-env);
- **compose.yml** — предпросмотр итогового файла с подсветкой синтаксиса.

## compose.yml

Файл генерируется из Scriban-шаблона сервера: порты — из записей портов агента, тома и переменные окружения — слияние автогенерируемых (папки сервера, строка Postgres, лицензия) и ваших явных значений. Предпросмотр показывает итоговый YAML с подсветкой до развёртывания — ошибки конфигурации видны заранее.

## Учётные данные

Для каждого агента доступны две операции с паролями: **генерация пользовательского пароля** (для входа в веб-интерфейс агента) и **смена пароля менеджера** (rotating manager password) — пароля, под которым MultiAgent обращается к API агента. Смена пароля менеджера пересоздаёт контейнер агента с новым значением в окружении.

## Docker.sock и деплой

Агенту можно подключить `/var/run/docker.sock` хост-сервера (по умолчанию выключено, включается на каждого агента отдельно). Это нужно, когда сам агент должен управлять контейнерами — например, для деплоя сервисов из своего проекта. Учитывайте: с docker.sock агент получает полный контроль над Docker хоста, поэтому включайте его только доверенным агентам.

## Импорт агентов

Если на сервере уже работают агенты, развёрнутые вручную, их не нужно пересоздавать. Команда **«Импортировать агентов»** сканирует сервер, находит контейнеры агентов, разбирает их compose-файлы и регистрирует агентов в MultiAgent с сохранением портов, томов и переменных окружения.

## Репозитории Forgejo

Каждому агенту можно привязать git-репозиторий: существующий на Git-сервере [Forgejo](/multiagent/docs/servers)
 или новый, который MultiAgent создаст сам. SSH-ключ для доступа выпускается и хранится автоматически. Репозиторий монтируется агенту как `/project` — все коммиты агента сразу попадают в git.

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