From 4cf9c3fb8651ce3a53a2d5fb5a82a7b698f6ff42 Mon Sep 17 00:00:00 2001 From: sylvain Date: Sun, 8 Mar 2026 15:45:09 +0000 Subject: [PATCH] =?UTF-8?q?README=20:=20ajout=20commandes=20contr=C3=B4le,?= =?UTF-8?q?=20queue,=20rapport=20journalier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 134 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 85 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index 1c10dfe..204b54a 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,31 @@ # 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 - Administration système Debian (paquets, services, réseau, sécurité) - 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 +--- + +## 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 | Trigger | Description | @@ -19,6 +37,8 @@ Agent spécialisé dans l'administration de systèmes Debian. Reçoit ses tâche | `RECALL: ` | Récupération mémoire | | `MQTT_PUBLISH: \| ` | Publication MQTT | +--- + ## Exemples de tâches ``` @@ -29,9 +49,58 @@ EXEC: df -h 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 : @@ -39,67 +108,34 @@ Depuis agent1, demander à agent2_deploy de déployer cet agent : # Suivre le guide interactif ``` +--- + ## Déploiement manuel ```bash -# Prérequis 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 cd /opt/agent2_debian13 python3 -m venv venv venv/bin/pip install slixmpp paho-mqtt requests ddgs beautifulsoup4 chromadb - -# Configurer nano config/config.json - -# 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 +systemctl daemon-reload && systemctl enable agent2_debian13 && systemctl start agent2_debian13 ``` ## Configuration (`config/config.json`) ```json { - "ollama_url" : "http://:11434/api/chat", - "model" : "qwen3:8b", - "xmpp_jid" : "agent2_debian13@xmpp.ovh", - "xmpp_pass" : "", - "admin_jid" : "sylvain@xmpp.ovh", - "mqtt_host" : "", - "mqtt_port" : 1883, - "mqtt_client_id" : "agent2_debian13", - "mqtt_inbox" : "agents/agent2_debian13/inbox", - "mqtt_outbox" : "agents/agent1/inbox" + "ollama_url" : "http://:11434/api/chat", + "model" : "qwen3:8b", + "xmpp_jid" : "agent2_debian13@xmpp.ovh", + "xmpp_pass" : "", + "admin_jid" : "sylvain@xmpp.ovh", + "mqtt_host" : "", + "mqtt_port" : 1883, + "mqtt_client_id" : "agent2_debian13", + "mqtt_inbox" : "agents/agent2_debian13/inbox", + "mqtt_outbox" : "agents/agent1/inbox" } ```