sylvain fc5b3f3bdc feat: amélioration scripts bash, scan réseau, fix cron, README
- system_prompt: section scripts bash (commandes interdites, mosquitto_pub, bonnes pratiques)
- script.py: nettoyage guillemets échappés à la sauvegarde
- network.py: nouvelle action scan (nmap/arp-scan/arp fallback), auto-détection subnet
- cron.py: _get_current_crontab() évite d'écrire "(aucune sortie)" dans le crontab
- README créé

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 19:10:59 +00:00
2026-03-22 21:53:00 +00:00
2026-03-22 21:53:00 +00:00

agent_hal

Agent de contrôle système complet et d'édition de code/fichiers. Remplace et étend agent_debian avec des capacités supplémentaires : édition avancée de fichiers, git, SSH distant, fetch web, todo list. Dispose également d'une surveillance proactive disque/RAM.

Rôle

HAL gère ce serveur (et les machines distantes via SSH) pour toute tâche système, devops ou édition de code. Pour l'automatisation multi-serveurs, utiliser agent_ansible. Pour déployer de nouveaux agents, utiliser agent_deploy.

Installation

cd /opt/agent_hal
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
systemctl enable --now agent_hal

Skills disponibles

Skill Description
sysinfo CPU, RAM, disque, uptime
apt Gestion des paquets (install, remove, update, upgrade, search)
systemd Contrôle des services (start, stop, restart, status, enable)
cron Gestion des tâches cron (list, add, remove, clear)
process Liste, kill, surveillance des processus
network Interfaces, scan réseau, ping, traceroute, DNS, ports, firewall
user Gestion des utilisateurs et groupes
container Gestion Docker/LXC (ps, start, stop, logs, exec, stats)
journal Consultation des logs systemd (journalctl)
filesystem Lecture, écriture, édition, recherche de fichiers (read, write, edit, multiedit)
git Opérations git (status, log, diff, add, commit, push, pull, clone, branch)
ssh Exécution de commandes sur une machine distante + transfert de fichiers (COPY)
shell Commandes bash directes (fallback)
script Bibliothèque de scripts bash (save/list/show/edit/exec/run/delete)
web_fetch Récupérer le contenu d'une URL HTTP/HTTPS
todo Liste de tâches en mémoire (add, list, done, delete, clear)
agents_status Statut des agents du système
mqtt_send Publication sur un topic MQTT
mqtt_subscribe Souscription dynamique à un topic MQTT
muc_send Message dans le groupe XMPP

Scan réseau

"Liste les machines connectées au réseau"
→ SKILL:network ARGS:scan 192.168.7.0/24

Utilise nmap (ping scan) en priorité, sinon arp-scan, sinon table ARP. La détection du subnet est automatique si non précisé.

Bibliothèque de scripts

Les scripts bash sont stockés dans /opt/agent_hal/scripts/. Toujours créés via SKILL:script ARGS:save, jamais via filesystem write.

Variables disponibles dans les scripts : $MQTT_BROKER, $MQTT_REPLY_TOPIC, $AGENT_ID

# Exemple d'envoi de résultat depuis un script
mosquitto_pub -h "$MQTT_BROKER" -t "$MQTT_REPLY_TOPIC" -m "résultat"

Confirmations requises

Les actions suivantes demandent confirmation avant exécution (requêtes XMPP directes uniquement) :

  • cron : add, remove, clear
  • systemd : start, stop, restart, enable, disable, mask, unmask, daemon-reload

Surveillance proactive

Toutes les 5 minutes :

  • Disque : alerte si un volume dépasse 85%
  • RAM : alerte si la mémoire utilisée dépasse 90%

Configuration

config/config.json :

{
  "agent_id": "hal",
  "xmpp": {
    "jid": "hal@xmpp.ovh",
    "password": "...",
    "admin_jid": "sylvain@xmpp.ovh",
    "muc_room": "agents@muc.xmpp.ovh",
    "use_omemo": true
  },
  "mqtt": { "host": "localhost", "port": 1883 },
  "llm": {
    "base_url": "http://192.168.7.119:11434",
    "model": "qwen3:8b",
    "temperature": 0.3
  },
  "llm_profiles": {
    "local": "qwen3:8b",
    "code": "qwen2.5-coder:7b",
    "cloud": "gpt-oss:120b-cloud"
  },
  "use_llm_coordinator": true
}

Commandes

/report   — Rapport système (uptime, RAM, disque, stats tâches)
/update   — Git pull + redémarrage du service
/status   — État de la queue de tâches
/pause    — Pause du traitement des tâches
/resume   — Reprise
/script   — Gestion de la bibliothèque de scripts bash

Fichiers

agent_hal.py          — Point d'entrée
skills/               — 20 skills
scripts/              — Scripts bash persistants
config/               — Configuration et system prompt
agent_hal.service     — Unit systemd
S
Description
Agent HAL — contrôle système complet + édition code
Readme 70 KiB
Languages
Python 98.2%
Shell 1.8%