コンテンツへスキップ

ガイド

CloudStack クラウドに AI サポートチャットボットと SSH エージェントを追加する方法

NexCMPはApache CloudStackおよびProxmox VE向けのセルフホスト型請求・カスタマーポータルソフトウェアです。バージョン1.2.0では、カスタマーポータル内のアシスタントであるAI Chatと、SSH経由でお客様のVM上でタスクを実行するAI Agentの2つのAIモジュールが提供されています。本ガイドでは、カスタマーポータルと管理者コンソールのスクリーンショットを交えながら、OpenAI互換のAPIキーを使用して両方をセットアップする手順を解説します。

所要時間:既存のNexCMP環境で約15分。

スタック

構成要素は 4 つで、そのうち 3 つはおそらくすでに稼働しているものです。

  • NexCMP 1.2.0

    お客様がすでに利用しているパネルで、Ubuntu 22.04 または 24.04 にインストールされます。AI Chat と AI Agent はライセンスに含まれており、追加料金はかかりません。

  • OpenAI 互換エンドポイント

    ツール(function)呼び出しをサポートする任意の chat-completions API。ホスト型プロバイダー、または複数のプロバイダーの前段で運用するプロキシをご利用いただけます。

  • 利用上限が設定されたキー

    パネル専用のキーを用意し、プロバイダー側またはプロキシ内で月額予算を設定することで、利用額の過剰な膨張を防ぎます。

  • CloudStack VM

    AI Agent は、お客様が該当 VM 用に保存したログイン情報を使用し、パネルサーバーから SSH 経由でお客様の VM に接続します。

ステップバイステップ手順

  1. パネルを 1.2.0 にアップデート

    管理者コンソールで「License」を開いて「Update」を押すか、サーバー上で sudo nexcmp update を実行します。アップデートは署名されており、検証後にインストールされます。

  2. 利用制限付き API キーの作成

    AI プロバイダー(またはプロキシ)でこのパネル専用のキーを作成し、月額予算を設定します。サポートチャットには、高速で低コストなモデルで十分です。

  3. Admin › Settings › AI provider に入力

    エンドポイント URL、キー、モデル名を入力し、「Test connection」を押します。キーはパネルのデータベースに暗号化されて保存され、再表示されることはありません。

  4. AI モジュールを有効化する

    License › Modules で AI をオンにします。ページの再読み込み後、カスタマーポータルのメニューに AI Chat と AI Agent が表示されます。モジュールをオフにすると再び非表示になります。

  5. お客様からの質問に AI Chat が回答

    AI Chat はプランや料金、およびお客様自身が契約中のサービスに関する質問に回答します。オペレーターによる対応が必要な場合は、サポートチームへ会話を引き継ぐことができます。

    カスタマーポータルで、お客様のサーバーに関する質問に回答するAI Chat
  6. お客様が VM 上で AI Agent を実行

    お客様が自身の VM を1台選択し、自然言語でタスクを指示します。エージェントが SSH 経由でコマンドを実行し、すべてのコマンドと実行結果を表示します。

    カスタマーポータル、VM上でコマンドを実行しその出力を表示しているAI Agent
  7. 利用状況の把握

    利用料金は NexCMP ではなく、ご利用の AI プロバイダーから請求されます。プロバイダーまたはプロキシのダッシュボードで費用を確認し、お客様の利用状況に応じてキーの予算上限を調整してください。

事前に必要な準備

  • NexCMP 1.2.0 以降(License › Modules に AI モジュールが含まれていること)。
  • OpenAI 互換の chat/completions エンドポイントを持ち、ツール(Function)呼び出しに対応したモデルを提供する AI プロバイダー(OpenAI、OpenRouter、LiteLLM ゲートウェイ、自社運用の vLLM サーバーなど)。
  • AI Agent の場合、パネルサーバー上の openssh-client(インストーラーによって追加されます)と、パネルサーバーから各 VM の SSH ポート(デフォルトは 22)へのネットワークルート。
  • AI Agent の場合、お客様が所有し、稼働中でロックされていない Linux VM。保存されたログイン情報(VM 作成時またはパスワードリセット時に保存されたもの)、またはパネルのオペレーションキーが必要です。Windows VM は拒否されます。
  • AI Chat のスタッフ引き継ぎ用(任意): Settings › Admin alerts の Telegram ボットとチャット ID。
ssh -V
nc -vz 198.51.100.10 22

はじめにパネルサーバーからエンドポイントをテスト

