AI-агент на VPS запускают тремя способами: через Docker-контейнер, через systemd-сервис или через PM2. Docker подходит, если агент упакован в образ и должен переезжать между серверами. Systemd лучше для скриптов на Python и Go, которые уже лежат на с…
10+ лет в маркетинге, 300+ клиентских проектов: сайты, реклама, боты. Создатель GoBanana (228K+ пользователей, 11.6 млн ₽ выручки) и VibeCoderz. Делаю AI-продукты сам через Claude Code, Cursor, Windsurf и консультирую тех, кто хочет так же.
Об авторе →Claude Code: новый CLI-агент от Anthropic
Anthropic выпустила Claude Code — терминальный AI-агент для разработчиков. Инструмент работает прямо в командной строке и умеет писать, редактировать и запускать код.
Zcode AI: Полный гид по визуальному интерфейсу для Claude Code и AI-агентов
Узнайте, как использовать Zcode для управления Claude Code, Gemini и Codex в едином GUI. Настройка провайдеров, MCP-серверов и визуальный вайбкодинг.
YouTube-канал с монетизацией из любой точки мира: Пошаговый гайд 2026
Инструкция по созданию YouTube-канала: обход блокировок SMS, настройка расширенных функций через виртуальные номера и правила безопасности для монетизации.
Windsurf Code Maps: Как глубоко понимать архитектуру проекта перед написанием кода
Полный гайд по Windsurf Code Maps, модели Sway 1.5 и Sway Grep. Узнайте, как визуализировать архитектуру кода и ускорить разработку в 13 раз.
Vk Fast Cash Strategy
Аудитория ВКонтакте — это те же люди, что и в Instagram, но 'социальный контракт' площадки другой. Если Instagram — это 'дорогой ресторан' с демонстрацией успеха, то VK — это 'душевная шашлычная'. Здесь не работает глянцевый 'успешный успех
AI-агент на VPS запускают тремя способами: через Docker-контейнер, через systemd-сервис или через PM2. Docker подходит, если агент упакован в образ и должен переезжать между серверами. Systemd лучше для скриптов на Python и Go, которые уже лежат на сервере. PM2 забирает Node.js-процессы: ботов, API-обвязки агентов, воркеры очередей. Ниже пошагово разбираем все три варианта, автоперезапуск при падении и логирование.
В статье: сравнение Docker, systemd и PM2 для AI-агента, три готовых конфига с автоперезапуском, настройка логов через journalctl и pm2 logs, а также реальные цены на VPS в 2026 году. Дочитаете за 12 минут и запустите агента за вечер.
Локальный запуск AI-агента ломается на первом же сне ноутбука. VPS держит процесс живым круглосуточно, даже когда экран выключен и вы спите.
Агент на домашнем компьютере умирает при перезагрузке, засыпании и разрыве Wi-Fi. Он теряет память задач, обрывает подключение к Telegram-боту и требует, чтобы вы каждое утро вручную нажимали "запустить". На VPS процесс работает непрерывно: сервер не спит, не перегревается и не выключается, когда вы закрываете крышку ноутбука.
Разница ощущается уже на второй день. Локальный запуск живёт до первого перезапуска роутера. Серверный процесс переживает и перезагрузку хоста, и падение самого агента, если настроить автоперезапуск. Дальше в статье покажем, как это выглядит на трёх разных инструментах: Docker, systemd и PM2.

Отдельный момент для агентов с доступом к зарубежным моделям. Если агент работает через Kimi, GPT или Claude API, а вы находитесь в России, локация сервера тоже важна. Европейский VPS без блокировок часто оказывается стабильнее, чем попытка достучаться до API с домашнего IP.
Выбор зависит от того, во что упакован ваш агент. Готовый Docker-образ берите Docker, самописный Python-скрипт systemd, Node.js-бота PM2.
Три инструмента решают одну задачу по-разному. Docker AI агент разворачивает как изолированный контейнер со всеми зависимостями внутри. Systemd сервис бота встраивает процесс прямо в операционную систему Linux. PM2 Node.js настройка занимает 5 минут и добавляет веб-панель мониторинга бесплатно.

