README : ajout commandes contrôle, queue, rapport journalier

This commit is contained in:
2026-03-08 15:45:09 +00:00
parent 5d9a507b92
commit 4cf9c3fb86
+75 -39
View File
@@ -1,13 +1,31 @@
# Agent2_Debian13 — Spécialiste Debian # Agent2_Debian13 — Spécialiste Debian
Agent spécialisé dans l'administration de systèmes Debian. Reçoit ses tâches d'agent1 via MQTT et peut aussi être contacté directement par l'utilisateur via XMPP. Agent spécialisé dans l'administration de systèmes Debian. Reçoit ses tâches d'agent1 via MQTT (file d'attente FIFO persistante) et peut aussi être contacté directement par l'utilisateur via XMPP.
---
## Rôle ## Rôle
- Administration système Debian (paquets, services, réseau, sécurité) - Administration système Debian (paquets, services, réseau, sécurité)
- Exécution de commandes shell sur le système hôte - Exécution de commandes shell sur le système hôte
- File d'attente SQLite : aucune tâche perdue même en cas de pause ou de redémarrage
- Rapporte les résultats à agent1 via MQTT - Rapporte les résultats à agent1 via MQTT
---
## Commandes de contrôle (via agent1)
Envoyées par agent1 sur le topic `agents/agent2_debian13/control` :
| Commande XMPP (à agent1) | Effet sur cet agent |
|---|---|
| `!agentOFF agent2_debian13` | Pause — tâches en attente conservées dans queue.db |
| `!agentON agent2_debian13` | Reprise — traitement des tâches en attente |
| `!agentsOFF` | Pause (avec tous les autres agents) |
| `!agentsON` | Reprise (avec tous les autres agents) |
---
## Skills disponibles ## Skills disponibles
| Trigger | Description | | Trigger | Description |
@@ -19,6 +37,8 @@ Agent spécialisé dans l'administration de systèmes Debian. Reçoit ses tâche
| `RECALL: <clé>` | Récupération mémoire | | `RECALL: <clé>` | Récupération mémoire |
| `MQTT_PUBLISH: <topic> \| <msg>` | Publication MQTT | | `MQTT_PUBLISH: <topic> \| <msg>` | Publication MQTT |
---
## Exemples de tâches ## Exemples de tâches
``` ```
@@ -29,9 +49,58 @@ EXEC: df -h
EXEC: docker ps -a EXEC: docker ps -a
``` ```
## Déploiement via agent2_deploy (recommandé) ---
Depuis agent1, demander à agent2_deploy de déployer cet agent : ## File d'attente (`queue.db`)
Chaque tâche MQTT reçue est immédiatement enregistrée en base avec son horodatage avant d'être exécutée.
| Champ | Description |
|---|---|
| `received_at` | Heure de réception du message MQTT |
| `started_at` | Heure de début d'exécution |
| `completed_at` | Heure de fin |
| `task` | Contenu de la tâche |
| `status` | `pending` / `running` / `success` / `error` |
| `result` | Résultat (tronqué à 2000 chars) |
| `duration_s` | Durée d'exécution en secondes |
Les tâches en status `pending` lors d'une pause sont reprises au `resume`.
---
## Rapport journalier
À l'heure configurée dans `reports_schedule.json`, agent1 envoie `{"command": "report"}` sur `agents/agent2_debian13/control`. L'agent répond sur `agents/daily_report` avec :
```json
{
"agent": "agent2_debian13",
"timestamp": "2026-03-08T22:00:00",
"uptime_s": 86400,
"paused": false,
"tasks_today": 12,
"success": 11,
"errors": 1,
"avg_duration_s": 4.2,
"last_error": "...",
"pending": 0
}
```
---
## Plage horaire (`work_hours` dans agents_registry.json)
Agent1 vérifie cette plage avant chaque délégation. Hors plage → tâche refusée avec message d'indisponibilité.
```json
"work_hours": { "start": "07:00", "end": "23:00", "days": ["mon","tue","wed","thu","fri","sat","sun"], "enabled": true }
```
---
## Déploiement via agent2_deploy (recommandé)
``` ```
# Via XMPP avec sylvain@xmpp.ovh : # Via XMPP avec sylvain@xmpp.ovh :
@@ -39,51 +108,18 @@ Depuis agent1, demander à agent2_deploy de déployer cet agent :
# Suivre le guide interactif # Suivre le guide interactif
``` ```
---
## Déploiement manuel ## Déploiement manuel
```bash ```bash
# Prérequis
apt-get install -y python3 python3-pip python3-venv git apt-get install -y python3 python3-pip python3-venv git
# Cloner et installer
git clone https://git.piaf.im/sylvain/agent2_debian13.git /opt/agent2_debian13 git clone https://git.piaf.im/sylvain/agent2_debian13.git /opt/agent2_debian13
cd /opt/agent2_debian13 cd /opt/agent2_debian13
python3 -m venv venv python3 -m venv venv
venv/bin/pip install slixmpp paho-mqtt requests ddgs beautifulsoup4 chromadb venv/bin/pip install slixmpp paho-mqtt requests ddgs beautifulsoup4 chromadb
# Configurer
nano config/config.json nano config/config.json
systemctl daemon-reload && systemctl enable agent2_debian13 && systemctl start agent2_debian13
# Service systemd
cat > /etc/systemd/system/agent2_debian13.service << 'EOF'
[Unit]
Description=Agent2 Debian13
After=network.target mosquitto.service
Wants=mosquitto.service
[Service]
Type=simple
WorkingDirectory=/opt/agent2_debian13
ExecStart=/usr/bin/python3 /opt/agent2_debian13/agent2_debian13.py
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable agent2_debian13
systemctl start agent2_debian13
```
## Déploiement depuis le dépôt git (sur la machine cible)
```bash
git clone https://git.piaf.im/sylvain/agent2_deploy.git /tmp/agent2_deploy
python3 /tmp/agent2_deploy/deploy.py --local agent2_debian13
``` ```
## Configuration (`config/config.json`) ## Configuration (`config/config.json`)