Сервер с LLM-интерфейсом — это не просто сервер, а полноценная платформа для запуска интеллектуальных агентов. Среди прочего, они отлично справляются с задачами мониторинга, которые мы традиционно решали с помощью скриптов, демонов и специализированных программ.

Например, на VPS можно запустить агента с круглосуточным мониторингом цен на маркетплейсах: на Хабре недавно была статья об этом. Понятно, что он запускается на любом компьютере, но конкретно для целей мониторинга сайтов в интернете требуется онлайн 24/7.

Другие функции ИИ-агентов на VPS:

  • Отслеживание изменений на сайте.

  • Информационные трекеры: курсы валют, погода, пробки, биржевые котировки.

  • Оркестрация задач: через cron, Airflow или по расписанию — запуск пайплайнов, ETL, бэкапов.

  • Анализ логов и событий с помощью grep, awk и др.

  • ИИ-девопс: LLM может интерпретировать данные, принимать решения и отправлять уведомления (например, в Telegram). Его можно использовать как сисадмина для мониторинга проблем, а также CI/CD-агента для генерации тестов и др.

  • Обработка входящих данных: письма, формы, сообщения. Например, если на VPS установлен почтовый сервер, то агент может классифицировать письма, фильтровать спам, выделять важные сообщения.

Всё это запускается на сервере в круглосуточном режиме, может присылать алерты и регулярные отчёты по электронной почте или в Телеграм.

На GitHub можно найти много хороших LLM-интерфейсов для установки на VPS и управления агентами, вот некоторые из них:

  • DocsGPT — приватная платформа для агентов, ассистентов и корпоративного поиска. Встроены конструктор агентов, Deep Research, анализ документов (PDF, DOCX, CSV, XLSX, EPUB, MD, RST, HTML, MDX, JSON, PPTX, изображения), мультимодальная поддержка, API для агентов.

DocsGPT
DocsGPT
  • agenticSeek — полностью автономная локальная бесплатная альтернатива облачной платформе Manus AI: автоматический выбор лучших агентов, сёрфинг по вебу, планирование сложных задач, голосовой интерфейс, генерация и исполнение кода.

  • n8n — популярная платформа для автоматизации с использованием агентов.

n8n
n8n
  • Depthnet с бесконечным циклом самообучения и выполнения (24/7), статья на Хабре, можно использовать как «ИИ-сотрудника» в своём коллективе для какого-нибудь мониторинга.

Управление плагинами Depthnet
Управление плагинами Depthnet
  • airi — Grok Companion в контейнере на самохостинге, умеет играть в Minecraft и Factorio, чатится через Telegram и Discord, имеет память DuckDB WASM, распознаёт речь, поддерживает анимацию тела VRM и Live2D.

airi
airi

Вообще, в мире сейчас настоящий бум так называемых «no-code» решений для создания ИИ-агентов: от простых фреймворков (Zapier, make.com) до весьма продвинутых, которые часто упоминаются на Хабре (n8n, pipedream). Можно сказать, что старый добрый «no-code» вышел на новый виток своего развития, теперь это называется «вайбкодинг».

Многие LLM-платформы оптимизированы для локального использования на самохостинге, когда отправка персональных данных в облако строго запрещена.

Для установки на VPS см. также список лучших LLM-приложений на Github, там коллективы из множества ИИ-агентов, голосовые агенты, MCP-агенты, RAG, приложения с памятью, чат-боты, учебные материалы и др.

Claude Code

Claude Code от Anthropic — платный инструмент, но это одна из лучших ИИ-платформ на сегодняшний день, с армией поклонников, которые делятся своим опытом и советами. В статье автор объясняет отличия от Cursor и других конкурентов:

  • Один главный цикл: Claude Code использует один основной поток сообщений, максимум с одной веткой. Это упрощает отладку и делает поведение агента более понятным и предсказуемым.

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

  • Отказ от RAG: вместо него Claude Code использует LLM-поиск с ripgrep и jq, что кажется более интуитивным, «человеческим» подходом.

  • Набор инструментов включает Bash, Grep, Glob, WebFetch, TodoWrite и IDE-интеграции. Для понимания, вот фрагмент системного промпта для grep:

Tool name: Grep
Tool description: A powerful search tool built on ripgrep

  Usage:
  - ALWAYS use Grep for search tasks. NEVER invoke `grep` or `rg` as a Bash command. The Grep tool has been optimized for correct permissions and access.
  - Supports full regex syntax (e.g., "log.*Error", "function\s+\w+")
  - Filter files with glob parameter (e.g., "*.js", "**/*.tsx") or type parameter (e.g., "js", "py", "rust")
  - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
  - Use Task tool for open-ended searches requiring multiple rounds
  - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use `interface\{\}` to find `interface{}` in Go code)
  - Multiline matching: By default patterns match within single lines only. For cross-line patterns like `struct \{[\s\S]*?field`, use `multiline: true`

Input schema: {'type': 'object', 'properties': {'pattern': {'type': 'string', 'description': 'The regular expression pattern to search for in file contents'}, 'path': {'type': 'string', 'description': 'File or directory to search in (rg PATH). Defaults to current working directory.'}, 'glob': {'type': 'string', 'description': 'Glob pattern to filter files (e.g. "*.js", "*.{ts,tsx}") - maps to rg --glob'}, 'output_mode': {'type': 'string', 'enum': ['content', 'files_with_matches', 'count'], 'description': 'Output mode: "content" shows matching lines (supports -A/-B/-C context, -n line numbers, head_limit), "files_with_matches" shows file paths (supports head_limit), "count" shows match counts (supports head_limit). Defaults to "files_with_matches".'}, '-B': {'type': 'number', 'description': 'Number of lines to show before each match (rg -B). Requires output_mode: "content", ignored otherwise.'}, '-A': {'type': 'number', 'description': 'Number of lines to show after each match (rg -A). Requires output_mode: "content", ignored otherwise.'}, '-C': {'type': 'number', 'description': 'Number of lines to show before and after each match (rg -C). Requires output_mode: "content", ignored otherwise.'}, '-n': {'type': 'boolean', 'description': 'Show line numbers in output (rg -n). Requires output_mode: "content", ignored otherwise.'}, '-i': {'type': 'boolean', 'description': 'Case insensitive search (rg -i)'}, 'type': {'type': 'string', 'description': 'File type to search (rg --type). Common types: js, py, rust, go, java, etc. More efficient than include for standard file types.'}, 'head_limit': {'type': 'number', 'description': 'Limit output to first N lines/entries, equivalent to "| head -N". Works across all output modes: content (limits output lines), files_with_matches (limits file paths), count (limits count entries). When unspecified, shows all results from ripgrep.'}, 'multiline': {'type': 'boolean', 'description': 'Enable multiline mode where . matches newlines and patterns can span lines (rg -U --multiline-dotall). Default: false.'}}, 'required': ['pattern'], 'additionalProperties': False, '$schema': 'http://json-schema.org/draft-07/schema#'}

Последовательность использования инструментов в одном из агентов:

Claude Code на VPS в «опасном режиме»

Чтобы безопасно изолировать агентов и они ничего не натворили, есть смысл изолировать Claude Code в контейнере, можно вместе с VS Code. Тогда можно запускать его в «опасном» режиме со всеми разрешениями: переписывать файлы и т. д.

Для работы Claude Code в таком варианте нужно:

  1. Действующая лицензия Claude Code.

  2. Токен аутентификации OAuth.

  3. Docker на сервере.

Выбираем подходящий VPS в маркетплейсе RUVDS. Проще всего взять сервер DOCKER CE – UBUNTU 18.04, потому что там Docker CE изначально уже установлен. Конфигурация по умолчанию включает два ядра CPU на 2,2 ГГц, 2 ГБ RAM и SSD на 20 ГБ:

При желании конфигурацию можно скорректировать.

Сразу после оплаты серверу выделяется статический IP-адрес и начинается автоматическая установка Ubuntu 18.04:

После запуска сервера клонируем репозиторий и собираем код (ниже указаны два варианта контейнеров: claude-standalone и claude-with-mcp-example, первый без сконфигурированного MCP-сервера, то есть минималистичная установка):

# Клонируем репозиторий
git clone <repository-url>
cd claude-code-container

# Минималистичная версия
cd claude-standalone
./build.sh
CLAUDE_CODE_OAUTH_TOKEN=sk-... ./run_claude.sh

# Версия с примером MCP-сервера
cd claude-with-mcp-example
./build.sh
CLAUDE_CODE_OAUTH_TOKEN=sk-... ./run_claude.sh

# Указываем токен Claude для аутентификации
CLAUDE_CODE_OAUTH_TOKEN=sk-... ./run_claude.sh --debug --mcp-debug

Потом в конфигурацию можно добавлять другие MCP-серверы:

"mcpServers": {
   "your-mcp": {
      "type": "stdio",
      "command": "node",
      "args": ["/workspace/mcp-servers/your-mcp/build/index.js", "stdio"],
      "env": {},
      "trusted": true,
      "autoStart": true
   }
}

Как вариант, можно использовать официальный контейнер Anthropic с параметром запуска кода без ограничений: claude --dangerously-skip-permissions.

Локальный ИИ для Apple CPU

Большинство современных LLM выпускаются с открытым исходным кодом и открытыми весами (настройками). Это позволяет теоретически запустить их локально на своей машине. Но кроме локального запуска нужно обеспечить ещё полностью изолированное окружение для выполнения кода.

В такой схеме LLM работает локально, а выполнение кода происходит в изолированном контейнере:

В качестве бонуса в конфигурацию входит headless-браузер для сёрфинга в интернете
В качестве бонуса в конфигурацию входит headless-браузер для сёрфинга в интернете

Вот вариант технического стека под Apple для такой установки:

  • LLM'ки: Ollama для локальных моделей.

  • Фронтенд UI: assistant-ui.

  • VM в песочнице: container от Apple.

  • Оркестрация: coderunner (утилита с открытым исходным кодом специально для запуска ИИ-кода в контейнере).

  • Автоматизация браузера: Playwright.

Особенно стоит отметить локальный веб-UI assistant-ui для работы с ChatGPT и другими нейронками. После определённой настройки с помощью ai-sdk появляется доступ к множеству LLM, список можно ограничить только локальными моделями:

Для выполнения кода в контейнерах ребята выбрали container от Apple вместо привычного Docker. Но если запускать VM на своём VPS, то Docker кажется более подходящим вариантом, тем более мы рассмотрели его установку в предыдущем разделе из готового образа в маркетплейсе.

Внутри виртуальной машины в контейнере устанавливается сервер Jupyter, доступный по протоколу MCP (Model Context Protocol) для взаимодействия программных агентов по стандартному адресу типа http://coderunner.local:8222/mcp.

Claude Desktop и Gemini CLI запускают сгенерированный код на исполнение в этом контейнере после добавления нескольких строчек в конфигурацию:

"mcpServers": {
    "coderunner": {
      "httpUrl": "http://coderunner.local:8222/mcp"
    }
}

В такой системе Claude сам догадается найти в интернете инструмент execute_python_code и использовать его для запуска сгенерированного кода:

Комбинация UI+LLM+браузер+CodeRuuner в контейнере (для запуска кода) работает полностью локально и справляется с выполнением многих задач:

  1. Тематические исследования.

  2. Генерация графиков из CSV.

  3. Редактирование видео (с помощью ffmpeg).

  4. Редактирование изображений — изменение размера, обрезка, преобразование форматов.

  5. Установка инструментов из Github в контейнер.

  6. Скачивание страниц, выжимка сути. … и т. д.

Например, редактирование видео (вырезать фрагменты видеоролика и склеить их в итоговый файл):

Хотя, зная команды ffmpeg, это легко делается вручную из командной строки, но для тестирования сервера вполне годный пример.

В будущем можно рассмотреть загрузку в локальную LLM всего архива персональных данных, собранного за годы жизни — письма, переписка в мессенджерах, заметки, ежедневники, фотографии, документы и т. д. Cжатая векторная база займёт много гигабайт, но станет фундаментом персональной RAG в локальном ИИ-агенте. Примерно такого «личного цифрового ассистента», который знает все детали жизни человека, предсказывал Билл Гейтс в книге «Дорога в будущее» (1996), а до него — многие фантасты.

Свой ИИ-сервер

В качестве альтернативы VPS можно собрать свой ИИ-сервер из относительно дешёвых компонентов.

В самом бюджетном варианте такой сервер обойдётся примерно в $1300, если покупать б/у-компоненты: видеокарту вроде Nvidia RTX 4070 (самая дешёвая карта с 12 ГБ памяти и тензорными ядрами), её можно найти за $600 на барахолках.

Для корпоративного использования обычно устанавливают более дорогие серверы с серверными ИИ-ускорителями Nvidia типа H100, H200, A100 или ИИ-ускорители потребительского уровня вроде RTX 6000 (б/у можно найти дешевле $9000). Это позволяет не только сэкономить на облачных подписках, но и соблюсти запрет на передачу корпоративных данных в облако за границу.

В будущем можно представить, что даже маленькие локальные хостеры начнут устанавливать ИИ-серверы в ЦОДах и предлагать клиентам дешёвые «локальные» альтернативы облачным LLM.

© 2025 ООО «МТ ФИНАНС»

Комментарии (0)