| Критерий | Docker | systemd | PM2 |
|---|---|---|---|
| Подходит для | Готовых образов, микросервисов | Python, Go, любых бинарников | Node.js, npm-проектов |
| Автоперезапуск | restart: always | Restart=on-failure | pm2 startup + save |
| Сложность старта | Средняя, нужен Dockerfile | Средняя, нужен unit-файл | Низкая, одна команда |
| Изоляция окружения | Полная | Нет, общая с ОС | Нет, общая с ОС |
| Логи | docker logs | journalctl | pm2 logs |
| Мониторинг из коробки | Docker Desktop, cAdvisor | Нет | pm2 monit, pm2.io |
Часто эти три штуки комбинируют. Node.js-часть агента крутится под PM2, а тяжёлая модель или векторная база сидит в Docker-контейнере рядом. Ничего страшного, если на одном VPS уживаются все три подхода одновременно.
Docker упаковывает агента вместе с зависимостями в один образ. Запуск с флагом restart: always гарантирует, что контейнер поднимется сам после падения сервера.

Готовые платформы для AI-агентов вроде Paperclip или n8n распространяются именно как Docker-образы, и деплой сводится к одной команде. Для собственного агента процесс похож: пишете Dockerfile, собираете образ, запускаете контейнер.
docker build -t my-ai-agent .
docker run -d \
--name ai-agent \
--restart always \
--env-file .env \
-v $(pwd)/data:/app/data \
my-ai-agentФлаг --restart always перезапускает контейнер и после падения процесса, и после перезагрузки VPS. Отдельно стоит вынести переменные окружения в .env и не зашивать API-ключи в образ. Это правило безопасности, а не рекомендация "для галочки": ключи в образе утекают вместе с ним при любой публикации в реестр.
Для нескольких сервисов сразу (сам агент, база данных, векторное хранилище) удобнее docker-compose. Один файл docker-compose.yml с политикой restart: unless-stopped поднимает всю связку одной командой docker compose up -d и переживает перезагрузку сервера без ручного вмешательства.
Systemd превращает Python-скрипт или бинарник в фоновую службу Linux с автозапуском при загрузке сервера. Unit-файл на 15 строк заменяет screen и nohup.
Systemd сервис бота настраивается через unit-файл в /etc/systemd/system/. Вот рабочий шаблон для Telegram-бота на Python:
[Unit]
Description=Telegram AI Agent
After=network.target
[Service]
Type=simple
User=agent
WorkingDirectory=/home/agent/bot
Environment=PYTHONUNBUFFERED=1
ExecStart=/home/agent/bot/venv/bin/python main.py
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targetСтрока After=network.target важна отдельно: без неё systemd может попытаться поднять бота раньше, чем сервер получит сеть, и агент упадёт с ошибкой подключения. WorkingDirectory обязателен, если код обращается к файлам по относительным путям, а PYTHONUNBUFFERED=1 включает вывод логов в реальном времени, без буферизации.

После сохранения файла сервис активируют тремя командами:
sudo systemctl daemon-reload
sudo systemctl enable ai-agent
sudo systemctl start ai-agentКоманда enable привязывает автозапуск бота на сервере к загрузке ОС, а start поднимает процесс прямо сейчас. Если после systemctl status ai-agent видите статус failed, почти всегда дело в неправильном пути к интерпретатору Python или в правах доступа к рабочей папке.
На Fedora и других дистрибутивах с включённым SELinux systemd может блокировать доступ приложения к файлам даже с корректными правами. Правильное решение не отключать SELinux целиком, а настроить контекст безопасности для папки бота через restorecon или chcon.
PM2 Node.js настройка занимает одну команду для запуска и одну для автозапуска при загрузке сервера. Плюс встроенная веб-панель для мониторинга CPU и памяти.
PM2 остаётся самым быстрым способом поднять Node.js-агента на VPS без демона Docker и без unit-файлов systemd.
npm install -g pm2
pm2 start index.js --name ai-agent
pm2 startup
pm2 saveКоманда pm2 startup генерирует systemd-юнит под капотом и печатает команду для его активации, а pm2 saveсохраняет текущий список процессов, чтобы PM2 поднял их заново после перезагрузки VPS. Без этого шага агент переживёт краш процесса, но не переживёт ребут сервера.

