AI Agent
Où dans l'admin : System › Settings › AI provider (
/settings/ai) — commutateur de module et fournisseur ; System › Admin › License & updates (/license) — commutateur de module. Où dans le portail : AI Agent (/ai/agent) et la page/chat/agent, ou le mode Agent dans le chat.
Description
L'AI Agent se connecte à la propre VM Linux d'un client via SSH et exécute des tâches décrites en langage naturel : "check system health", "install Docker", "find recent errors", "free up disk space". Il affiche chaque commande qu'il propose ainsi que sa sortie. Les commandes en lecture seule peuvent s'exécuter automatiquement ; toute action modifiant le serveur attend que le client clique sur Run.
Prérequis
| Élément | Prérequis |
|---|---|
| Module IA et fournisseur | Le module AI activé et un AI provider fonctionnel. L'Agent requiert également un modèle compatible avec l'appel d'outils (tool calling). |
openssh-client sur le serveur du panneau | L'Agent exécute les commandes avec le programme ssh propre au panneau (/usr/bin/ssh). L'installateur installe openssh-client ; vérifiez avec ssh -V. Sans cela, l'Agent indique "ssh client is not installed on the panel server". |
| Pas de passerelle SSH séparée | Dans l'installation par défaut, le service SSH intégré est utilisé et le terminal web ssh-proxy n'est pas requis. Ce n'est que lorsque la fonction optionnelle web SSH (feature_ssh_web) a été activée et que le service ssh-proxy est installé que l'Agent passe par ssh-proxy à la place. |
| Réseau | Le serveur du panneau doit pouvoir joindre l'IP de la VM sur son port SSH (22 par défaut). Vérifiez les pare-feu et les groupes de sécurité entre le panneau et le réseau invité. |
| VM | Possédée par le client, en cours d'exécution, non verrouillée, Linux (les machines virtuelles Windows sont refusées), avec une adresse IP publique ou accessible. |
| Identifiants SSH | L'utilisateur et le mot de passe de connexion de la VM enregistrés par NexCMP (sauvegardés lors de la création de la VM ou de la réinitialisation de son mot de passe, chiffrés), ou la clé d'opérations du panneau si elle est installée. Si aucun des deux n'existe, l'Agent indique qu'il ne peut pas se connecter. |
Préparer l'infrastructure
Vérifiez le client SSH sur le serveur du panneau :
bashssh -V sudo apt-get install -y openssh-client # only if missingVérifiez que le serveur du panneau peut ouvrir une connexion SSH vers une VM invitée :
bashnc -vz 198.51.100.10 22Remplacez l'adresse par l'IP d'une VM de test. Si cela échoue, corrigez d'abord le routage ou le pare-feu.
Assurez-vous que l'invité autorise la connexion par mot de passe pour l'utilisateur stocké par NexCMP (certaines images cloud la désactivent), ou que la clé d'opérations du panneau est installée sur l'invité.
Connecter dans NexCMP
- Complétez AI provider : module activé, fournisseur enregistré, Test connection en vert.
- Rien d'autre n'est configuré du côté administrateur. Le commutateur de module fait apparaître les entrées AI Agent dans le portail client.
- En tant que client : ouvrez AI Agent, choisissez un serveur en cours d'exécution et cliquez sur Choose server. La page teste d'abord SSH avec une commande inoffensive fixe (aucun appel IA n'est utilisé) et affiche SSH connected ou la raison de l'échec.
- Tapez une tâche ou choisissez un démarrage rapide (Check system health, Install Docker, Install Nginx, Find recent errors, Security check, Free up disk space).
Comment il exécute les commandes
Provenance : le serveur du panneau, avec le client
sshdu système, une commande non interactive à la fois. La cible est toujours l'IP de la VM depuis la base de données, jamais depuis la requête ; seule la VM active et déverrouillée du propriétaire peut être conjointe.Authentification : le mot de passe stocké est transmis via un assistant
SSH_ASKPASSunique dans l'environnement du processus — il n'est pas écrit sur le disque ni placé sur la ligne de commande. Les clés d'hôte ne sont pas épinglées (les VM sont réinstallées avec de nouvelles clés). La sortie par commande est limitée à 200 Ko et chaque commande dispose d'une limite de temps (60 secondes).Boucle de l'AI Agent : l'IA propose des commandes et lit les sorties ; un tour se termine après au plus 10 étapes.
Modes :
Mode Comportement Confirm Chaque commande attend l'action Run. Auto Seules les commandes qui passent une liste blanche stricte en lecture seule s'exécutent d'elles-mêmes (par exemple df -h,ps,journalctl). Tout le reste, et tout ce que l'analyseur ne peut pas analyser avec certitude (variables, substitution de commandes, redirection vers des fichiers), attend Run.Libellés de risque : les commandes qui écrasent ou suppriment des fichiers, écrivent sur des disques, modifient des comptes ou des clés SSH, envoient des données vers un serveur externe, ouvrent des connexions réseau brutes, exécutent du code obfusqué, téléchargent et exécutent un script, arrêtes ou redémarrent la machine, ou atteignent d'autres serveurs affichent toujours Needs confirmation, même en mode Auto.
Sortie non fiabilisée : la sortie de la commande est présentée au modèle en tant que donnée non fiabilisée ; les instructions qu'elle contient ne sont pas suivies.
Vérification
- Choisissez une VM de test en cours d'exécution. La page indique SSH connected.
- Demandez "Check CPU, RAM and disk". En mode Auto, les commandes en lecture seule s'exécutent et la réponse les résume.
- Demandez "Install Nginx". La commande d'installation apparait avec Run et Skip ; rien ne s'exécute tant que vous n'appuyez pas sur Run.
- Le compteur en haut affiche le nombre d'appels IA utilisés aujourd'hui (par exemple
3/300).
Limites et notes
- Limite quotidienne : 300 appels IA par client et par jour (UTC) ; réinitialisation à 00:00 UTC. Lorsqu'elle est épuisée, l'AI Agent répond "Daily AI quota reached".
- Concurrence : au plus 2 exécutions de l'AI Agent par client en même temps ; une session exécute un tour à la fois.
- Sessions : jusqu'à 100 messages par session, 4,000 caractères par message. Une session appartient à une VM ; en cas de suppression ou de transfert, elle devient en lecture seule.
- VM verrouillée ou arrêtée, ou Windows : la VM est affichée comme Locked, Stopped, Windows ou No address et ne peut pas être sélectionnée.
- Impersonnalisation : un administrateur impersonnalisant un client ne peut pas utiliser les fonctionnalités d'identification de l'AI Agent (voir Log in as a customer).
- Responsabilité : l'AI Agent peut faire des erreurs. Le portail indique aux clients de vérifier les commandes avant de les exécuter. Précisez aux clients dans vos conditions qu'ils sont responsables des commandes qu'ils approuvent.
- Désactiver le module IA supprime les entrées de l'AI Agent et les routes renvoient l'erreur 404
module_disabled.
Dépannage
| Symptôme | Cause | Solution |
|---|---|---|
| "le client ssh n'est pas installé sur le serveur du panneau (apt install openssh-client)" | Pas de binaire ssh | sudo apt-get install -y openssh-client. |
"L'Agent n'a pas pu se connecter" / ssh: no saved credentials for this VM | Aucun mot de passe enregistré et aucune clé d'opérations | Réinitialisez le mot de passe de la VM dans le portail pour qu'il soit enregistré à nouveau, ou installez la clé d'opérations. |
| "Le serveur n'a pas répondu à temps" | Pare-feu, SSH n'écoutant pas, VM occupée | Testez nc -vz <ip> 22 depuis le serveur du panneau ; démarrez sshd dans la VM. |
| "Impossible d'atteindre SSH sur ce serveur" | Routage ou groupe de sécurité | Permettre au serveur du panneau d'atteindre la VM sur le port 22. |
| "VM non démarrée" / "Interdit" | VM arrêtée, verrouillée, supprimée ou n'appartenant pas au client | La démarrer, la déverrouiller ou en choisir une autre. |
| "Non disponible : N (arrêtée, verrouillée ou Windows)" | Raisons listées ci-dessus | La VM doit être sous Linux et en cours d'exécution. |
| "La passerelle SSH est temporairement indisponible" | Fonctionnalité Web SSH activée mais ssh-proxy est hors ligne | Démarrez ssh-proxy, ou désactivez la fonctionnalité Web SSH pour utiliser le SSH intégré. |
| "L'IA répond trop lentement (plus de 90 secondes)" | Fournisseur lent | Utilisez un modèle plus rapide ou un Reasoning effort plus faible. |
| "Quota d'IA quotidien atteint" | 300 appels utilisés | Patientez jusqu'à 00:00 UTC. |
| "Cette session est toujours en cours" | Autre tour en cours | Patientez ou appuyez sur Stop. |