Руководство
Как добавить AI-чат поддержки и SSH-агент в облако CloudStack
NexCMP — это self-hosted биллинг и панель клиента для Apache CloudStack и Proxmox VE. В версии 1.2.0 представлены два ИИ-модуля: AI Chat, ассистент внутри панели клиента, и AI Agent, выполняющий задачи на VM клиента по SSH. Это руководство поможет настроить оба модуля с помощью совместимого с OpenAI API ключа, на наглядных скриншотах панели клиента и панели администратора.
Необходимое время: около 15 минут при уже установленном NexCMP.
Стек
Четыре компонента, три из которых у вас, скорее всего, уже развернуты.
NexCMP 1.2.0
Панель, с которой уже работают ваши клиенты, установленная на Ubuntu 22.04 или 24.04. AI Chat и AI Agent включены в лицензию без дополнительной платы.
OpenAI-совместимый endpoint
Любой API chat completions с поддержкой tool (function) calling: облачный провайдер или прокси, запущенный перед несколькими провайдерами.
Ключ с лимитом расходов
Выделите для панели отдельный ключ и настройте для него месячный бюджет у провайдера или в прокси, чтобы предотвратить неконтролируемые расходы.
Ваши VM в CloudStack
AI Agent подключается к VM клиента по SSH с сервера панели, используя учетные данные, сохраненные клиентом для этой VM.
Пошаговая инструкция
Обновите панель до версии 1.2.0
В панели администратора перейдите в License и нажмите Update или выполните sudo nexcmp update на сервере. Обновление имеет цифровую подпись и проверяется перед установкой.
Создайте ключ API с лимитом расходов
У вашего AI-провайдера (или в прокси) создайте отдельный ключ для этой панели и установите месячный бюджет. Для чата поддержки достаточно быстрой и недорогой модели.
Укажите его в Admin › Settings › AI provider
Вставьте endpoint URL, ключ и название модели, затем нажмите Test connection. Ключ хранится в базе данных панели в зашифрованном виде и больше никогда не отображается.
Включите AI-модуль
В разделе License › Modules включите AI. AI Chat и AI Agent появятся в меню панели клиента после перезагрузки страницы; при выключении модуля они снова скроются.
Клиенты обращаются к AI Chat
AI Chat отвечает на вопросы о ваших тарифах, ценах и текущих услугах клиента. Если вопрос требует участия человека, клиент может передать диалог вашей службе поддержки.

Клиенты запускают AI Agent на VM
Клиент выбирает одну из своих VM и описывает задачу простыми словами. Агент выполняет команды по SSH и отображает каждую команду вместе с ее выводом.

