← Университет

Деплой агентных систем: VPS vs домашний ПК, Docker, очереди задач и веб-панели управления

Введение

Развертывание (deploy) современных AI-агентов требует принципиально другого подхода к инфраструктуре, чем традиционные веб-приложения. Агенты работают асинхронно, требуют 24/7 доступности, часто вызывают внешние APIs, могут работать часами над одной задачей и нуждаются в надежной системе управления, мониторинга и одобрения (approval workflow) для критических операций. В этом документе рассматриваются реальные архитектуры и практики 2026 года для развертывания агентов как на облачных VPS, так и на домашних серверах.


1. VPS vs домашний ПК: сравнительный анализ

1.1 VPS (Virtual Private Server) для агентов

Преимущества: - Геолокация и доступ извне: IP-адреса в разных странах, всегда доступны из интернета - Предсказуемая стоимость: $5-20/месяц для базовых настроек - Резервное питание и сетевая инфраструктура: провайдер гарантирует uptime 99.9% - Масштабируемость: можно добавлять ресурсы по требованию

Недостатки: - Интернет-тарифы за трафик (может накопиться на больших моделях) - Задержка (latency) до облака - Ежемесячная оплата, даже если агент не работает

Рекомендуемые провайдеры и тарифы (2026): - Hetzner CX22: €5.50/месяц, 2 vCPU, 4GB RAM, 40GB SSD — стандарт для стека агентов - DigitalOcean: $6/месяц, 1 vCPU, 1GB RAM (для простых агентов) - Linode: сходный прайс с хорошей поддержкой интеграций

Тип деплоя: VPS оптимален для 15+ агентов, требующих координации, или для production-критичных систем.

1.2 Домашний ПК (Home Server): RTX 3090 и локальный инференс

Что говорят практики:

Разработчик Praeclarum демонстрирует, что "running coding agents on local machines has never been easier". Полная система с RTX 3090 стоит ~$3,000: - GPU RTX 3090: $1,500 (б/у: $700-900) - CPU: $300 - 64GB RAM: $700 - Хранилище + БП + корпус: ~$450

Производительность на RTX 3090 (24GB VRAM): - Вмещает модели до ~27-35B параметров в Q4_K_M quantization (~13.5GB) - Скорость инференса: 40 tokens/sec типично - Энергопотребление: ~350W TDP → ~$48/месяц электричества (при $0.12/kWh)

Альтернатива: Apple Silicon Mac mini M4 Max - 24GB unified memory - Потребление: ~50-60W → $3/месяц электричества - Идеален для домашних лабораторий (homelab)

Преимущества домашнего сервера: - Zero recurring cost после покупки (только электричество) - Локальные данные: no cloud lockdown - Полный контроль над моделями и инструментами - 24/7 uptime для личных проектов

Ключевое ограничение: требует надежного электроснабжения (UPS), интернета, охлаждения. Идеален для индивидуальных разработчиков, не годится для production в компаниях.

Опыт многопользовательского хостинга: Дерек Армстронг (Derek Armstrong) установил дома систему для семьи и столкнулся с критической проблемой: "Ollama queued requests instead of processing them simultaneously". Решение — миграция на vLLM с PagedAttention для истинной параллельной обработки запросов (concurrent request handling).


2. Docker в развертывании агентов

2.1 Роль Docker

Docker обеспечивает: - Воспроизводимость (reproducibility): одинаковая окружение на ноутбуке разработчика и на VPS - Изоляция (isolation): каждый агент в отдельном контейнере не влияет на другие - Масштабируемость: легко запускать 10, 100, 1000 идентичных агентов - Версионирование: полный контроль над зависимостями (dependencies)

2.2 Архитектура VPS + Docker + systemd

Стандартный подход в 2026:

VPS (Hetzner CX22, 4GB RAM)
├── Docker daemon (systemd managed)
│   ├── Container #1: Agent + FastAPI server
│   ├── Container #2: Task queue worker (Celery)
│   ├── Container #3: RabbitMQ broker
│   └── Container #4: Redis (результаты, кеш)
└── Reverse proxy (nginx) на порту 80/443

Ключевые параметры systemd сервиса для контейнера:

MemoryMax=2G
CPUQuota=80%
RestartPolicy=always

Это гарантирует, что при крахе приложения контейнер перезагружается автоматически.

2.3 Требования к образам (images)


3. Очереди задач (Task Queues): Celery + RabbitMQ + Redis

3.1 Почему нужна очередь?

Агенты работают асинхронно: - Длительные операции (reasoning steps, API calls, network waits) - Экспоненциальные retry с backoff - Множество параллельных задач - Необходимость отделения (decoupling) между API (приемник запросов) и worker-процессами (исполнители)