Дальше полезны три команды на каждый день:
pm2 ls показывает таблицу со статусом, uptime и числом рестартов для всех процессов сразуpm2 logs ai-agent открывает поток логов конкретного бота в реальном времениpm2 monit даёт живой график CPU и памяти прямо в терминалеЕсли после обновления .env агент продолжает работать по старым переменным, обычная причина в том, что PM2 кеширует окружение при первом старте. Перезапускать нужно с флагом --update-env:
pm2 restart ai-agent --update-envМаксим: «У меня был случай, когда бот падал раз в пару часов и я не понимал почему. Сидел до пяти утра, правил одну функцию, которая крашилась только на реальном трафике. В моменте хотелось всё бросить, но проблема была решаемая, и я досидел до конца. Оказалось, банальная утечка памяти в цикле опроса API.»
Автоперезапуск при падении настраивается по-разному в каждом инструменте, но суть одна: процесс не должен требовать ручного вмешательства после ошибки.
В Docker это флаг политики перезапуска при запуске контейнера: --restart always поднимает контейнер и после краша, и после ребута VPS, а --restart on-failure:5 ограничивает число попыток пятью, если процесс падает в бесконечном цикле.
В systemd за это отвечает пара строк в unit-файле: Restart=on-failure плюс RestartSec=5, где вторая цифра задаёт паузу перед повторным стартом. Без паузы сервис может уйти в быстрый цикл падений и перегрузить сервер бесконечными попытками запуска.
В PM2 автоперезапуск включён по умолчанию сразу после pm2 start, дополнительно настраивать ничего не нужно. Отдельно PM2 умеет перезапускать процесс по превышению памяти:
pm2 start index.js --name ai-agent --max-memory-restart 500MЭто спасает от ситуации, когда агент постепенно съедает всю оперативку сервера из-за утечки и в итоге роняет весь VPS, а не только себя.

Без нормального логирования диагностика падения агента превращается в гадание. У каждого инструмента свой встроенный способ смотреть логи без сторонних сервисов.
Docker пишет логи контейнера в свой драйвер, и посмотреть их можно командой docker logs -f ai-agent --tail 100. Для продакшена стоит ограничить размер логов заранее через параметр --log-opt max-size=10m, иначе логи разрастутся и займут весь диск за несколько недель непрерывной работы.
Systemd отправляет вывод сервиса в журнал systemd, и достать его помогает journalctl -xu ai-agent -f. Флаг -f держит поток открытым, как tail -f, а -x добавляет пояснения к кодам ошибок систем. Именно поэтому переменная PYTHONUNBUFFERED=1 из предыдущего раздела так важна: без неё Python буферизует вывод, и journalctl показывает логи с задержкой или вообще не показывает print().
PM2 хранит логи в ~/.pm2/logs/ отдельными файлами для stdout и stderr на каждый процесс. Команда pm2 logsсобирает их все в единый поток в терминале, а pm2 flush чистит накопленные логи, если они разрослись.

Минимальный VPS под одного AI-агента стоит от 400 до 700 рублей в месяц. Под многоагентную систему с несколькими процессами нужен план мощнее, от 1500 рублей.
Для одного Telegram-бота или простого AI-агента хватает младшего тарифа: 1 vCPU и 1-2 ГБ RAM. Для системы из нескольких агентов с оркестрацией, как в связке Hermes или OpenClaw, нужен запас по памяти, потому что каждый агент держит свой контекст и очередь задач одновременно.
| Тип нагрузки | Конфигурация | Примерная цена в месяц |
|---|---|---|
| Один бот на PM2 | 1 vCPU, 1 ГБ RAM | 400-530 руб |
| Один AI-агент с моделью через API | 1-2 vCPU, 2 ГБ RAM | 700-1000 руб |
| Несколько агентов, оркестрация | 2-4 vCPU, 4-8 ГБ RAM | 1500-3000 руб |
| Docker с базой и векторным хранилищем | 4 vCPU, 8 ГБ RAM | от 3000 руб |
Российские провайдеры вроде Timeweb Cloud держат вход в VPS от 477 до 530 рублей в месяц с почасовой тарификацией, что удобно для тестового запуска агента на пару дней перед полноценным деплоем. Для агентов, завязанных на зарубежные модели, часто берут сервер в европейской локации, чтобы не упираться в блокировки при обращении к API.

Отдельно стоит закладывать бюджет не только на сервер, но и на подписку к модели. По опыту авторов вайбкодинг-сообщества, связка VPS плюс подписка на "мозги" агента обходится примерно в 3000 рублей в месяц, что заметно дешевле найма человека на аналогичные задачи.
Большинство падений агента на сервере не связаны с самим AI, а с базовой настройкой окружения: правами, переменными и отсутствием паузы между рестартами.
Первая частая ошибка: агент запущен в обычном терминале через python main.py без screen, tmux, Docker, systemd или PM2. Закрыли SSH-сессию, процесс умер вместе с ней. Это самая частая причина, почему бот "работал вчера, а сегодня не отвечает".
Вторая: секреты и API-ключи зашиты прямо в коде или в Docker-образе вместо .env-файла. Это не только риск безопасности, но и боль при обновлении: чтобы поменять ключ, приходится пересобирать весь образ заново.
Третья: нет паузы между попытками рестарта. Если агент падает мгновенно из-за ошибки конфигурации, а RestartSec не задан, systemd или Docker уходят в цикл из десятков рестартов в минуту и забивают журнал логами вместо реальной диагностики.
Четвёртая: никто не смотрит логи, пока агент не перестанет отвечать. Настройте хотя бы простой мониторинг: UptimeRobot бесплатно пингует сервер каждые 5 минут и присылает уведомление, если агент перестал отвечать на запросы.

Что делать, если VPS перезагрузился, а агент не поднялся сам? Проверьте, включён ли автозапуск: для Docker нужен флаг --restart always или unless-stopped, для systemd команда systemctl enable, для PM2 связка pm2 startup плюс pm2 save. Без этих шагов процесс переживёт краш, но не переживёт перезагрузку сервера.
PM2 или systemd что лучше для одного Telegram-бота на Node.js? Для Node.js-бота PM2 обычно быстрее в настройке: одна команда для старта и встроенный мониторинг без дополнительных утилит. Systemd выигрывает, если на сервере уже крутятся другие сервисы и вы хотите унифицировать управление через один инструмент ОС.
Нужен ли Docker, если бот уже работает через PM2? Не обязательно. Docker добавляет изоляцию окружения и упрощает перенос на другой сервер, но для одного бота это часто избыточно. Docker имеет смысл, когда вокруг агента есть база данных, векторное хранилище или несколько сервисов, которые нужно поднимать вместе.
Сколько стоит VPS для AI-агента в месяц? Для одного простого бота хватает тарифа от 400 до 700 рублей в месяц. Многоагентная система с оркестрацией и несколькими процессами требует сервера мощнее, обычно от 1500 рублей в месяц.
Как посмотреть логи агента, если он упал ночью? Для Docker команда docker logs -f ai-agent, для systemd journalctl -xu ai-agent, для PM2 pm2 logs ai-agent. Все три показывают историю вывода процесса и помогают найти момент падения без переустановки агента.
Можно ли запустить несколько AI-агентов на одном VPS? Да, и PM2, и Docker, и systemd поддерживают параллельный запуск нескольких независимых процессов на одном сервере. Ограничение только в ресурсах: чем больше агентов, тем больше нужно оперативной памяти.
Что означает статус failed у systemd-сервиса? Обычно неправильный путь к интерпретатору в ExecStart, отсутствие прав на рабочую папку или ошибка в самом коде агента при старте. Первым делом смотрите systemctl status имя-сервиса и journalctl -xu имя-сервиса для деталей ошибки.
Запустить AI-агента на VPS реально за один вечер, если выбрать правильный инструмент под задачу и не забыть про автоперезапуск и логи. Для вдохновения по инструментам разработки заглядывайте в каталог AI IDE на vibecoderz.ru/ide, а обзор Claude Code как основы для агентных сценариев смотрите на странице https://vibecoderz.ru/item/claude-code.
Если ваш агент решает задачи devops-специалиста, посмотрите подборку под эту нишу на https://vibecoderz.ru/agents/devops.
Если хочется не разбираться со всем этим самостоятельно, а собрать связку под ключ, запишитесь на консультацию к Максиму: https://t.me/maxnagovitsyn.
Обновлено: август 2026.