NexCMP は、末尾が /v1 の URL には /chat/completions を、その他の URL には /v1/chat/completions を追加します。すでに末尾が /chat/completions の URL はそのまま使用されます。エンドポイントを入力する前に、NexCMP サーバーからリクエストを1件送信してください。choices[0].message.content を含む JSON レスポンスが返ってくれば、エンドポイントとモデルは正常に動作しています。

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 クライアントから、非対話形式で1件ずつ実行されます。接続先は常にデータベース内の VM の IP アドレスであり、リクエストから渡されたアドレスが使用されることはありません。
  • 保存されたパスワードは、プロセス環境内のワンタイム SSH_ASKPASS ヘルパー経由で渡されます。ディスクへの書き込みやコマンドラインへの露出は行われません。
  • 各コマンドの出力は最大 200 KB に制限され、1回のターンは最大 10 ステップで終了します。お客様が同時に実行できるエージェントは最大 2 件です。
  • Confirm モードでは、すべてのコマンドでお客様が Run をクリックするまで待機します。Auto モードでは、厳格な読み取り専用リストに含まれるコマンド(df -h、ps、journalctl など)のみが自動で実行されます。
  • ファイルの上書きや削除、アカウントや SSH Keys の変更、外部サーバーへのデータ送信、スクリプトのダウンロードと実行、マシンのシャットダウンや再起動を行うコマンドは、Auto モードであっても常に Needs confirmation と表示されます。
  • コマンドの出力は信頼できないデータとしてモデルに提示され、出力内に含まれる指示が実行されることはありません。

トラブルシューティング

発生しやすいエラーメッセージと確認事項。

  • Test connection が 401 で失敗する

    考えられる原因
    そのエンドポイントに対するキーが正しくありません。
    対処方法
    キーとエンドポイントを確認してください。ベース URL を変更した場合はキーを再入力してください。
  • Test connection が 404 または model not found で失敗する

    考えられる原因
    パスまたはモデル ID が正しくありません。
    対処方法
    ベース URL の末尾が /v1 であることを確認し、プロバイダーの正確なモデル ID を指定してください。
  • ポータルに AI メニューが表示されない

    考えられる原因
    モジュールが無効になっているか、プロバイダーが使用中として有効化されていません。
    対処方法
    License › Modules で AI モジュールをオンにし、プロバイダーを有効化してください。
  • AI Agent がログインできませんでした

    考えられる原因
    該当VMの保存されたパスワードおよびオペレーションキーがありません。
    対処方法
    ポータルでVMのパスワードをリセットし、再保存してください。
  • サーバーが時間内に応答しませんでした

    考えられる原因
    ファイアウォール、SSHの未リッスン、またはVMの高負荷が原因です。
    対処方法
    コントロールパネルのサーバーから nc -vz <vm-ip> 22 を実行し、VM内でsshdを起動してください。
  • AIの応答が遅すぎます

    考えられる原因
    プロバイダーまたはモデルの応答が遅延しています。
    対処方法
    Settings › AI provider で、より高速なモデルを使用するか、Reasoning effort を低く設定してください。
  • AI Chat を利用するにはサインインしてください

    考えられる原因
    ビジターがサインインしていません。
    対処方法
    仕様通りの動作です:AI Chat はサインイン済みのお客様専用です。

プライバシーとコスト

お客様の質問内容およびAIがそのお客様のために読み取ったデータ(読み取り専用)は、設定されたAIプロバイダーに送信されます。プライバシーポリシーにその旨を明記してください。

NexCMP はAIの利用コストの計測を行いません。プロバイダー側の予算管理機能を使用し、Customers › Support › Ticket › AI settings で1日あたりの顧客ごとのAIターン数(デフォルトは40)を制限して支出を抑えてください。

次のステップ

AI ChatとAI Agentはプロバイダーキーを保存するまで無効のままです。決定する前に費用が請求されたり、データが送信されたりすることはありません。概要をお読みいただくか、その他のモジュールをご覧ください。

AIモジュールに関するよくある質問

どのAIモデルが利用できますか?
ツール(関数)呼び出しをサポートする、OpenAI互換のチャット完了エンドポイントに対応したすべてのモデルが利用可能です。エンドポイント、キー、モデルは Admin › Settings › AI provider で設定します。
エージェントが他のお客様のサーバーにアクセスすることはありますか?
いいえ。AI Agent は、サインインしているお客様のアカウントに属するVM上でのみ、そのVMに保存されているログイン情報を使用して動作します。
NexCMP のAI機能に追加料金はかかりますか?
いいえ。AIモジュールはライセンスに含まれています。設定したキーの利用料金は、ご利用のAIプロバイダーへ直接お支払いいただきます。
AIプロバイダーへの接続テストはどのように行いますか?
Admin › Settings › AI provider で「Save」をクリックした後、「Test connection」を押します。短いテスト質問が1問送信され、「Connected」とモデル名、所要時間が表示されるか、プロバイダーから返されたエラーが表示されます。
AI Agent には個別のSSHゲートウェイが必要ですか?
いいえ。デフォルト構成では、コントロールパネル自身が内蔵のsshクライアントを使用します。オプションの ssh-proxy Webターミナルは、Web SSH機能が有効な場合にのみ使用されます。
サインインしていないビジターも AI Chat を利用できますか?
いいえ。AI Chat はサインイン済みのお客様専用です。サインインしていないビジターには、まずサインインするよう促答が表示されます。
AI Agent は Windows VM でも動作しますか?
いいえ。稼働中の Linux VM 上でのみ動作し、Windows VM は拒否されます。
AI機能を無効化できますか?
はい。License › Modules でAIモジュールをオフにできます。ポータルから AI Chat および AI Agent が非表示になり、そのAPIはモジュールが無効である旨を返します。

クラウドにAIを導入

AI Chat と AI Agent はすべての NexCMP ライセンスに含まれています。初年度は無料、またはソースコード付きで $499(一括払い)です。

最終更新: