---
title: AI Agent
description: Permettez aux clients d'administrer leurs VMs Linux en décrivant une tâche en langage naturel — connexion SSH de l'Agent, actions autonomes et prérequis.
url: https://nexcmp.com/fr/docs/ai/ai-agent/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# AI Agent {#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 {#what-it-does}

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 {#requirements}

| Élément | Prérequis |
|---|---|
| Module IA et fournisseur | Le module **AI** activé et un [AI provider](https://nexcmp.com/fr/docs/ai/ai-providers/) 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 {#prepare-the-infrastructure}

1. Vérifiez le client SSH sur le serveur du panneau :

   ```bash
   ssh -V
   sudo apt-get install -y openssh-client   # only if missing
   ```

2. Vérifiez que le serveur du panneau peut ouvrir une connexion SSH vers une VM invitée :

   ```bash
   nc -vz 198.51.100.10 22
   ```

   Remplacez l'adresse par l'IP d'une VM de test. Si cela échoue, corrigez d'abord le routage ou le pare-feu.
3. 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 {#connect-in-nexcmp}

1. Complétez [AI provider](https://nexcmp.com/fr/docs/ai/ai-providers/) : module activé, fournisseur enregistré, **Test connection** en vert.
2. 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.
3. 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.
4. 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 {#how-it-runs-commands}

- **Provenance :** le serveur du panneau, avec le client `ssh` du 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_ASKPASS` unique 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 {#verify}

1. Choisissez une VM de test en cours d'exécution. La page indique *SSH connected*.
2. Demandez "Check CPU, RAM and disk". En mode Auto, les commandes en lecture seule s'exécutent et la réponse les résume.
3. 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**.
4. Le compteur en haut affiche le nombre d'appels IA utilisés aujourd'hui (par exemple `3/300`).

## Limites et notes {#limits-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](https://nexcmp.com/fr/docs/customers/login-as/)).
- **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 {#troubleshooting}

| 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**. |


