dmilyin.ru AI-разработка · Нижний Новгород · обновлено 2026-07-09


Кейсы Клиентский проект

Персональный AI-агент на своём VPS под ключ: мультиагентная система в Telegram, данные и настройки у владельца

Развернул персональную агентную систему на VPS под ключ: несколько агентов в Telegram, MCP-интеграции и автоматизация. Данные и кастомизация у владельца, без SaaS-подписки.

Обложка кейса: Персональный AI-агент на своём VPS под ключ: мультиагентная система в Telegram, данные и настройки у владельца

Задача

Человеку или небольшой команде нужен персональный AI-ассистент прямо в мессенджере: чтобы отвечал в Telegram, искал в вебе, дотягивался до своих заметок, сам выполнял проверки по расписанию. Готовые SaaS-боты эту задачу вроде закрывают, но ценой контроля: переписки и данные уходят в чужое облако, оплата идёт за каждого пользователя (per-seat), кастомизация — в пределах того, что разрешил вендор, а при отключении сервиса всё уезжает вместе с ним. А собрать своё стоит 4–10 часов сетапа и регулярной поддержки, которые большинство не потянет.

Важно сразу развести два понятия, потому что их часто путают. Речь про self-hosted агента, а не self-hosted модель. Модель (Claude Haiku/Sonnet/Opus и резервные) по-прежнему работает по API и стоит ровно столько, сколько стоит токен: локально её никто не гоняет. На своём сервере живёт сам агент — оркестрация, маршрутизация, память, интеграции, конфиг. Дешевле AI от этого не становится, токены те же. Выигрыш в другом: платформа, данные и настройки принадлежат владельцу, без платформенной подписки и привязки к поставщику.

Типичный клиент — тот, кому важен контроль над своими данными, нужна глубокая кастомизация под свои процессы или просто не хочет зависеть от чужой подписки и тарифной сетки.

Решение

Я разворачиваю под ключ персональную агентную систему на VPS клиента на базе OpenClaw — open-source gateway, который принимает сообщения из мессенджеров и маршрутизирует их к LLM. Софт бесплатный и открытый, сервер и данные — клиента. Один ответственный за весь стек: инфраструктура, безопасность, агенты, интеграции, сопровождение. Состав системы по слоям.

Платформа и деплой. Gateway на VPS поднимается через Docker Compose (контейнеры gateway + cli) или нативно, с автозапуском под systemd (--user-сервис). Перед ним — Caddy как reverse proxy с автоматическим TLS. Конфигурация в строгом JSON (openclaw.json); большинство правок подхватываются на лету без рестарта, бэкапы конфига создаются автоматически.

Агенты и модели. Несколько агентов под разные задачи с маршрутизацией по каналам и пользователям (bindings): отдельные Telegram-боты заводятся как разные accountId со своими токенами и привязываются к своему агенту. У каждого агента своя модель и fallback-цепочка: основной провайдер Anthropic (Haiku для лёгкого, Sonnet/Opus для сложного), при сбое автоматически подхватывают резервные провайдеры (DeepSeek, Qwen, GLM и др.). Дешёвая модель идёт на рутину, премиум — на сложный анализ; выбор настраивается.

Каналы. Основной — Telegram с мультиагентным роутингом и политикой доступа (pairing / allowlist). Архитектура расширяема на WhatsApp, Discord, Slack без переписывания ядра.

Интеграции и поиск. Веб-поиск через Perplexity. Доступ к данным владельца — через MCP: заметки в Obsidian, подключение внешних сервисов через mcporter bridge, разбор multi-account сценариев (несколько аккаунтов одного сервиса). Так агент отвечает по данным клиента, а не из головы модели.

Автоматизация. Два независимых механизма проактивности: Heartbeat будит агента по интервалу для батча проверок (с активными часами, чтобы не дёргал ночью), Cron запускает задачи по точному расписанию. Агент умеет сам ставить себе cron-задачи через tools.

Память. Долгосрочная память на SQLite + кураторский MEMORY.md — контекст переживает рестарты сервера, агент не «забывает» владельца после перезапуска.

Сабагенты. Тяжёлые подзадачи (ресёрч, суммаризация) уходят в изолированные сессии (sessions_spawn) на дешёвой модели — паттерн «оркестратор → воркеры», без раздувания основного контекста.

Безопасность и сопровождение. Hardening Ubuntu (UFW, SSH-ключи вместо паролей, fail2ban). Секреты держу в отдельном .env через SecretRef, не в конфигах. Доступ к админке gateway закрыт: bind на loopback + SSH-туннель или Caddy/TLS; для нулевых открытых портов — апгрейд на Tailscale/WireGuard (gateway виден только в приватной сети). Скилы ставлю с аудитом по репутации (после атак на ClawHub ~1 из 13 публичных скилов был вредоносным) и изоляцией в контейнере. Плюс crash-recovery через systemd, бэкапы конфигов, контроль затрат и rate-limit, обновления образа. Это и есть управляемое сопровождение, а не «поставил и забыл».

Архитектура агентной системы на своём VPS: Caddy + gateway, несколько агентов с fallback-моделями, MCP-интеграции, память на SQLite, контур безопасности

Стек

OpenClaw (open-source gateway) · Docker Compose / systemd --user · Caddy + TLS · Anthropic Haiku/Sonnet/Opus + fallback-провайдеры (DeepSeek/Qwen/GLM) · Telegram Bot API (мультиагентный роутинг) · MCP (mcporter, Obsidian) · Perplexity (веб-поиск) · SQLite (память) · Ubuntu VPS · Tailscale/WireGuard (опц.)

Результат

  • Работающая персональная агентная система на сервере владельца: он общается с агентом(ами) в Telegram, а данные, конфиг и интеграции остаются на его VPS.
  • Развёрнуто и работает: мультиагентный роутинг, fallback между провайдерами (упал основной — подхватывает резерв), MCP multi-account, веб-поиск, автоматизация по heartbeat и cron, память, переживающая рестарты. Дашборд инстанса показывает аптайм и состояние каналов/агентов/скилов — система живёт автономно, не в режиме демо.
  • Кастомизация под владельца: свои агенты, свои модели и маршрутизация, свои интеграции и скилы — то, что в чужом SaaS закрыто настройками вендора.

Дашборд работающего инстанса OpenClaw: статус OK, аптайм 64 дня, 52 скила, доступ через SSH-туннель (секреты скрыты)

Адрес 127.0.0.1 на дашборде — не локальный запуск: gateway на VPS слушает только loopback, а админка открыта через SSH-туннель, поэтому в браузере виден localhost. Снаружи порт закрыт — это и есть паттерн «ноль открытых портов».

Рыночный ориентир (отраслевой, 2026): сам OpenClaw open-source и бесплатен, managed-хостинги под него берут $29–39/мес за инстанс как платформенную плату; self-host обходится в $5–15/мес за VPS плюс 4–10 часов первичного сетапа и 1–3 часа в месяц на поддержку. Это и закрывает услуга «под ключ + сопровождение». Честная рамка: токены моделей оплачиваются по API в обоих случаях одинаково, дешевле AI не становится. Платишь за другое — контроль над данными, кастомизацию и отсутствие платформенной подписки и vendor lock-in.

Инфографика «чужой SaaS-бот vs свой агент на VPS»: данные, кастомизация, подписка и lock-in — разница во владении, не в цене токенов