Files

3.9 KiB

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: <commande> Exécution de commande shell (timeout 30s)
SEARCH: <requête> Recherche DuckDuckGo
READ: <url> Lecture de page web
REMEMBER: <clé> | <valeur> Mémoire SQLite
RECALL: <clé> Récupération mémoire
MQTT_PUBLISH: <topic> | <msg> 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 :

{
  "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é.

"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

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)

{
  "ollama_url"     : "http://<ip_ollama>:11434/api/chat",
  "model"          : "qwen3:8b",
  "xmpp_jid"       : "agent2_debian13@xmpp.ovh",
  "xmpp_pass"      : "<mot_de_passe>",
  "admin_jid"      : "sylvain@xmpp.ovh",
  "mqtt_host"      : "<ip_broker_mqtt>",
  "mqtt_port"      : 1883,
  "mqtt_client_id" : "agent2_debian13",
  "mqtt_inbox"     : "agents/agent2_debian13/inbox",
  "mqtt_outbox"    : "agents/agent1/inbox"
}

Logs

journalctl -u agent2_debian13 -f