Контролируйте использование
Использование тарифицируется вашим AI-провайдером, а не NexCMP. Отслеживайте расходы в панели управления провайдера или прокси-сервера и корректируйте лимиты ключа по мере роста активности клиентов.
Что потребуется перед началом работы
- NexCMP 1.2.0 или новее с модулем AI в License › Modules.
- AI-провайдер с эндпоинтом chat/completions, совместимым с OpenAI, и моделью с поддержкой вызова функций (tool/function calling): подойдут OpenAI, OpenRouter, шлюз LiteLLM или собственный сервер vLLM.
- Для AI Agent: openssh-client на сервере панели (устанавливается инсталлятором) и сетевой маршрут от сервера панели к SSH-порту каждой VM (по умолчанию 22).
- Для AI Agent: работающая и незаблокированная Linux VM клиента с сохраненным логином (сохраненным при создании VM или сбросе пароля) либо служебным ключом панели. Запросы к Windows VM отклоняются.
- Опционально для передачи обращений из AI Chat сотрудникам: Telegram-бот и chat ID в Settings › Admin alerts.
ssh -V
nc -vz 198.51.100.10 22Сначала протестируйте эндпоинт с сервера панели
NexCMP добавляет /chat/completions к URL, заканчивающимся на /v1, и /v1/chat/completions — к любым другим URL; URL, который уже заканчивается на /chat/completions, используется без изменений. Прежде чем указывать эндпоинт, отправьте к нему тестовый запрос с сервера NexCMP. JSON-ответ с choices[0].message.content означает, что эндпоинт и модель работают корректно.
curl -s https://ai.example.com/v1/chat/completions \
-H "Authorization: Bearer XXXX" -H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Reply with one word: OK"}]}'Как AI Agent выполняет команды и что он не будет запускать автоматически
- Команды выполняются с сервера панели через собственный ssh-клиент, строго по одной неинтерактивной команде за раз. В качестве цели всегда используется IP-адрес VM из базы данных, но ни в коем случае не адрес из запроса.
- Сохраненный пароль передается через однократный вызов SSH_ASKPASS в окружении процесса: он не записывается на диск и не передается через аргументы командной строки.
- Вывод каждой команды ограничен 200 KB, шаг диалога завершается максимум через 10 действий, а клиент может одновременно запускать не более 2 сессий агента.
- В режиме Confirm каждая команда ожидает нажатия кнопки Run клиентом. В режиме Auto автоматически запускаются только команды из строгого списка безопасных операций для чтения, например df -h, ps или journalctl.
- Команды, которые перезаписывают или удаляют файлы, изменяют учетные записи или SSH-ключи, отправляют данные на внешний сервер, скачивают и запускают скрипты либо выключают или перезагружают машину, всегда выводят статус Needs confirmation даже в режиме Auto.
- Вывод команд передается модели как недоверенные данные, и содержащиеся в нем инструкции игнорируются.
Устранение неполадок
Наиболее частые сообщения и способы их проверки.
Test connection завершается с ошибкой 401
- Вероятная причина
- Неверный ключ для указанного эндпоинта.
- Что делать
- Проверьте ключ и эндпоинт, а также введите ключ заново, если изменился базовый URL.
Test connection завершается с ошибкой 404 или model not found
- Вероятная причина
- Неверный путь или идентификатор модели.
- Что делать
- Убедитесь, что базовый URL заканчивается на /v1, и укажите точный идентификатор модели у провайдера.
В панели клиента отсутствует меню AI
- Вероятная причина
- Модуль отключен либо провайдер не активирован для использования.
- Что делать
- Включите AI-модуль в License › Modules и активируйте провайдера.
Агенту не удалось войти в систему
- Вероятная причина
- Нет сохраненного пароля и сервисного ключа для этой VM.
- Что делать
- Сбросьте пароль VM в портале, чтобы он сохранился заново.
Сервер не ответил вовремя
- Вероятная причина
- Брандмауэр, неактивный сервис SSH или перегруженная VM.
- Что делать
- Выполните nc -vz <vm-ip> 22 с сервера панели и запустите sshd внутри VM.
ИИ отвечает слишком медленно
- Вероятная причина
- Провайдер или модель работают медленно.
- Что делать
- Выберите более быструю модель или уменьшите Reasoning effort в Settings › AI provider.
Войдите в систему для использования AI Chat
- Вероятная причина
- Посетитель не авторизован.
- Что делать
- Штатное поведение: AI Chat доступен только авторизованным клиентам.
Конфиденциальность и расходы
Вопросы клиентов и данные, которые ИИ считывает для них (в режиме только для чтения), отправляются вашему AI-провайдеру. Укажите это в вашей политике конфиденциальности.
NexCMP не ведет биллинг расходов на ИИ. Используйте функции контроля бюджета у вашего провайдера и уменьшите лимит AI turns per day per customer (по умолчанию 40, в разделе Customers › Support › Ticket › AI settings) для ограничения расходов.
Что дальше
AI Chat и AI Agent остаются отключенными, пока вы не сохраните ключ провайдера, поэтому никакие средства не списываются и данные никуда не отправляются без вашего решения. Ознакомьтесь с обзором или изучите другие модули.
Вопросы о модулях ИИ
Какие модели AI поддерживаются?
Может ли агент получить доступ к серверам других клиентов?
Взимает ли NexCMP плату за использование ИИ?
Как проверить подключение к AI-провайдеру?
Требуется ли для AI Agent отдельный SSH-шлюз?
Могут ли неавторизованные посетители использовать AI Chat?
Работает ли AI Agent на VM под управлением Windows?
Можно ли отключить эту функцию?
Ссылки и документация
Спецификации, упомянутые в данном руководстве.
Внедрите ИИ в свое облако
AI Chat и AI Agent включены во все лицензии NexCMP — бесплатно на первый год или $499 разово с исходным кодом.
Последнее обновление:


