# Agent2_Debian13 — Spécialiste Debian 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 | |---|---| | `EXEC: ` | Exécution de commande shell (timeout 30s) | | `SEARCH: ` | Recherche DuckDuckGo | | `READ: ` | Lecture de page web | | `REMEMBER: \| ` | Mémoire SQLite | | `RECALL: ` | Récupération mémoire | | `MQTT_PUBLISH: \| ` | Publication MQTT | --- ## Exemples de tâches ``` EXEC: systemctl status nginx EXEC: apt list --upgradable EXEC: journalctl -u ssh --no-pager -n 20 EXEC: df -h EXEC: docker ps -a ``` --- ## 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 : !deploy # Suivre le guide interactif ``` --- ## Déploiement manuel ```bash apt-get install -y python3 python3-pip python3-venv git 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 nano config/config.json 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" } ``` ## Logs ```bash journalctl -u agent2_debian13 -f ```