Проблема наивного подхода: прямой вызов агента в Flask/FastAPI → HTTP request зависает 30+ секунд → timeout → потеря информации.

Решение: задача enqueue-ится в очередь, API немедленно возвращает 200 OK, worker обрабатывает асинхронно.

3.2 Архитектура Celery + RabbitMQ + Redis

HTTP Request
    ↓
[FastAPI Endpoint] → enqueue_task()
    ↓
[RabbitMQ Broker] (гарантирует доставку)
    ├─→ [Worker #1] (обрабатывает agent_reason_task)
    ├─→ [Worker #2] (обрабатывает tool_call_task)
    └─→ [Worker #N] (масштабируется горизонтально)
    ↓
[Redis Result Backend] (кеширует результаты)
    ↓
[AsyncResult Polling] ← клиент получает результат позже

Ключевые компоненты:

  1. RabbitMQ (Message Broker): reliability, гарантирует, что сообщение не потеряется; работает с миллионами сообщений/день

  2. Celery: Python task queue, поддерживает:

  3. Retry с exponential backoff (3 попытки max)
  4. Task routing (разные worker pool-ы для разных задач)
  5. Task signatures и chains (сложные workflows)
  6. Rate limiting (throttle по 100 tasks/min)

  7. Redis: результаты и состояние (state). TTL автоматически удаляет старые результаты

Конфигурация примера (Python):

from celery import Celery, Task

app = Celery('agents', broker='amqp://guest:guest@rabbitmq//')
app.conf.update(
    task_serializer='json',
    accept_content=['json'],
    result_serializer='json',
    result_backend='redis://redis:6379/0',
    task_acks_late=True,
    worker_prefetch_multiplier=1,
)

@app.task(bind=True, max_retries=3)
def run_agent(self, agent_id, user_input):
    try:
        return agent.run(user_input)
    except Exception as exc:
        raise self.retry(exc=exc, countdown=2 ** self.request.retries)

3.3 Масштабирование

На одном Hetzner CX22 (4GB RAM): - RabbitMQ: ~500MB - Redis: ~100MB - 2-3 Celery worker process: ~800MB каждый (в зависимости от модели) - API: ~400MB - Итого: ~3GB, остается ~1GB буффера

Для нагрузки 1000+ задач/день нужно масштабировать worker-ы на отдельные машины.


4. Планирование и триггеры (Cron + Webhooks)

4.1 Cron-джобы (Scheduled Tasks)

Синтаксис (cron expression): - 0 8 * * 1,3,5 — в 8:00 UTC по понедельникам, средам, пятницам - */15 * * * * — каждые 15 минут

Реализация в Celery:

from celery.schedules import crontab

app.conf.beat_schedule = {
    'send-daily-report': {
        'task': 'myapp.tasks.send_report',
        'schedule': crontab(hour=9, minute=0),  # ежедневно в 9:00
    },
}

Инструмент мониторинга: Celery Beat (встроен в Celery)

4.2 Webhook-управляемая архитектура (Event-Driven)

Вебхуки (webhooks) дают преимущество перед polling: - Latency: <1 сек vs. 30-5 минут у polling - Стоимость: нулевые затраты в режиме ожидания (no idle compute) - Масштабируемость: auto-scale на основе реального объема событий

Типовая архитектура webhook:

External Service (GitHub, Slack, etc.)
    ↓
[Webhook Endpoint] — verify HMAC signature
    ↓ (return 200 OK немедленно)
[Event Queue] (async processing)
    ↓
[Dead Letter Queue] (для failed events)
    ↓ 
[Agent Router] — type-based routing к нужному агенту
    ↓
[Agent Processing]

Критические требования безопасности:

  1. HMAC signature verification с timing-safe сравнением (защита от brute-force)
  2. Replay protection: отклонить события старше 5 минут
  3. Idempotency: Redis с NX flag и TTL для дедупликации
  4. Schema validation: всегда валидировать payload перед обработкой

Ошибка новичков: "a transient failure permanently blocks that event" (временный сбой блокирует весь event). Решение: cleanup lock-ов на failure, exponential backoff с jitter.


5. Веб-панель управления (Web Dashboard & UI)

5.1 Требования к панели

Для управления 10+ агентами нужен интерфейс:

  1. Unified chat — вместо переключения между терминалами
  2. Cron job monitoring — с auto-refresh каждые 60 сек
  3. Task boards (Kanban) — visualization статуса задач
  4. Cost analytics — token consumption per agent/model
  5. Activity logs — история всех операций
  6. Memory browser — доступ к agent memory/context
  7. Agent profiles — конфигурация и tools каждого агента
  8. Approval workflow — для критических операций

5.2 Реальные инструменты (2026)

ClawPort (open-source) - Автоматически сканирует OpenClaw workspace - Установка: npm install -g clawport (~3 минуты) - Агент discovery работает через файловую систему - Real-time cost tracking

Hermes Web Dashboard - Специально для Hermes Agent AI платформы - WebSocket для live updates - Multi-agent orchestration

Собственный dashboard (DIY) Часто компании пишут свой на React + FastAPI:

# FastAPI backend
@app.get("/api/agents")
def list_agents():
    return db.agents.find()

@app.get("/api/agents/{agent_id}/tasks")
def get_tasks(agent_id: str):
    return celery.inspect().active_tasks()

@app.post("/api/agents/{agent_id}/task")
def submit_task(agent_id: str, request: TaskRequest):
    task = run_agent.delay(agent_id, request.input)
    return {"task_id": task.id}

5.3 Ключевой инсайт о затратах

Практики отмечают: "Real-time cost analytics transform AI spending from a monthly surprise into an optimizable, transparent metric". Видеть текущие затраты по токенам — критически важно для контроля над расходами API.


6. Отделение browser automation от агентов

Для веб-задач эффективнее использовать специализированные инструменты, чем встраивать browser automation прямо в агента:

Это снижает latency агента и упрощает дебаг.


7. Практические рекомендации по выбору архитектуры

Выбор VPS:

Выбор домашнего сервера:

Гибридный подход (2026 тренд):


8. Стек технологий для домашней лаборатории (Homelab)

Что используют люди в 2026:

  1. Ollama — local LLM runtime (простота выиграла у LocalAI)
  2. Open WebUI — ChatGPT-like interface (5 мин развертывания)
  3. n8n — automation/workflow engine (connect AI к email, calendar, etc.)
  4. LiteLLM — unified OpenAI-compatible API proxy
  5. ChromaDB + LlamaIndex — private RAG (retrieval-augmented generation)
  6. Whisper.cpp — local audio transcription
  7. vLLM — для concurrent inference (лучше Ollama для multi-user)
  8. Tailscale — secure remote access без expose портов

Критическое замечание о безопасности: "Never expose raw Ollama to the public internet" — порт 11434 не требует authentication. Только Tailscale + private tailnet или HTTPS reverse proxy.


9. Инфраструктурные pain points и решения

Проблема Причина Решение
Agentы crash без перезагрузки Нет supervisor-а systemd + RestartPolicy=always
Задачи теряются при crash Нет очереди RabbitMQ + Celery
Невозможно отследить статус Нет мониторинга Prometheus + Grafana или custom dashboard
Перезагрузки обрывают задачи Нет persistence Redis TTL + task retry logic
Дорого масштабировать GPU Облачное GPU дорого Домашний RTX 3090 (~$900) vs. $15/hour облака
Сложно управлять 20+ агентами Нет unified UI ClawPort или собственный React dashboard

10. Цифры и расходы (2026)

VPS вариант (5 агентов, облачное API):

Домашний сервер (5 агентов, локальный инференс Qwen 27B):


Заключение

В 2026 году выбор между VPS и домашним сервером зависит от requirements:

  1. Для production: VPS + Docker + Celery + RabbitMQ, веб-панель управления
  2. Для индивида: домашний RTX 3090 + Ollama + n8n + Tailscale
  3. Для большых систем: гибридный подход с местным inference + облачной оркестрацией

Ключевой тренд — асинхронные очереди задач (Celery, task queues) стали обязательны. Вебхуки (webhooks) побеждают polling. Локальный инференс на RTX 3090 окупается за 1-2 года против облака. Веб-панели для управления агентами — не luxury, а необходимость для 10+ систем.


Источники

  1. How to Deploy an AI Agent to Production: VPS, Docker & Serverless (2026) — Paxrel
  2. How I Deploy AI Agents on a VPS (Solo Dev, No Platforms) — Dominque Terry, Medium
  3. Scaling AI Agents with Celery, RabbitMQ & Redis in Python — Istekhar, Medium
  4. How to Manage 20+ AI Agents with a Multi-Agent Dashboard — BrowserAct
  5. Coding with Local Agents on an RTX 3090 — praeclarum, May 2026
  6. Webhook-Driven Agent Architecture (2026) — BuildMVPFast
  7. Build a Home AI Server in 2026: Self-Hosted LLM Guide — DigitalApplied
  8. The Homelab AI Stack in 2026 — DEV Community
  9. Self-Hosted AI for Multi-User Households — Derek Armstrong
  10. How to Set Up a Task Queue with Celery and RabbitMQ — Linode Docs
  11. How To Use Celery with RabbitMQ to Queue Tasks on Ubuntu VPS — DigitalOcean
  12. A Deep Dive into RabbitMQ & Python's Celery — Towards Data Science