---
title: "Инструменты"
id: "1313"
type: "page"
slug: "tools"
published_at: "2026-08-15T21:48:58+00:00"
modified_at: "2026-08-16T10:41:52+00:00"
url: "https://pastukhov.com/multiagent/docs/tools"
markdown_url: "https://pastukhov.com/multiagent/docs/tools.md"
excerpt: "Инструменты — быстрый деплой Docker-сервисов на управляемые серверы по шаблонам. Сервис (Postgres, Redis, nginx, что…"
---

# Инструменты

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

Инструменты — быстрый деплой Docker-сервисов на управляемые серверы по шаблонам. Сервис (Postgres, Redis, nginx, что угодно) описывается один раз как шаблон, а затем разворачивается сколько угодно раз — каждый инстанс со своими настройками.

## Два уровня

- **Библиотека шаблонов** (раздел «Инструменты») — глобальная, хранится на диске MultiAgent в папке `AGENT_TOOLS` и общая для всех серверов. Шаблоны редактируются прямо в интерфейсе: манифест, файлы и compose.yml — как сырой текст;
- **Инстансы на сервере** (страница сервера → «Инструменты на этом сервере») — развёрнутые копии: жизненный цикл, статусы, логи, файлы и переменные каждого инстанса.

## Структура шаблона

Каждый шаблон — папка со слагом из строчных букв, цифр и дефисов:

```
{AGENT_TOOLS}/
  redis/                     ← слаг шаблона = имя папки
    tool.json                ← название, описание, иконка, категория, переменные
    compose.yml              ← Scriban-шаблон
    redis.conf               ← произвольные дополнительные файлы
    init/
      01-init.sh             ← вложенные подпапки поддерживаются
```

Переменные описываются в `tool.json` со схемой типов:

- **string** — текстовое поле;
- **secret** — поле-пароль: значение шифруется в базе и маскируется в интерфейсе;
- **int** — числовое поле;
- **choice** — выпадающий список из заданных опций;
- **bool** — переключатель да/нет.

При первом запуске библиотека наполняется примерами: `redis`, `postgres` и `nginx`. Их можно править — затирается библиотека только если она пуста.

## Деплой

1. Выберите шаблон и сервер — откроется форма с переменными шаблона;
2. Заполните значения (секреты сразу шифруются) и посмотрите предпросмотр рендера compose против введённых переменных;
3. MultiAgent отрендерит все файлы шаблона через Scriban, скопирует их в папку инструментов сервера и выполнит `docker compose up -d`. Имя compose-проекта — слаг инстанса, поэтому инстансы изолированы по сетям и томам.

В шаблонах доступны значения переменных плюс встроенные контексты сервера: `{{ instance_slug }}`, `{{ instance_name }}`, `{{ data_folder }}`, `{{ tools_folder }}`, `{{ server_host }}` и другие. Используйте `{{ instance_slug }}` в `container_name`, чтобы два инстанса одного шаблона сосуществовали на сервере.

## Жизненный цикл инстанса

- **Запустить / Остановить / Перезапустить / Pull** — управление контейнером, файлы не трогаются;
- **Пересоздать** — единственная операция, перерендеривающая файлы из шаблона с сохранёнными переменными. Ручные правки файлов будут перезаписаны — интерфейс предупреждает об этом заранее;
- **Удалить** — останавливает и удаляет контейнер, его файлы и именованные тома.

После деплоя файлы инстанса на сервере свободны для правок — через вкладку «Файлы» инстанса или по SSH. Инстансы — обычные Docker-контейнеры, поэтому переиспользуют знакомый UX агентов: кнопки жизненного цикла, бейджи статусов, просмотр логов и файловый браузер с прогрессом операций через SignalR.

## Персистентность библиотеки

По умолчанию `AGENT_TOOLS` указывает на `/project/tools` — внутри контейнера, без сохранения при пересоздании. Чтобы шаблоны переживали пересборку контейнера, укажите `AGENT_TOOLS=/data/tools`: volume `/data` сохраняется между пересозданиями. Подробнее — в [инструкции по установке](/multiagent/docker)
.

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